Débuter avec ArcObjects?


26

Quel est le meilleur itinéraire ou le meilleur endroit pour commencer avec ArcObjects si l'on n'est pas développeur et ne vise pas à devenir développeur ?

J'utilise gis professionnellement depuis longtemps, presque deux décennies, arcinfo / arcgis pour la plupart de cela; Je suis assez bon. J'apprends le développement de logiciels et j'ai même une petite application python modestement réussie utilisée dans un projet public; Je ne suis pas bon! Je ne veux pas devenir un développeur de logiciels à part entière, mais je continue à rencontrer des choses que je ne peux pas faire sans programmation ( exemple ). Dans le monde d'arcgis, cela me place carrément dans le camp de python, ce qui me convient car j'aime python, mais python n'a pas un accès direct à ArcObjects. (Python et ArcObjects sont possibles , mais c'est un itinéraire non pris en charge. Cette question concerne le fait de suivre un chemin battu.)

Je dois commencer, mais où? L'aide d'Arcgis dit de commencer avec le réseau de développeurs ESRI, mais 1500 $ / an ne sont certainement pas dans mon budget, et cela ressemble à l'utilisation d'un marteau pour éliminer les moustiques. Et quelle langue .NET, Visual Basic ou Visual C ++?


MISE À JOUR: Merci à tous pour les merveilleuses réponses. À la lumière de ceux-ci, je me rends compte que j'ai inutilement rétréci la portée de ma question en présupposant que "ArcObjects" est la direction dans laquelle je dois aller. Une formulation plus ouverte est plus dans le sens de:

Je continue à rencontrer des problèmes que je ne peux tout simplement pas résoudre avec arcgis et python seuls. Que puis-je apprendre / utiliser d'autre pour résoudre des problèmes comme X? Je n'ai aucun intérêt ni aucune intention de devenir développeur de logiciels. J'ai juste besoin de faire quelques choses qui ne sont pas exposées aux modules python arcgis.


il s'agit d'une question recyclée de Stack Overflow, ( ref ) qui, pour une raison quelconque, a décidé de ne pas migrer ici. Je demande donc à nouveau d'obtenir des réponses plus complètes des personnes les mieux placées pour aider.
matt wilkie

De quel logiciel disposez-vous? ArcGIS je dois assumer. Visual Studio 2008/2010 Pro / Express?
Chad Cooper

J'ai ArcGIS 9 et 10. Je n'ai sélectionné aucun logiciel de développement.
matt wilkie

Réponses:


14

Les compléments VB.Net à coup sûr. Les passerelles ESRI vous mettront en route.

J'utilise VB6 et VBA depuis des années et personnellement, je trouve VB assez intuitif. Bien sûr, VB .Net est un animal entièrement différent, mais la structure du complément est relativement simple à apprendre et à déployer. Je viens de suivre un atelier technique dans ArcPy lors d'une conférence ESRI et je dois dire que je m'en tiendrai aux compléments VB.Net. Je pleurais des rivières quand il est devenu évident que VBA sera remplacé par des compléments mais après avoir franchi la courbe d'apprentissage, je dois dire que c'est la meilleure amélioration d'ArcGIS 10. Il n'y a rien que je ne puisse pas faire avec cette configuration. J'ai des outils personnalisés partout. Les choses dont les gens se plaignent dans ArcGIS, je les personnalise simplement à mon goût. Écrire un outil et le distribuer dans un environnement de bureau est un jeu d'enfant ...

Tout ce dont vous avez besoin est le Visual Studio Express gratuit et le SDK installé.

Voici la visite virtuelle: http://help.arcgis.com/en/sdk/10.0/arcobjects_net/conceptualhelp/index.html#/Building_add_ins_for_ArcGIS_Desktop/0001000000w2000000/

En ce qui concerne ArcObjects, il y a tellement d'exemples et d'extraits de code que vous pouvez ajouter directement dans Visual Studio que vous pourrez peut-être simplement apprendre les bases des exemples.

Dans la version 8, ESRI a effectivement publié des livres ArcObjects; 2 volumes énormes qui étaient une grande référence et comprenaient de nombreux exemples pour C et VB. Tout est désormais disponible en ligne, mais je souhaite que l'ESRI les publie à nouveau.


3
D'accord sur tous les points, buuuuttt, je dirais allez C # si vous n'avez pas d'expérience VBA / VB6.
Chad Cooper

Oui, je suis partisan de VB. Si j'étais développeur et que j'utilisais diverses plates-formes, j'irais certainement avec C # mais je trouve (et l'opinion populaire aussi) VB plus clair visuellement et plus facile à comprendre et, par conséquent, mieux adapté pour un débutant.
Jakub Sisak GeoGraphics

1
+1 en cours avec C #. C'est clairement le langage .NET préféré des leaders de l'industrie. J'ai utilisé VB et C # en tant que débutant et pense en fait qu'il est plus facile d'apprendre et de comprendre. Il se rapproche également d'autres langages basés sur C comme JavaScript et Java.
wilbev

7

Voici un plug sans vergogne pour un article que j'ai écrit l'année dernière pour ArcUser sur la prise en main d'ArcObjects dans .NET .


Il suffit de le lire et c'est un excellent article ... continuez avec l'impudeur pour le bien des débutants comme moi! Avez-vous quelque chose sur l'utilisation de la table des matières dans .net..qui signifie, je pense, commencer à utiliser COM? Merci.
Justin

6

Si vous ne voulez pas être un développeur sérieux, je remettrais en question votre décision d'entrer dans le monde de la programmation. Le problème ici est que le code d'écriture , vous devez comprendre ce qui se passe sous le capot. Sinon, vous pourriez faire quelque chose à vos données, à votre application et même à votre ordinateur que vous n'aviez pas l'intention de faire, simplement par manque de compréhension (oui, vous pourriez aussi le faire en Python mais .NET est un pas de plus pour rendre les erreurs un peu plus faciles à comimt).

En ce qui concerne votre question sur les alias de champs (je ne suis pas sûr d'avoir bien compris), demandiez-vous de changer les alias de champs dans une classe d'entités? Si c'est le cas, vous pouvez utiliser featureclass_to_featureclass avec le mappage de champ. Oui, il crée une autre classe d'entités, mais vous pouvez simplement avoir une zone de sortie pour copier les données et modifier les alias pendant qu'il le fait.

Comme Steve le suggère, ArcPy peut également répondre à vos besoins dans ArcGIS 10 avec le nouvel accès aux propriétés de couche dans la carte.


re: field aliases - vous devriez ajouter cela comme réponse au Q. Je ne savais pas que c'était possible.
matt wilkie

5

En regardant les ressources en ligne pour Esri, je n'ai pas pu m'empêcher de remarquer comment ArcObjects n'a pas sa part de ressources riches et à jour comme les autres technologies ArcGIS.

C'est la raison pour laquelle j'ai lancé la chaîne Youtube IGeometry pour discuter d'ArcObjects, la série, que j'ai appelée Programmation .NET avec ArcObjects, a atteint son 14e épisode jusqu'à présent et beaucoup de gens du SIG en bénéficient vraiment.

Les séries sont basées sur un projet fictif que j'ai créé appelé "Bestaurants", où vous devez créer une application sur ArcMap pour rechercher, gérer, ajouter, supprimer des restaurants. Avec chaque épisode, nous introduisons une nouvelle interface et découvrons les objets à grains fins dans ArcObjects de manière amusante!

Je poste des vidéos chaque semaine, chaque fois que l'occasion me le permet, car c'est quelque chose que je fais à mon propre rythme.

N'hésitez pas à le vérifier maintenant et à le partager avec n'importe quel geek SIG que vous connaissez peut-être. Les suggestions sont toujours les bienvenues pour améliorer la série.

Qui sait, peut-être qu'une fois que nous aurons terminé, je pourrais commencer une autre série.

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


Je veux également apprendre ArcObject. Mais je ne la connais pas du tout. Ai-je besoin d'une licence supplémentaire pour démarrer avec ArcObject? ou dois-je avoir un composant ArcObject avec ArcGIS 10.4 comme lisense supplémentaire?
Shiuli Pervin

2
Oui, vous aurez besoin de la licence ArcGIS Desktop, mais vous pouvez obtenir la dernière version d'ArcGIS Desktop sur le site Web esri avec une licence de 60 jours. De quoi vous aider à démarrer.
hnasr

4

Vous n'avez pas besoin d'un abonnement EDN pour développer avec ArcObjects, ni pour accéder à la documentation du SDK.

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


Mais vous avez besoin d'EDN pour accéder au SDK lui-même, n'est-ce pas? Et, soyons honnêtes, retirer le code de votre derrière n'est pas exactement une option pour quelqu'un qui n'est pas intéressé par les détails d'un tel développement.
Nathanus

2
Non, c'est sur le CD d'installation.
blah238

Il est livré avec chaque version du produit?
Nathanus

Juste les sorties majeures je crois. Les exemples sont également dans l'aide en ligne, bien que celui .NET ne semble pas en avoir une liste, celui de Java en fait: help.arcgis.com/en/sdk/10.0/java_ao_adf/conceptualHelp/engine/… Le fichier d'aide installé avec le SDK est cependant beaucoup plus pratique.
blah238

4
Si vous avez une copie d'ArcGIS Desktop, vous n'avez pas besoin d'un abonnement EDN pour développer des compléments. Un abonnement EDN est simplement un moyen de donner aux développeurs une copie de presque tout dans la pile ArcGIS sans graver des licences de production beaucoup plus chères. EDN est également bon pour le développement si vous ne possédez aucune licence de production. Vous n'avez pas besoin d'EDN pour coder et développer avec l'API ArcObjects.
JimBarry





0

Pas une vraie réponse car vous avez déjà déclaré que vous ne vouliez pas être développeur.
J'ai posté ici pour l'avantage de mise en forme par rapport aux commentaires.
Ce blog vient juste d'arriver et est assez complet pour donner des orientations à la communauté de développement concernant le serveur arcgis.
Il décrit l'intention de s'éloigner d'ADF et encourage l'adoption des services Web.
J'espère que cela aide en quelque sorte votre décision.

Blogs ESRI - ArcGISServer

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.