Начало работы с 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

hnasr
источник
Я также хочу изучить 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

blah238
источник
Но вам нужен 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.
ДжимБарри
4

Я опубликовал аналогичный вопрос о лучших ресурсах ArcObjects:

ArcObjects Resources

Фрагменты кода, предоставленные Центром ресурсов ArcGIS , очень полезны и предлагаются в C # и VB.NET.

Бритт Уэскотт
источник
3

Я бы посоветовал изучить arc.py, если вы еще не знаете arcobjects, поскольку esri отходит от vba arcobjects как языка сценариев. В противном случае вы бы хотели Visual Studio и C # начать писать объекты дуги. Это отличная книга. http://www.amazon.com/Exploring-ArcObjects-Two-Michael-Zeiler/dp/1589480007

Стив
источник
0

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

Блоги ESRI - ArcGISServer

Брэд Несом
источник