Відповідь на це питання - так і ні. Можна зробити певні зусилля, щоб зробити все в Python, що ви могли зробити в. Net, але легко і можливо - це дві дуже різні речі. Після цього найпростіша інтерпретація - ні , надбудови Python не можуть робити стільки, скільки .Net Add-Ins. Однак завдання надбудови Python, які можна виконати, набагато простіше та швидше реалізувати та протестувати.
З чисто технічної точки зору, платформа ArcGIS Desktop надбудовами пропонує такі функціональні можливості:
- Чітко визначена схема на основі XML для опису серії загальних точок інтеграції на робочому столі та компонентів: кнопки, панелі інструментів, меню, інструменти, багатоповерхові меню та розширення, а також спосіб їх легкого з'єднання декларативним способом із ваш код на робочий стіл ArcGIS
- Формат файлу та структура файлу (
.esriaddin
) для розповсюдження коду налаштування робочого столу.
- Встановлено механізм встановлення, перевірки та кешування
.esriaddins
, тож якщо вихідний файл вбудованої надбудови змінився, він перезавантажить змінений файл у локальний кеш надбудови надбудови.
- Набір механізмів захисту та аутентифікації коду в Add-Ins: цифрове підписання
.esriaddin
файлів, адміністративний контроль над рівнем аутентифікації, необхідний для дозволу встановлення надбудови.
Тут не вистачає будь-якого формального договору про поведінку або функціональність за кнопочками і т. Д. При встановленні .Net SDK для ArcGIS ви отримуєте інтеграцію Visual Studio у вигляді майстрів надбудови в діалогах управління проектами. , документація, фрагменти коду, прив'язки ArcObjects і т. д. Отже, коли ви проходите повз пункти входу, передбачені рамкою надбудови, додаток .Net дозволяє пройти решту шляху з API ArcObjects, з яким він також постачається в комплекті , а також містить бібліотеку фрагментів коду загальних завдань, які вже використовуються. У ArcGIS немає такого пакета програмного забезпечення для розробників Python: вся функціональність Python із відкритими через arcgisscripting / arcpy і вже входить у продукт. Отже, там, де .Net SDK поставляється як велике завантаження, найближчим моментом у Python є порівняно невелике завантаження майстра надбудови.
З іншого боку, Python є здатним споживати / реалізації COM - інтерфейсів , але з використанням COM з Python не пов'язаний з якою - або ArcGIS SDK або документована в довідковій системі ArcGIS. Якщо ви новачок у ArcGIS, це має бути достатньою перешкодою для входу, щоб відштовхнути вас, якщо ви дійсно не знаєте, що робите. Ви можете зробити COM в Python тут, але це досить близько до Тьюрінга Тарпіта, що важко виправдати витрачений час, якщо ви не користувач на рівні експертів, який уже знайомий з надходженнями COM і ArcObjects.
Я рекомендую вам поглянути на те, що ви можете зробити з arcpy . Ви можете автоматизувати безліч завдань, таких як виклик інструментів Geoprocessing та виконання пакетної маніпуляції з картографічними документами , а додатки Python дозволяють вам використовувати певні чітко визначені раковини подій та деякі елементи діалогового керування на додаток до базових можливостей arcpy. Якщо ви не можете придумати спосіб виконання своєї задачі в Python, виходячи з того, що йдеться в документації (вам потрібна складна взаємодія з користувальницьким інтерфейсом або підключення до подій, які не піддаються впливу майстра надбудови Python, або використовувати щось доступне лише в ArcObjects) , тоді зробіть свою розробку в додатку .Net.
Вибачте, це більш нюанс, ніж важкий і швидкий відповідь "так" або "ні", але це має дати вам деяке значення щодо того, чи слід їхати по маршруту Python або .Net у вашому додатку.
Я вважаю, що слід додати це розкриття: я розробив і розробив більшу частину специфічної функції Python для надбудов в ArcGIS.