Per iniziare con ArcObjects?


26

Qual è il percorso o il luogo migliore per iniziare con ArcObjects se uno non è uno sviluppatore e non mira a diventare uno sviluppatore ?

Sto usando gis professionalmente da molto tempo, quasi due decenni, arcinfo / arcgis per la maggior parte; Sto abbastanza bene. Sto imparando lo sviluppo del software e ho anche un'applicazione di piccolo pitone di modesto successo utilizzata in un progetto pubblico; Non sono bravo! Non voglio diventare uno sviluppatore software completo, ma continuo a imbattermi in cose che non posso fare a meno della programmazione ( esempio ). Nel mondo arcgis questo mi mette abbastanza esattamente nel campo di Python, il che va bene per me poiché mi piace Python, tuttavia Python non ha un accesso diretto ad ArcObjects. (Python e ArcObjects è possibile , ma è un percorso non supportato. Questa domanda riguarda il seguire un percorso battuto.)

Devo iniziare, ma da dove? La guida di Arcgis dice di iniziare con la rete di sviluppatori ESRI, ma $ 1500 / anno sicuramente non sono nel mio budget e sembra come usare un martello per scacciare le zanzare. E quale lingua .NET, Visual Basic o Visual C ++?


AGGIORNAMENTO: Grazie a tutti per le meravigliose risposte. Alla luce di loro, mi rendo conto di aver ridotto inutilmente la portata della mia domanda, supponendo che "ArcObjects" sia la direzione in cui devo andare. Una formulazione più aperta è più simile a:

Continuo a imbattermi in problemi che non riesco a risolvere da solo con Arcgis e Python. Cos'altro posso imparare / usare per risolvere problemi come X? Non ho alcun interesse o intenzione di diventare uno sviluppatore di software. Devo solo fare un paio di cose che non sono esposte ai moduli arcgis python.


questa è una domanda riciclata da Stack Overflow, ( ref ) che per qualsiasi motivo hanno deciso di non migrare qui. Quindi chiedo di nuovo di ottenere una risposta più completa dalle persone in una posizione migliore per aiutare.
matt wilkie,

Quale software hai a disposizione? ArcGIS Devo presumere. Visual Studio 2008/2010 Pro / Express?
Chad Cooper,

Ho ArcGIS 9 e 10. Non ho selezionato alcun software di sviluppo.
Matt Wilson

Risposte:


14

Componenti aggiuntivi VB.Net di sicuro. Le procedure dettagliate ESRI ti metteranno in cammino.

Uso VB6 e VBA da anni e personalmente trovo VB abbastanza intuitivo. Naturalmente VB .Net è un animale completamente diverso ma la struttura del componente aggiuntivo è relativamente semplice da imparare e distribuire. Ho appena partecipato a un seminario tecnico su ArcPy durante una conferenza ESRI e devo dire che seguirò i componenti aggiuntivi di VB.Net. Stavo piangendo fiumi quando è diventato evidente che VBA verrà sostituito da componenti aggiuntivi, ma dopo aver violato la curva di apprendimento devo dire che è il miglior miglioramento singolo di ArcGIS 10. Non c'è nulla che non possa fare con questa configurazione. Ho strumenti personalizzati in tutto il luogo. Le cose di cui le persone si lamentano in ArcGIS le personalizzo semplicemente a mio piacimento. Scrivere uno strumento e distribuirlo in un ambiente d'ufficio è un gioco da ragazzi ...

Tutto ciò che serve è il Visual Studio Express gratuito e l'SDK installato.

Ecco la procedura dettagliata: http://help.arcgis.com/en/sdk/10.0/arcobjects_net/conceptualhelp/index.html#/Building_add_ins_for_ArcGIS_Desktop/0001000000w2000000/

Per quanto riguarda ArcObjects, ci sono così tanti esempi e frammenti di codice che puoi aggiungere direttamente in Visual Studio che potresti semplicemente imparare le basi dagli esempi.

Nella versione 8 ESRI ha effettivamente pubblicato libri ArcObjects; 2 enormi volumi che erano un ottimo riferimento e includevano molti esempi per C e VB. Ora tutti possono essere trovati online, ma vorrei che ESRI li pubblicasse di nuovo.


3
D'accordo su tutti i punti, buuuuttt, io direi di andare C #, se non si dispone di una precedente esperienza VBA / VB6.
Chad Cooper,

Sì, sono parziale a VB. Se fossi uno sviluppatore e usassi varie piattaforme, andrei sicuramente con C # ma trovo (e così è l'opinione popolare) VB più chiaro dal punto di vista visivo e più facile da comprendere e, di conseguenza, più adatto per un principiante.
Jakub Sisak GeoGraphics,

1
+1 su andando con C #. È chiaramente il linguaggio .NET preferito dai leader del settore. Ho usato sia VB che C # come principiante e in realtà penso che sia più facile da imparare e capire. Inoltre si avvicina ad altri linguaggi basati su C come JavaScript e Java.
Wilbev,

7

Ecco una spina spudorata per un articolo che ho scritto l'anno scorso per ArcUser su come iniziare con ArcObjects in .NET .


Basta leggerlo ed è un ottimo articolo ... continua con la spudoratezza per il bene dei neofiti come me! Hai qualcosa sull'uso del sommario in .net..che penso che significhi iniziare a usare COM? Grazie.
Giustino,

6

Se non vuoi essere uno sviluppatore serio, metterei in dubbio la tua mossa entrando nel mondo della programmazione. Il problema qui è che per scrivere il codice dovresti capire cosa sta succedendo sotto il cofano. Altrimenti potresti fare qualcosa per i tuoi dati, l'applicazione e persino il tuo computer che non avevi intenzione di fare, solo per mancanza di comprensione (sì, potresti farlo anche in Python ma .NET è un passo avanti nel fare errori un po 'più facili da comimt).

Per quanto riguarda la tua domanda sugli alias di campo (non sono sicuro di averlo capito correttamente) stavi chiedendo di cambiare gli alias di campi in una classe di caratteristiche? In tal caso, è possibile utilizzare featureclass_to_featureclass con mappatura dei campi. Sì, crea un'altra classe di funzionalità, ma potresti semplicemente avere un'area di output per copiare i dati e modificare gli alias mentre lo sta facendo.

Come suggerisce Steve, ArcPy potrebbe anche rispondere alle tue esigenze in ArcGIS 10 con il nuovo accesso alle proprietà dei layer nella mappa.


re: field aliases - dovresti aggiungerlo come risposta al Q. Non sapevo che fosse possibile.
matt wilkie,

5

Guardando le risorse online per Esri non ho potuto fare a meno di notare come ArcObjects non ha la sua quota di risorse ricche e aggiornate come le altre tecnologie ArcGIS.

Questo è il motivo per cui ho avviato il canale Youtube di IGeometry per discutere di ArcObjects, la serie, che ho chiamato .NET Programming con ArcObjects, finora ha raggiunto il suo 14 ° episodio e molte persone GIS ne stanno davvero beneficiando.

La serie si basa su un progetto immaginario che ho creato chiamato "Bestaurants", in cui è necessario creare un'applicazione in ArcMap per cercare, gestire, aggiungere, eliminare ristoranti. Con ogni episodio introduciamo una nuova interfaccia e impariamo a conoscere gli oggetti a grana fine in ArcObjects in modo divertente!

Pubblico video settimanalmente, ogniqualvolta l'occasione lo consenta, poiché è qualcosa che faccio nel mio tempo libero.

Sentiti libero di provarlo ora e condividerlo con qualsiasi geek GIS che potresti conoscere. Suggerimenti sono sempre ben accetti per migliorare la serie.

Chissà, forse una volta finito questo, potrei iniziare un'altra serie.

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


Voglio anche imparare ArcObject. Ma non lo conosco affatto. È necessaria una licenza aggiuntiva per iniziare con ArcObject? o devo avere il componente ArcObject con ArcGIS 10.4 come ulteriore vantaggio?
Shiuli Pervin,

2
Sì, avrai bisogno della licenza ArcGIS Desktop, tuttavia puoi ottenere l'ultimo ArcGIS Desktop dal sito Web esri con una licenza per 60 giorni. Molto per iniziare.
hnasr,

4

Non è necessario un abbonamento EDN per sviluppare con ArcObjects, né per accedere alla documentazione dell'SDK.

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


Ma hai bisogno dell'EDN per accedere all'SDK stesso, vero? E, siamo onesti, estrarre il codice dalle tue spalle non è esattamente un'opzione per qualcuno che non è interessato all'intelligenza di tale sviluppo.
Nathanus,

2
No, è sul CD di installazione.
blah238,

Viene spedito con ogni versione del prodotto?
Nathanus,

Solo le versioni principali credo. Gli esempi si trovano anche nella guida in linea, sebbene quello .NET non ne abbia un elenco, quello Java lo fa: help.arcgis.com/en/sdk/10.0/java_ao_adf/conceptualHelp/engine/… Il file della guida installato con l'SDK è tuttavia molto più utile.
blah238,

4
Se si dispone di una copia di ArcGIS Desktop, non è necessario un abbonamento EDN per sviluppare componenti aggiuntivi. Un abbonamento EDN è semplicemente un modo per dare agli sviluppatori una copia di quasi tutto nello stack ArcGIS senza masterizzare licenze di produzione molto più costose. EDN è anche utile per lo sviluppo se non si possiede alcuna licenza di produzione. Non è necessario EDN per codificare e sviluppare con l'API ArcObjects.
JimBarry,





0

Non è una vera risposta poiché hai già dichiarato di non voler essere uno sviluppatore.
Ho pubblicato qui per il vantaggio di formattazione rispetto ai commenti.
Questo blog è appena arrivato ed è piuttosto esteso nel dare indicazioni alla comunità di sviluppo riguardo al server arcgis.
Descrive l'intenzione di allontanarsi dall'ADF e incoraggia ad abbracciare i servizi web.
Spero che aiuti in qualche modo la tua decisione.

Blog ESRI - ArcGISServer

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.