Erste Schritte mit ArcObjects?


26

Was ist die beste Route oder der beste Ort, um mit ArcObjects zu beginnen, wenn Sie kein Entwickler sind und nicht beabsichtigen, Entwickler zu werden ?

Ich benutze gis seit langer Zeit professionell, fast zwei Jahrzehnte, und meistens arcinfo / arcgis. Ich bin ziemlich gut. Ich lerne Softwareentwicklung und habe sogar eine bescheidene erfolgreiche kleine Python-Anwendung, die in einem öffentlichen Projekt verwendet wird. Ich bin nicht gut! Ich möchte kein vollwertiger Softwareentwickler werden, aber ich stoße immer wieder auf Dinge, die ich ohne Programmierung nicht tun kann ( Beispiel ). In der ArcGis-Welt bin ich damit ziemlich direkt im Python-Camp, was für mich in Ordnung ist, da ich Python mag, aber Python hat keinen direkten Zugriff auf ArcObjects. (Python und ArcObjects sind möglich , aber es handelt sich um eine nicht unterstützte Route. Bei dieser Frage geht es darum, einem ausgetretenen Pfad zu folgen.)

Ich muss anfangen, aber wo? Die Arcgis-Hilfe sagt , dass ich mit dem ESRI Developer Network anfangen soll, aber 1500 US-Dollar / Jahr definitiv nicht in meinem Budget sind, und es klingt, als würde ich einen Vorschlaghammer verwenden, um Mücken zu schlagen. Und welche Sprache .NET, Visual Basic oder Visual C ++?


UPDATE: Vielen Dank an alle für die wunderbaren Antworten. In Anbetracht dessen stelle ich fest, dass ich den Umfang meiner Frage unnötig eingeschränkt habe, da ich voraussetze, dass "ArcObjects" die Richtung ist, in die ich gehen muss.

Ich habe immer wieder Probleme, die ich mit Arcgis und Python allein nicht lösen kann. Was kann ich noch lernen / verwenden, um Probleme wie X zu lösen? Ich habe kein Interesse oder keine Absicht, Softwareentwickler zu werden. Ich muss nur ein paar Dinge tun, die den arcgis Python-Modulen nicht zugänglich sind.


Dies ist eine recycelte Frage von Stack Overflow ( ref ), die aus irgendeinem Grund entschieden hat, nicht hierher zu migrieren. Deshalb bitte ich erneut um eine umfassendere Antwort von den Leuten, die in einer besseren Position sind, um zu helfen.
Matt Wilkie

Welche Software steht Ihnen zur Verfügung? ArcGIS muss ich annehmen. Visual Studio 2008/2010 Pro / Express?
Chad Cooper

Ich habe ArcGIS 9 und 10. Ich habe keine Entwicklungssoftware ausgewählt.
Matt Wilkie

Antworten:


14

VB.Net Add-Ins sicher. Die ESRI-Tröge bringen Sie auf den Weg.

Ich benutze VB6 und VBA seit Jahren und persönlich finde ich VB ziemlich intuitiv. Natürlich ist VB .Net ein völlig anderes Tier, aber die Add-In-Struktur ist relativ einfach zu erlernen und bereitzustellen. Ich habe gerade einen technischen Workshop in ArcPy auf einer ESRI-Konferenz besucht und muss sagen, dass ich mich an die VB.Net-Add-Ins halten werde. Ich habe Flüsse geweint, als sich herausstellte, dass VBA durch Add-Ins ersetzt wird, aber nachdem ich die Lernkurve durchbrochen habe, muss ich sagen, dass dies die beste Verbesserung für ArcGIS 10 ist. Mit diesem Setup kann ich nichts anfangen. Ich habe überall Spezialwerkzeuge. Die Dinge, über die sich die Leute in ArcGIS beschweren, passe ich einfach nach meinen Wünschen an. Das Schreiben und Verteilen eines Tools in einer Büroumgebung ist ein Kinderspiel ...

Sie benötigen lediglich das kostenlose Visual Studio Express und das installierte SDK.

Hier ist die Einführung: http://help.arcgis.com/de/sdk/10.0/arcobjects_net/conceptualhelp/index.html#/Building_add_ins_for_ArcGIS_Desktop/0001000000w2000000/

Bei ArcObjects gibt es so viele Beispiele und Codefragmente, die Sie direkt in Visual Studio einfügen können, dass Sie möglicherweise nur die Grundlagen aus den Beispielen lernen können.

In Version 8 hat ESRI tatsächlich ArcObjects-Bücher veröffentlicht. 2 riesige Bände, die eine großartige Referenz waren und viele Beispiele für C und VB enthielten. Alle können jetzt online gefunden werden, aber ich wünschte, ESRI würde diese erneut veröffentlichen.


3
In allen Punkten einverstanden, buuuuttt, würde ich sagen, gehen Sie C #, wenn Sie keine vorherige VBA / VB6-Erfahrung haben.
Chad Cooper

Ja, ich bin ein Teil von VB. Wenn ich ein Entwickler wäre und verschiedene Plattformen nutzen würde, würde ich sicher mit C # gehen, aber ich finde (und so ist die populäre Meinung), dass VB visuell klarer und verständlicher ist und sich daher besser für Anfänger eignet.
Jakub Sisak GeoGraphics

1
+1 weiter mit C #. Es ist eindeutig die beliebteste .NET-Sprache von Branchenführern. Ich habe sowohl VB als auch C # als Anfänger verwendet und denke tatsächlich, dass es leichter zu lernen und zu verstehen ist. Es ist auch näher an anderen C-basierten Sprachen wie JavaScript und Java.
Wilbev

7

Hier ist ein schamloser Plug für einen Artikel, den ich letztes Jahr für ArcUser über die ersten Schritte mit ArcObjects in .NET geschrieben habe .


Lesen Sie es einfach und es ist ein großartiger Artikel. Machen Sie weiter mit der Schamlosigkeit für Neulinge wie mich! Haben Sie irgendetwas über die Verwendung des Inhaltsverzeichnisses in .net .. was bedeutet meiner Meinung nach, COM zu verwenden? Vielen Dank.
Justin

6

Wenn Sie kein ernsthafter Entwickler sein möchten, würde ich Ihren Einstieg in die Welt der Programmierung in Frage stellen. Das Problem hierbei ist , dass Sie Code schreiben sollte verstehen , was unter der Haube geschieht. Andernfalls könnten Sie etwas an Ihren Daten, Anwendungen und sogar an Ihrem Computer tun, was Sie nicht beabsichtigt hatten, nur weil Sie nicht verstanden haben (ja, Sie könnten es auch in Python tun, aber .NET ist ein Schritt weiter, um Fehler ein bisschen leichter zu machen comimt).

Haben Sie in Bezug auf Ihre Frage zu Feld-Aliasnamen (ich bin nicht sicher, ob ich das richtig verstanden habe) gefragt, ob Sie die Aliasnamen von Feldern in einer Feature-Class ändern möchten? In diesem Fall können Sie featureclass_to_featureclass mit Feldzuordnung verwenden. Ja, es wird eine andere Feature-Class erstellt, aber Sie können auch einen Ausgabebereich zum Kopieren von Daten und Ändern von Aliasnamen verwenden, während dies ausgeführt wird.

Wie Steve vorschlägt, kann ArcPy mit dem neuen Zugriff auf Layer-Eigenschaften in der Karte auch Ihre Anforderungen in ArcGIS 10 erfüllen.


Betreff: Feld-Aliase - Sie sollten dies als Antwort auf die Frage hinzufügen. Ich wusste nicht, dass dies möglich ist.
Matt Wilkie

5

Wenn ich mir die Online-Ressourcen für Esri anschaue, muss ich feststellen, dass ArcObjects im Gegensatz zu anderen ArcGIS-Technologien keinen Anteil an umfangreichen und aktuellen Ressourcen hat.

Aus diesem Grund habe ich den IGeometry- Youtube-Kanal gestartet, um über ArcObjects zu diskutieren. Die Serie, die ich als .NET-Programmierung mit ArcObjects bezeichnet habe, hat ihre 14. Episode erreicht und viele GIS-Benutzer profitieren davon.

Die Serie basiert auf einem fiktiven Projekt namens "Bestaurants", bei dem Sie eine Anwendung auf ArcMap erstellen müssen, um Restaurants zu suchen, zu verwalten, hinzuzufügen und zu löschen. Mit jeder Episode stellen wir eine neue Benutzeroberfläche vor und lernen auf spielerische Weise die feinkörnigen Objekte in ArcObjects kennen!

Ich poste wöchentlich Videos, wenn es die Gelegenheit erlaubt, da dies etwas ist, was ich in meiner Freizeit mache.

Probieren Sie es jetzt aus und teilen Sie es mit jedem GIS-Geek, den Sie vielleicht kennen. Vorschläge zur Verbesserung der Serie sind immer willkommen.

Wer weiß, vielleicht beginne ich eine neue Serie, wenn wir damit fertig sind.

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


Ich möchte auch ArcObject lernen. Aber ich bin damit überhaupt nicht vertraut. Benötige ich eine zusätzliche Lizenz, um mit ArcObject zu beginnen? Oder muss ich eine ArcObject-Komponente mit ArcGIS 10.4 als zusätzliche Lizenz haben?
Shiuli Pervin

2
Ja, Sie benötigen eine ArcGIS Desktop-Lizenz. Sie können jedoch die neueste Version von ArcGIS Desktop mit einer Lizenz für 60 Tage von der esri-Website herunterladen. Es gibt genug, um Ihnen den Einstieg zu erleichtern.
Hnasr

4

Sie benötigen kein EDN-Abonnement, um mit ArcObjects zu entwickeln oder auf die SDK-Dokumentation zuzugreifen.

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


Aber Sie brauchen EDN, um auf das SDK selbst zuzugreifen, nicht wahr? Und um ehrlich zu sein, ist das Herausziehen des Codes nicht gerade eine Option für jemanden, der sich nicht für den Kern und den Kern einer solchen Entwicklung interessiert.
Nathanus

2
Nein, es befindet sich auf der Installations-CD.
blah238

Wird es mit jeder Version des Produkts geliefert?
Nathanus

Nur die Hauptversionen, glaube ich. Die Beispiele sind auch in der Online-Hilfe enthalten, obwohl in .NET anscheinend keine Liste vorhanden ist, in Java: help.arcgis.com/en/sdk/10.0/java_ao_adf/conceptualHelp/engine/… Die mit dem SDK installierte Hilfedatei ist jedoch viel praktischer.
blah238

4
Wenn Sie über eine Kopie von ArcGIS Desktop verfügen, benötigen Sie kein EDN-Abonnement, um Add-Ins zu entwickeln. Ein EDN-Abonnement ist einfach eine Möglichkeit, Entwicklern eine Kopie von nahezu allem im ArcGIS-Stack zu geben, ohne viel teurere Produktionslizenzen zu brennen. EDN eignet sich auch für die Entwicklung, wenn Sie überhaupt keine Produktionslizenzen besitzen. Sie benötigen kein EDN, um mit der ArcObjects-API zu codieren und zu entwickeln.
JimBarry





0

Keine echte Antwort, da Sie bereits angegeben haben, dass Sie kein Entwickler sein möchten.
Ich habe hier für den Formatierungsvorteil gegenüber Kommentaren gepostet.
Dieser Blog ist gerade erschienen und bietet der Entwickler-Community umfangreiche Anleitungen zum Thema arcgis-Server.
Darin wird die Absicht skizziert, sich von ADF zu entfernen, und die Akzeptanz von Webdiensten empfohlen.
Ich hoffe, es hilft in gewisser Weise Ihrer Entscheidung.

ESRI-Blogs - ArcGISServer

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.