Memulai dengan ArcObjects?

26

Apa rute atau tempat terbaik untuk memulai dengan ArcObjects jika seseorang bukan pengembang dan tidak bertujuan untuk menjadi pengembang ?

Saya sudah menggunakan gis secara profesional sejak lama, hampir dua dekade, arcinfo / arcgis untuk sebagian besar itu; Saya cukup baik. Saya belajar pengembangan perangkat lunak, dan bahkan memiliki aplikasi python kecil yang cukup berhasil digunakan dalam proyek publik; Aku tidak baik! Saya tidak ingin menjadi pengembang perangkat lunak yang lengkap, tetapi saya terus mengalami hal-hal yang tidak dapat saya lakukan tanpa pemrograman ( contoh ). Di dunia arcgis ini menempatkan saya cukup tepat di kamp python, yang menurut saya baik-baik saja karena saya suka python, namun python tidak memiliki akses langsung ke ArcObjects. (Python dan ArcObjects dimungkinkan , tetapi ini merupakan rute yang tidak didukung. Pertanyaan ini adalah tentang mengikuti jalan yang dipukuli.)

Saya perlu memulai, tetapi di mana? Arcgis help mengatakan untuk memulai dengan ESRI Developer Network tetapi $ 1500 / thn jelas tidak sesuai anggaran saya, dan kedengarannya seperti menggunakan palu godam untuk memukul nyamuk. Dan bahasa apa. NET, Visual Basic, atau Visual C ++?


UPDATE: Terima kasih semuanya atas jawaban yang luar biasa. Mengingat mereka, saya menyadari bahwa saya tidak perlu mempersempit ruang lingkup pertanyaan saya sebelum mengandaikan "ArcObjects" adalah arah yang harus saya tempuh. Formulasi yang lebih terbuka berakhir lebih pada baris:

Saya terus mengalami masalah yang tidak bisa saya selesaikan hanya dengan arcgis dan python saja. Apa lagi yang bisa saya pelajari / gunakan untuk menyelesaikan masalah seperti X? Saya tidak tertarik atau berniat menjadi pengembang perangkat lunak. Saya hanya perlu melakukan beberapa hal yang tidak terkena modul python arcgis.

matt wilkie
sumber
ini adalah pertanyaan daur ulang dari Stack Overflow, ( ref ) yang karena alasan apa pun mereka telah memutuskan untuk tidak bermigrasi ke sini. Jadi saya meminta lagi untuk mendapatkan jawaban yang lebih komprehensif dari orang-orang di posisi yang lebih baik untuk membantu.
matt wilkie
Perangkat lunak apa yang Anda miliki? ArcGIS saya harus berasumsi. Visual Studio 2008/2010 Pro / Ekspres?
Chad Cooper
Saya memiliki ArcGIS 9 & 10. Saya belum memilih perangkat lunak pengembangan apa pun.
matt wilkie

Jawaban:

14

Add-in VB.Net pasti. ESRI walk-palung akan membuat Anda di jalan.

Saya telah menggunakan VB6 dan VBA selama bertahun-tahun dan secara pribadi saya menemukan VB cukup intuitif. Tentu saja VB. Net adalah hewan yang sama sekali berbeda tetapi struktur tambahan relatif mudah dipelajari dan digunakan. Saya baru saja mengikuti lokakarya teknis di ArcPy pada konferensi ESRI dan saya harus mengatakan bahwa saya akan tetap menggunakan add-in VB.Net. Saya menangis ketika menjadi jelas bahwa VBA akan digantikan oleh add-in tetapi setelah melanggar kurva belajar saya harus mengatakan bahwa itu adalah perbaikan tunggal terbaik untuk ArcGIS 10. Tidak ada yang saya tidak bisa lakukan dengan pengaturan ini. Saya memiliki alat khusus di semua tempat. Hal-hal yang dikeluhkan orang di ArcGIS saya sesuaikan dengan keinginan saya. Menulis alat dan mendistribusikannya di lingkungan kantor sangat mudah ...

Yang Anda butuhkan adalah Visual Studio Express gratis dan SDK diinstal.

Berikut ini walk-trough: http://help.arcgis.com/en/sdk/10.0/arcobjects_net/conceptualhelp/index.html#/Building_add_ins_for_ArcGIS_Desktop/0001000000w2000000/

Adapun ArcObjects, ada begitu banyak contoh dan potongan kode yang bisa Anda tambahkan langsung ke Visual Studio sehingga Anda mungkin bisa mempelajari dasar-dasarnya dari contoh.

Dalam versi 8 ESRI sebenarnya menerbitkan buku-buku ArcObjects; 2 volume besar yang merupakan referensi bagus dan termasuk banyak contoh untuk C dan VB. Semua sekarang dapat ditemukan online tetapi saya berharap ESRI akan mempublikasikan ini lagi.

Jakub Sisak GeoGraphics
sumber
3
Setuju pada semua poin, tetapi saya akan mengatakan pergi C # jika Anda tidak memiliki pengalaman VBA / VB6 sebelumnya.
Chad Cooper
Ya saya tidak setuju dengan VB. Jika saya adalah seorang pengembang dan menggunakan berbagai platform saya pasti akan pergi dengan C # tapi saya menemukan (dan begitu juga pendapat populer) VB lebih jelas secara visual dan lebih mudah dipahami dan sebagai hasilnya lebih cocok untuk pemula.
Jakub Sisak GeoGraphics
1
+1 sedang berjalan dengan C #. Ini jelas bahasa .NET favorit oleh para pemimpin di industri. Saya telah menggunakan VB dan C # sebagai pemula dan sebenarnya berpikir lebih mudah untuk belajar dan memahami. Juga lebih dekat ke bahasa berbasis C lainnya seperti JavaScript dan Java.
wilbev
7

Berikut plug tak tahu malu untuk artikel yang saya tulis tahun lalu untuk ArcUser tentang memulai dengan ArcObjects di .NET .

Chad Cooper
sumber
Baca saja dan ini adalah artikel yang bagus .. tetap dengan rasa malu demi pemula seperti saya! Apakah Anda memiliki sesuatu tentang menggunakan TOC di .net..yang menurut saya berarti mulai menggunakan COM? Terima kasih.
Justin
6

Jika Anda tidak ingin menjadi pengembang yang serius maka saya akan mempertanyakan langkah Anda dalam melangkah ke dunia pemrograman. Masalahnya di sini adalah bahwa untuk menulis kode Anda harus memahami apa yang terjadi di bawah tenda. Kalau tidak, Anda bisa melakukan sesuatu untuk data Anda, aplikasi dan bahkan komputer Anda yang Anda tidak berniat melakukannya, hanya dari kurangnya pemahaman (ya Anda bisa melakukannya dengan Python juga. NET adalah langkah lebih jauh dalam membuat kesalahan sedikit lebih mudah comimt).

Dalam hal pertanyaan Anda tentang alias bidang (saya tidak yakin apakah saya telah memahaminya dengan benar) apakah Anda meminta untuk mengubah alias bidang dalam kelas fitur? Jika demikian maka Anda dapat menggunakan Featureeclass_to_featureclass dengan pemetaan bidang. Ya itu menciptakan kelas fitur lain tetapi Anda hanya bisa memiliki area output untuk menyalin data dan mengubah alias saat sedang melakukannya.

Seperti yang disarankan Steve, ArcPy juga dapat menjawab kebutuhan Anda di ArcGIS 10 dengan akses baru ke properti layer di peta.

Rob Clark
sumber
re: field alias - Anda harus menambahkan itu sebagai jawaban untuk Q. Saya tidak tahu itu mungkin.
matt wilkie
5

Melihat sumber daya online untuk Esri, saya tidak bisa tidak melihat bagaimana ArcObjects tidak memiliki sumber daya yang kaya dan terkini seperti teknologi ArcGIS lainnya.

Itulah alasan saya memulai saluran Youtube IGeometry untuk membahas ArcObjects, seri yang saya sebut .NET Programming dengan ArcObjects, telah mencapai episode ke-14 sejauh ini dan banyak orang SIG benar-benar mendapat manfaat darinya.

Seri ini didasarkan pada proyek fiksi yang saya buat bernama "Bestaurants", di mana Anda harus membuat aplikasi di atas ArcMap untuk mencari, mengelola, menambah, menghapus restoran. Dengan setiap episode kami memperkenalkan antarmuka baru dan belajar tentang objek berbutir halus di ArcObjects dengan cara yang menyenangkan!

Saya memposting video setiap minggu, kapan pun kesempatan memungkinkan, karena ini adalah sesuatu yang saya lakukan pada waktu saya sendiri.

Jangan ragu untuk memeriksanya sekarang, dan membaginya dengan geek GIS yang mungkin Anda kenal. Saran selalu disambut untuk meningkatkan seri.

Siapa tahu, mungkin begitu kita menyelesaikan ini, saya mungkin memulai seri lain.

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

hnasr
sumber
Saya juga ingin belajar ArcObject. Tapi saya sama sekali tidak terbiasa dengan itu. Apakah saya memerlukan lisensi tambahan untuk memulai dengan ArcObject? atau apakah saya perlu memiliki komponen ArcObject dengan ArcGIS 10.4 sebagai lisense tambahan?
Shiuli Pervin
2
Ya, Anda memerlukan ArcGIS Desktop License, namun Anda bisa mendapatkan ArcGIS Desktop terbaru dari situs web esri dengan lisensi selama 60 hari. Banyak untuk memulai.
hnasr
4

Anda tidak memerlukan langganan EDN untuk dikembangkan dengan ArcObjects, atau untuk mengakses dokumentasi SDK.

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

blah238
sumber
Tetapi Anda perlu EDN untuk mengakses SDK itu sendiri, bukan? Dan, jujur ​​saja, menarik kode dari belakang Anda bukanlah pilihan bagi seseorang yang tidak tertarik pada nit dan grit dari pengembangan tersebut.
Nathanus
2
Tidak, ini ada di CD instalasi.
blah238
Itu dikirim dengan setiap versi produk?
Nathanus
Hanya rilis utama yang saya percaya. Sampel dalam bantuan online juga, meskipun. NET tampaknya tidak memiliki daftar mereka, yang Jawa tidak: help.arcgis.com/en/sdk/10.0/java_ao_adf/conceptualHelp/engine/… File bantuan yang diinstal dengan SDK jauh lebih berguna.
blah238
4
Jika Anda memiliki salinan Desktop ArcGIS maka Anda tidak perlu berlangganan EDN untuk mengembangkan peralatan tambahan. Langganan EDN hanyalah cara untuk memberi pengembang salinan apa saja di tumpukan ArcGIS tanpa membakar lisensi produksi yang jauh lebih mahal. EDN juga baik untuk dikembangkan jika Anda tidak memiliki lisensi produksi sama sekali. Anda tidak perlu EDN untuk membuat kode dan mengembangkan dengan ArcObjects API.
JimBarry
4

Saya memposting pertanyaan serupa tentang sumber daya ArcObjects terbaik:

Sumber Daya ArcObjects

Cuplikan kode yang disediakan oleh ArcGIS Resource Center sangat membantu, dan ditawarkan dalam C # dan VB.NET.

Britt Wescott
sumber
2

Pennsylvania State University baru-baru ini merilis secara gratis untuk kursus Pengembangan Aplikasi GIS .
Ini mengajarkan dasar-dasar ArcObjects di VB.NET

Marcin
sumber
0

Bukan jawaban nyata karena Anda telah menyatakan tidak ingin menjadi pengembang.
Saya telah memposting di sini untuk keuntungan format dari komentar.
Blog ini baru saja datang dan cukup luas dalam memberikan arahan kepada komunitas pengembangan tentang server arcgis.
Ini menguraikan maksud untuk pindah dari ADF dan mendorong merangkul layanan web.
Saya harap ini sedikit membantu keputusan Anda.

ESRI Blogs - ArcGISServer

Brad Nesom
sumber