Bu sorunun cevabı evet ve hayır. Python'da yapabileceğiniz her şeyi biraz çaba sarf etmek mümkündür. Net, ancak kolay ve mümkün olan iki farklı şeydir. Bundan sonra ise en basit yorumudur hiçbir Python-Ins ekle Net Add-Ins olduğunca yapamaz. Ancak, Python eklentiler görevleri olabilir başarmak çok daha kolay ve daha hızlı uygulanması ve test etmek.
Tamamen teknik bir bakış açısından, ArcGIS Masaüstü Eklenti Çerçevesi aşağıdaki işlevleri sunar:
- Bir dizi yaygın masaüstü entegrasyon noktasını ve bileşenini tanımlamak için iyi tanımlanmış, XML tabanlı bir şema: Düğmeler, Araç Çubukları, Menüler, Araçlar, Çok Öğeli Menüler ve Uzantılar ve bunları kolayca bildirici bir şekilde bağlamanın bir yolu ArcGIS masaüstüne kodunuzu girin
.esriaddin
Masaüstü özelleştirme kodunu dağıtmak için bir dosya biçimi ve dosya yapısı ( ).
- Yüklü, doğrulama ve önbellekleme için bir mekanizma kuruldu
.esriaddins
, bu nedenle enjekte edilen Eklentinin kaynak dosyası değiştiyse, değiştirilen dosyayı yerel masaüstü Eklenti önbelleğine yeniden yükleyecektir.
- Eklentiler'deki kod için bir dizi güvenlik ve kimlik doğrulama mekanizması:
.esriaddin
dosyaların dijital olarak imzalanması, bir Eklentinin yüklenmesine izin vermek için hangi kimlik doğrulama düzeyinin gerektiği konusunda idari kontrol.
Buradaki Eklenti çerçevesinde eksik olan şey, düğmelerin arkasındaki davranış veya işlevin herhangi bir resmi sözleşmesidir. ArcGIS için .Net SDK'yı yüklediğinizde, proje yönetimi iletişim kutularında Eklenti Sihirbazları biçiminde Visual Studio entegrasyonu alırsınız , dokümantasyon, kod snippet'leri, ArcObjects bağları, vb. Bu nedenle, Eklenti çerçevesinin sağladığı giriş noktalarını geçtikten sonra, bir .Net Eklentisi, birlikte gelen ArcObjects API'leri ile geri kalan yollara gitmenizi sağlar. ve zaten kullanmakta olan ortak görevlerin kod snippet'lerinden oluşan bir kitaplığı içermenin yanı sıra. ArcGIS'de böyle bir Python Developer SDK yok: Python'un arcgisscripting / arcpy ile açık olan tüm işlevleri ve zaten üründe paketlenmiş. Net SDK'nın büyük bir indirme olarak geldiği yerde, Python'daki en yakın şey nispeten küçük Eklenti Sihirbazı indirmesidir.
Öte yandan, Python olduğunu / tüketen COM arabirimleri uygulayabilecek , ancak herhangi bir ArcGIS SDK ile birlikte veya ArcGIS yardım sistemine belgelenmiştir Python gelen COM kullanarak. ArcGIS'de gelişmekte yeniyseniz, ne yaptığınızı gerçekten bilmiyorsanız , sizi zorlamak için girişte bir engel yeterli olmalıdır . COM'u Python'da yapabilirsiniz, ancak bir Turing Tarpit'e yeterince yakındır , COM ve ArcObjects'in ins ve çıkışlarına aşina olan uzman düzeyinde bir kullanıcı değilseniz harcanan zamanı haklı çıkarmak zor.
Arcpy ile neler yapabileceğinize bakmanızı tavsiye ederim . Geoprocessing araçlarını arama ve harita belgelerinin toplu olarak işlenmesi gibi birçok görevi otomatikleştirebilirsiniz ve Python Eklentileri , arcpy'nin temel özelliklerine ek olarak, iyi tanımlanmış belirli olay lavabolarını ve bazı iletişim kutularını kullanmanıza izin verir . Belgelerin söylediklerine dayanarak Python'daki görevinizi gerçekleştirmenin bir yolunu düşünemiyorsanız (bazı karmaşık kullanıcı arayüzü etkileşimlerine ihtiyacınız var veya Python Eklenti Sihirbazı'nda gösterilmeyen olaylara bağlanmanız veya yalnızca ArcObjects'te mevcut bir şeyi kullanmanız gerekiyor) , geliştirmenizi bir .Net Eklentisinde yapın.
Maalesef bu, sert ve hızlı bir evet veya hayır cevabından daha nüanslıdır, ancak Eklentinizdeki Python veya .Net yoluna gitmeniz gerekip gerekmediği konusunda size biraz yardımcı olacaktır.
Bu açıklamayı eklemeliyim: Python'a özgü işlevselliğin çoğunu ArcGIS'deki Eklentiler için tasarladım ve geliştirdim.