La réponse à cette question est oui et non. Il est possible avec un certain effort de faire tout en Python que vous pourriez faire en .Net, mais facile et possible sont deux choses très différentes. Après cela, l'interprétation la plus simple est non , les compléments Python ne peuvent pas faire autant que les compléments .Net. Cependant, les tâches que les compléments Python peuvent accomplir sont beaucoup plus faciles et rapides à implémenter et à tester.
D'un point de vue purement technique, ArcGIS Desktop Add-In Framework offre les fonctionnalités suivantes:
- Un schéma XML bien défini pour décrire une série de points et de composants d'intégration de bureau courants: boutons, barres d'outils, menus, outils, menus et extensions à plusieurs éléments, ainsi qu'un moyen de les connecter facilement de manière déclarative à partir de votre code sur le bureau ArcGIS
- Un format de fichier et une structure de fichier (
.esriaddin
) pour distribuer le code de personnalisation du bureau.
- Un mécanisme d'installation, de vérification et de mise en cache installé
.esriaddins
, donc si le fichier source du complément installé a changé, il rechargera le fichier modifié dans le cache du complément du bureau local.
- Un ensemble de mécanismes de sécurité et d'authentification pour le code dans les compléments: signature numérique des
.esriaddin
fichiers, contrôle administratif sur le niveau d'authentification requis pour permettre l'installation d'un complément.
Ce que le framework de complément manque ici, c'est tout contrat formel du comportement ou des fonctionnalités derrière les boutons, etc. Lorsque vous installez le SDK .Net pour ArcGIS, vous obtenez l'intégration de Visual Studio sous la forme d'assistants de complément dans vos boîtes de dialogue de gestion de projet , la documentation, les extraits de code, les liaisons ArcObjects, etc. Donc, une fois que vous avez dépassé les points d'entrée fournis par la structure du complément, un complément .Net vous permet de faire le reste du chemin avec les API ArcObjects, il est également fourni avec , ainsi que contenant une bibliothèque d'extraits de code de tâches courantes déjà disponibles. Il n'y a pas un tel SDK Python Developer dans ArcGIS: toutes les fonctionnalités de Python sont exposées via arcgisscripting / arcpy et sont déjà incluses dans le produit. Ainsi, lorsque le SDK .Net est fourni sous forme de téléchargement volumineux, la chose la plus proche en Python est le téléchargement relativement petit de l'assistant de complément.
D'un autre côté, Python est capable de consommer / implémenter des interfaces COM , mais l'utilisation de COM à partir de Python n'est fournie avec aucun SDK ArcGIS ni documentée dans le système d'aide d'ArcGIS. Si vous débutez dans le développement dans ArcGIS, cela devrait être une barrière à l'entrée suffisante pour vous repousser à moins que vous ne sachiez vraiment ce que vous faites. Vous pouvez faire du COM en Python ici, mais il est suffisamment proche d'un Turing Tarpit qu'il est difficile de justifier le temps passé à moins que vous ne soyez un utilisateur de niveau expert connaissant déjà les tenants et aboutissants de COM et ArcObjects.
Je vous recommande de regarder ce que vous pouvez faire avec arcpy . Vous pouvez automatiser de nombreuses tâches telles que l' appel d'outils de géotraitement et la manipulation par lots de documents cartographiques , et les compléments Python vous permettent d'utiliser certains récepteurs d' événements bien définis et certains contrôles de boîte de dialogue en plus des capacités de base d'arcy. Si vous ne pouvez pas penser à un moyen d'accomplir votre tâche en Python en fonction de ce que dit la documentation (vous avez besoin d'une interaction d'interface utilisateur complexe ou de vous connecter à des événements non exposés dans l'Assistant Complément Python ou utilisez quelque chose uniquement disponible dans ArcObjects) , puis effectuez votre développement dans un complément .Net.
Désolé, cela est plus nuancé qu'une réponse stricte et rapide oui ou non, mais cela devrait vous aider à choisir si vous devez suivre la route Python ou .Net dans votre complément.
Je suppose que je devrais ajouter cette divulgation: j'ai conçu et développé une grande partie des fonctionnalités spécifiques de Python aux compléments dans ArcGIS.