Pierwsze kroki z ArcObjects?

26

Jaka jest najlepsza droga lub miejsce na rozpoczęcie korzystania z ArcObjects, jeśli nie jesteś programistą i nie zamierzasz zostać programistą ?

Używam gis profesjonalnie przez długi czas, prawie dwie dekady, arcinfo / arcgis przez większość tego; Jestem całkiem dobry. Uczę się tworzenia oprogramowania, a nawet posiadam skromnie udaną małą aplikację w języku Python używaną w publicznym projekcie; Nie jestem dobry! Nie chcę zostać pełnoprawnym programistą, ale ciągle napotykam rzeczy, których po prostu nie mogę zrobić bez programowania ( przykład ). W świecie arcgis stawia mnie to całkiem prosto w obozie python, co jest dla mnie w porządku, ponieważ lubię python, jednak python nie ma bezpośredniego dostępu do ArcObjects. (Możliwe Python i ArcObjects , ale jest to nieobsługiwana trasa. To pytanie dotyczy podążania utartą ścieżką.)

Muszę zacząć, ale gdzie? Arcgis help mówi, aby rozpocząć pracę z ESRI Developer Network, ale 1500 $ rocznie nie jest zdecydowanie w moim budżecie i brzmi to jak używanie młota do obijania komarów. I który język .NET, Visual Basic lub Visual C ++?


AKTUALIZACJA: Dziękuję wszystkim za wspaniałe odpowiedzi. W świetle nich zdaję sobie sprawę, że niepotrzebnie zawęziłem zakres mojego pytania, zakładając, że „ArcObjects” to kierunek, w którym muszę iść. Bardziej otwarte sformułowanie jest bardziej zgodne z:

Ciągle mam problemy, których po prostu nie mogę rozwiązać za pomocą ArcGis i Pythona. Czego jeszcze mogę się nauczyć / używać do rozwiązywania problemów takich jak X? Nie jestem zainteresowany ani nie zamierzam zostać programistą. Muszę tylko zrobić kilka rzeczy, które nie są narażone na moduły Arcgis Python.

matowe wilkie
źródło
jest to pytanie z recyklingu od Stack Overflow ( ref ), które z jakiegokolwiek powodu zdecydowały się nie migrować tutaj. Ponownie więc proszę o bardziej kompleksową odpowiedź od osób w lepszej sytuacji, aby pomóc.
matt wilkie
Jakie oprogramowanie masz do dyspozycji? ArcGIS Muszę założyć. Visual Studio 2008/2010 Pro / Express?
Chad Cooper
Mam ArcGIS 9 i 10. Nie wybrałem żadnego oprogramowania programistycznego.
matt wilkie

Odpowiedzi:

14

Dodatki VB.Net na pewno. Poradniki ESRI pomogą ci w drodze.

Używam VB6 i VBA od lat i osobiście uważam VB za dość intuicyjne. Oczywiście VB .Net jest zupełnie innym zwierzęciem, ale struktura dodatków jest stosunkowo łatwa do nauczenia się i wdrożenia. Właśnie wziąłem warsztat techniczny w ArcPy na konferencji ESRI i muszę powiedzieć, że będę trzymać się dodatków VB.Net. Płakałem nad rzekami, kiedy stało się jasne, że VBA zostanie zastąpione dodatkami, ale po przekroczeniu krzywej uczenia się muszę powiedzieć, że jest to najlepsza pojedyncza poprawka do ArcGIS 10. Nie mogę nic zrobić z tym ustawieniem. Wszędzie mam niestandardowe narzędzia. To, na co ludzie narzekają w ArcGIS, po prostu dostosowuję do własnych upodobań. Pisanie i dystrybucja narzędzia w środowisku biurowym to pestka ...

Wszystko czego potrzebujesz to bezpłatny Visual Studio Express i zainstalowany zestaw SDK.

Oto przewodnik: http://help.arcgis.com/en/sdk/10.0/arcobjects_net/conceptualhelp/index.html#/Building_add_ins_for_ArcGIS_Desktop/0001000000w2000000/

Jeśli chodzi o ArcObjects, istnieje tak wiele przykładów i fragmentów kodu, które można dodać bezpośrednio do programu Visual Studio, że można po prostu nauczyć się podstaw z przykładów.

W wersji 8 ESRI faktycznie opublikował książki ArcObjects; 2 ogromne tomy, które były świetnym odniesieniem i zawierały wiele przykładów dla C i VB. Wszystkie można teraz znaleźć w Internecie, ale chciałbym, aby ESRI ponownie je opublikował.

Jakub Sisak GeoGraphics
źródło
3
Zgodził się na wszystkich punktach, buuuuttt, ja powiedziałbym odchodzenie C #, jeśli nie mają wcześniejszego doświadczenia VBA / VB6.
Chad Cooper
Tak, jestem stronnikiem VB. Gdybym był programistą i korzystałem z różnych platform, z pewnością wybrałbym C #, ale uważam (i taka jest popularna opinia) VB jaśniejsze wizualnie i łatwiejsze do zrozumienia, w wyniku czego lepiej nadaje się dla początkującego.
Jakub Sisak GeoGraphics
1
+1 za przejście z C #. Jest to zdecydowanie ulubiony język .NET wiodących w branży. Użyłem zarówno VB, jak i C # jako początkującego i myślę, że łatwiej jest się uczyć i zrozumieć. Jest także bliżej innych języków opartych na C, takich jak JavaScript i Java.
wilbev
7

Oto bezwstydna wtyczka do artykułu, który napisałem w zeszłym roku dla ArcUser na temat rozpoczęcia pracy z ArcObjects w .NET .

Chad Cooper
źródło
Po prostu przeczytaj to i jest to świetny artykuł .. trzymaj się bezwstydu ze względu na początkujących jak ja! Czy masz coś na temat używania spisu treści w .net ... co, jak sądzę, oznacza rozpoczęcie korzystania z COM? Dzięki.
Justin,
6

Jeśli nie chcesz być poważnym programistą, zapytałbym cię o krok do świata programowania. Problem polega na tym, że aby napisać kod, powinieneś zrozumieć, co dzieje się pod maską. W przeciwnym razie możesz zrobić coś ze swoimi danymi, aplikacją, a nawet komputerem, czego nie miałeś zamiaru zrobić, po prostu z braku zrozumienia (tak, możesz to zrobić również w Pythonie, ale .NET to krok dalej w popełnianiu błędów nieco łatwiej comimt).

Jeśli chodzi o pytanie dotyczące aliasów pól (nie jestem pewien, czy dobrze to zrozumiałem), czy prosiłeś o zmianę aliasów pól w klasie obiektów? Jeśli tak, to możesz użyć featureclass_to_featureclass z mapowaniem pól. Tak, tworzy kolejną klasę funkcji, ale możesz mieć po prostu obszar wyjściowy do kopiowania danych i zmiany aliasów.

Jak sugeruje Steve, ArcPy może również odpowiedzieć na twoje wymagania w ArcGIS 10 dzięki nowemu dostępowi do właściwości warstw na mapie.

Rob Clark
źródło
re: aliasy pól - należy dodać to jako odpowiedź na pytanie Q. Nie wiedziałem, że to możliwe.
matt wilkie
5

Patrząc na zasoby internetowe Esri, nie mogłem nie zauważyć, że ArcObjects nie ma tak bogatych i aktualnych zasobów jak inne technologie ArcGIS.

Właśnie dlatego zacząłem kanał IGeometry Youtube, aby omówić ArcObjects, serię, którą nazwałem Programowaniem .NET z ArcObjects, do tej pory osiągnął swój 14. odcinek i wielu ludzi z GIS naprawdę na tym korzysta.

Seria opiera się na fikcyjnym projekcie, który stworzyłem „Bestaurants”, w którym musisz stworzyć aplikację na ArcMap, aby wyszukiwać, zarządzać, dodawać i usuwać restauracje. Z każdym odcinkiem wprowadzamy nowy interfejs i dowiadujemy się o drobnoziarnistych obiektach w ArcObjects w zabawny sposób!

Publikuję filmy co tydzień, gdy tylko pozwala na to szansa, ponieważ robię to w swoim własnym czasie.

Sprawdź go teraz i udostępnij dowolnemu geekowi z GIS, jaki znasz. Sugestie są zawsze mile widziane, aby ulepszyć serię.

Kto wie, może kiedy skończymy, mógłbym rozpocząć kolejną serię.

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

hnasr
źródło
Chcę także nauczyć się ArcObject. Ale wcale mnie nie zna. Czy potrzebuję dodatkowej licencji, aby rozpocząć korzystanie z ArcObject? czy czy muszę mieć składnik ArcObject z ArcGIS 10.4 jako dodatkową lisense?
Shiuli Pervin
2
Tak, potrzebujesz ArcGIS Desktop License, jednak możesz pobrać najnowszą ArcGIS Desktop ze strony internetowej esri z licencją na 60 dni. Dużo na początek.
hnasr
4

Nie potrzebujesz subskrypcji EDN do programowania z ArcObjects, ani do uzyskiwania dostępu do dokumentacji SDK.

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

blah238
źródło
Ale potrzebujesz EDN, aby uzyskać dostęp do samego zestawu SDK, prawda? I, bądźmy szczerzy, wyciągnięcie kodu z tyłu nie jest opcją dla kogoś, kto nie jest zainteresowany nitem i gracją takiego rozwoju.
Nathanus
2
Nie, jest na instalacyjnej płycie CD.
blah238
Jest dostarczany z każdą wersją produktu?
Nathanus
Wierzę tylko w główne wydania. Przykłady znajdują się również w pomocy online, chociaż wydaje się, że w .NET nie ma ich listy, w Java: help.arcgis.com/en/sdk/10.0/java_ao_adf/conceptualHelp/engine/… Plik pomocy zainstalowany z zestawem SDK jest jednak o wiele bardziej przydatny.
blah238
4
Jeśli masz kopię ArcGIS Desktop, nie potrzebujesz subskrypcji EDN, aby opracowywać dodatki. Subskrypcja EDN to po prostu sposób, aby dać programistom kopię prawie wszystkiego na stosie ArcGIS bez konieczności nagrywania znacznie droższych licencji produkcyjnych. EDN jest również dobry do rozwoju, jeśli nie posiadasz żadnych licencji produkcyjnych. Nie potrzebujesz EDN do kodowania i programowania za pomocą ArcObjects API.
JimBarry
4

Zadałem podobne pytanie o najlepsze zasoby ArcObjects:

Zasoby ArcObjects

Fragmenty kodu dostarczone przez ArcGIS Resource Center są bardzo pomocne i oferowane w językach C # i VB.NET.

Britt Wescott
źródło
0

Nie jest to prawdziwa odpowiedź, ponieważ już powiedziałeś, że nie chcesz być programistą.
Zamieściłem tutaj, aby uzyskać przewagę formatowania nad komentarzami.
Ten blog właśnie się pojawił i jest dość obszerny w udzielaniu wskazówek społeczności programistów dotyczącej serwera arcgis.
Przedstawia zamiar odejścia od ADF i zachęca do korzystania z usług internetowych.
Mam nadzieję, że w jakiś sposób pomoże ci to w podjęciu decyzji.

Blogi ESRI - ArcGISServer

Brad Nesom
źródło