Начало работы с ArcObjects?


26

Каков наилучший маршрут или место для начала работы с ArcObjects, если вы не являетесь разработчиком и не стремитесь стать разработчиком ?

Я профессионально использую ГИС долгое время, почти два десятилетия, для большей части этого - arcinfo / arcgis; Я довольно неплох. Я изучаю разработку программного обеспечения и даже имею скромное успешное небольшое приложение на Python, используемое в публичном проекте; Мне не хорошо! Я не хочу становиться полноценным разработчиком программного обеспечения, но я продолжаю сталкиваться с вещами, которые я просто не могу сделать без программирования ( пример ). В мире arcgis это помещает меня довольно прямо в лагерь питонов, что хорошо для меня, так как я люблю python, однако у python нет прямого доступа к ArcObjects. (Python и ArcObjects возможны , но это неподдерживаемый маршрут. Этот вопрос о том, чтобы следовать по проторенному пути.)

Мне нужно начать, но где? Справка Arcgis гласит, что нужно начать работу с сетью разработчиков ESRI, но 1500 долларов в год определенно не в моем бюджете, и похоже на использование кувалды для уничтожения комаров. А какой язык .NET, Visual Basic или Visual C ++?


ОБНОВЛЕНИЕ: Спасибо всем за прекрасные ответы. В свете их я понимаю, что излишне сузил сферу своего вопроса, предполагая, что «ArcObjects» - это направление, в котором я должен идти. Более открытая формулировка больше похожа на:

Я продолжаю сталкиваться с проблемами, которые просто не могу решить с помощью arcgis и python. Что еще я могу узнать / использовать для решения таких проблем, как X? У меня нет никакого интереса или намерения стать разработчиком программного обеспечения. Мне просто нужно сделать пару вещей, которые не доступны для модулей arcgis python.


это переработанный вопрос из Stack Overflow, ( ссылка ), который по какой-то причине они решили не переносить сюда. Поэтому я прошу еще раз получить более полный ответ от людей, которые находятся в лучшем положении, чтобы помочь.
Мэтт Уилки

Какое программное обеспечение у вас есть в вашем распоряжении? ArcGIS я должен предположить. Visual Studio 2008/2010 Pro / Express?
Чед Купер

У меня есть ArcGIS 9 & 10. Я не выбрал программное обеспечение для разработки.
Мэтт Уилки

Ответы:


14

Надстройки VB.Net наверняка. Проходы ESRI помогут вам в пути.

Я использую VB6 и VBA в течение многих лет, и лично я нахожу VB довольно интуитивным. Конечно, VB .Net - это совершенно другое животное, но структура надстроек относительно проста в освоении и развертывании. Я только что провел технический семинар в ArcPy на конференции ESRI и должен сказать, что буду придерживаться надстроек VB.Net. Я плакал рекой, когда стало очевидно, что VBA будет заменен надстройками, но после нарушения кривой обучения я должен сказать, что это единственное лучшее улучшение ArcGIS 10. Я ничего не могу сделать с этой настройкой. У меня есть специальные инструменты повсюду. Вещи, на которые люди жалуются в ArcGIS, я просто настраиваю по своему вкусу. Написание инструмента и его распространение в офисе - это очень просто ...

Все, что вам нужно, это бесплатный Visual Studio Express и установленный SDK.

Вот краткое руководство: http://help.arcgis.com/en/sdk/10.0/arcobjects_net/conceptualhelp/index.html#/Building_add_ins_for_ArcGIS_Desktop/0001000000w2000000/

Что касается ArcObjects, существует так много примеров и фрагментов кода, которые вы можете добавить непосредственно в Visual Studio, чтобы вы могли просто изучить основы из примеров.

В версии 8 ESRI фактически опубликовал книги ArcObjects; 2 огромных тома, которые были отличным справочником и включали множество примеров для C и VB. Теперь все можно найти в Интернете, но я бы хотел, чтобы ESRI снова их опубликовал.


3
Согласен по всем пунктам, buuuuttt, я бы сказал, пойти на C #, если у вас нет опыта VBA / VB6.
Чед Купер

Да, я неравнодушен к VB. Если бы я был разработчиком и использовал разные платформы, я бы наверняка выбрал C #, но я нахожу (как и популярное мнение) VB более понятным визуально и более легким для понимания и, следовательно, лучше подходящим для начинающего.
Якуб Сисак GeoGraphics

1
+1 при переходе с C #. Это, безусловно, любимый язык .NET лидеров отрасли. Я использовал как VB, так и C # в качестве новичка, и на самом деле думаю, что легче учиться и понимать. Также он ближе к другим языкам на основе Си, таким как JavaScript и Java.
Уилбев

7

Вот бесстыдный плагин для статьи, которую я написал в прошлом году для ArcUser о начале работы с ArcObjects в .NET .


Просто прочитайте это, и это отличная статья .. продолжайте бесстыдно ради таких новичков, как я! Есть ли у вас что-то об использовании оглавления в .net ... что я думаю означает начать использовать COM? Спасибо.
Джастин

6

Если вы не хотите быть серьезным разработчиком, я бы поставил под сомнение ваш шаг в мир программирования. Проблема здесь в том, что для написания кода вы должны понимать, что происходит под капотом. В противном случае вы могли бы сделать что-то с вашими данными, приложением и даже вашим компьютером, что вы не собирались делать, просто из-за недостатка понимания (да, вы могли бы сделать и в Python, но .NET - это шаг вперед в том, чтобы сделать ошибки немного легче comimt).

С точки зрения вашего вопроса об псевдонимах полей (я не уверен, правильно ли я понял), вы просили изменить псевдонимы полей в классе пространственных объектов? Если это так, то вы можете использовать featureclass_to_featureclass с отображением полей. Да, он создает другой класс пространственных объектов, но вы можете просто иметь область вывода для копирования данных и изменения псевдонимов, пока он это делает.

Как предполагает Стив, ArcPy также может отвечать вашим требованиям в ArcGIS 10 с новым доступом к свойствам слоев на карте.


re: field aliases - вы должны добавить это как ответ на вопрос. Я не знал, что это возможно.
Мэтт Уилки

5

Просматривая онлайн-ресурсы для Esri, я не мог не заметить, что ArcObjects не имеет своей доли богатых и современных ресурсов, как другие технологии ArcGIS.

По этой причине я открыл канал IGeometry Youtube для обсуждения ArcObjects, серии, которую я назвал .NET Programming with ArcObjects, которая дошла до своего 14-го эпизода, и многие люди из ГИС действительно получают от этого пользу.

Эта серия основана на вымышленном проекте, который я создал под названием «Bestaurants», где вам нужно создать приложение поверх ArcMap для поиска, управления, добавления, удаления ресторанов. В каждом эпизоде ​​мы представляем новый интерфейс и узнаем о мелкозернистых объектах в ArcObjects в увлекательной игровой форме!

Я выкладываю видео еженедельно, когда есть возможность, так как я занимаюсь этим в свободное время.

Не стесняйтесь проверить это сейчас, и поделиться им с любым специалистом ГИС вы можете знать. Всегда приветствуются предложения по улучшению серии.

Кто знает, может быть, когда мы закончим, я мог бы начать еще одну серию.

http://www.youtube.com/watch?v=XrZs1rwmOwg&list=PLQnljOFTspQXqYsWJG8o-eJpGlvzww9lE&index=1


Я также хочу изучить ArcObject. Но я совсем не знаком с этим. Нужна ли мне дополнительная лицензия для начала работы с ArcObject? или мне нужно иметь компонент ArcObject с ArcGIS 10.4 в качестве дополнительной лицензии?
Шиули Первин

2
Да, вам потребуется ArcGIS Desktop License, однако вы можете получить последнюю версию ArcGIS Desktop с веб-сайта esri с лицензией на 60 дней. Достаточно, чтобы начать.
hnasr

4

Вам не нужна подписка на EDN для разработки с ArcObjects, а также для доступа к документации SDK.

http://help.arcgis.com/en/sdk/10.0/arcobjects_net/ao_home.html


Но вам нужен EDN для доступа к самому SDK, не так ли? И, давайте будем честными, вытащить код из-за спины не совсем вариант для тех, кто не заинтересован в суете такого развития событий.
Натан,

2
Нет, это на установочном компакт-диске.
blah238

Он поставляется с каждой версией продукта?
Натан

Просто основные релизы, я верю. Примеры также есть в интерактивной справке, хотя в .NET, похоже, их нет, а в Java -: help.arcgis.com/en/sdk/10.0/java_ao_adf/conceptualHelp/engine/… Файл справки, установленный вместе с SDK, гораздо удобнее.
blah238

4
Если у вас есть копия ArcGIS Desktop, вам не нужна подписка EDN для разработки надстроек. Подписка на EDN - это просто способ предоставить разработчикам копию всего, что есть в стеке ArcGIS, без сжигания гораздо более дорогих производственных лицензий. EDN также хорош для разработки, если у вас нет лицензий на производство вообще. Вам не нужно EDN для написания кода и разработки с помощью ArcObjects API.
ДжимБарри





0

Неверный ответ, так как вы уже заявили, что не хотите быть разработчиком.
Я разместил здесь для форматирования преимущество над комментариями.
Этот блог только что появился и довольно обширный, чтобы дать указания сообществу разработчиков относительно arcgis server.
Он обрисовывает в общих чертах намерение отойти от ADF и поощряет использование веб-сервисов.
Надеюсь, это немного поможет вашему решению.

Блоги ESRI - ArcGISServer

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.