A resposta a esta pergunta é sim e não. É possível, com algum esforço, fazer tudo em Python que você possa fazer no .Net, mas fácil e possível são duas coisas muito diferentes. Depois disso, a interpretação mais simples é não , os suplementos Python não podem fazer tanto quanto os suplementos .Net. No entanto, as tarefas que os suplementos do Python podem realizar são muito mais fáceis e rápidas de implementar e testar.
Do ponto de vista puramente técnico, o ArcGIS Desktop Add-In Framework oferece a seguinte funcionalidade:
- Um esquema bem definido, baseado em XML, para descrever uma série de pontos e componentes comuns de integração da área de trabalho: botões, barras de ferramentas, menus, ferramentas, menus e extensões com vários itens, além de uma maneira de conectá-los facilmente de maneira declarativa. seu código para o ArcGIS desktop
- Um formato de arquivo e estrutura de arquivo (
.esriaddin
) para distribuir o código de personalização da área de trabalho.
- Um mecanismo para instalar, verificar e armazenar em cache instalado
.esriaddins
. Portanto, se o arquivo de origem do suplemento instalado for alterado, ele será recarregado no arquivo de suplemento da área de trabalho local.
- Um conjunto de mecanismos de segurança e autenticação para o código em Suplementos: assinatura digital de
.esriaddin
arquivos, controle administrativo sobre o nível de autenticação necessário para permitir a instalação de um Suplemento.
O que falta na estrutura de suplementos aqui é qualquer contrato formal de comportamento ou funcionalidade por trás dos botões, etc. Ao instalar o .Net SDK for ArcGIS, você obtém a integração do Visual Studio na forma de assistentes de suplemento nas caixas de diálogo de gerenciamento de projetos. , documentação, trechos de código, ligações ao ArcObjects etc. Assim que você passar pelos pontos de entrada que a estrutura de suplementos fornece, um suplemento .Net permite percorrer o resto do caminho com as APIs do ArcObjects, que também são fornecidas com , além de conter uma biblioteca de trechos de código de tarefas comuns já existentes para usar. Não existe um SDK de desenvolvedor Python no ArcGIS: toda a funcionalidade do Python é exposta por meio de arcgisscripting / arcpy e já está incluída no produto. Portanto, onde o .Net SDK vem como um download grande, a coisa mais próxima do Python é o download relativamente pequeno do Assistente de Complementos.
Por outro lado, o Python é capaz de consumir / implementar interfaces COM , mas o uso do COM do Python não é fornecido com nenhum ArcGIS SDK ou documentado no sistema de ajuda do ArcGIS. Se você é novo no desenvolvimento no ArcGIS, isso deve ser uma barreira suficiente para afastá-lo, a menos que você realmente saiba o que está fazendo. Você pode fazer COM em Python aqui, mas é quase o suficiente para um Turing Tarpit que será difícil justificar o tempo gasto, a menos que você seja um usuário de nível especialista já familiarizado com os meandros do COM e do ArcObjects.
Eu recomendo que você analise o que você pode fazer com o arcpy . Você pode automatizar muitas tarefas, como chamar ferramentas de Geoprocessamento e manipular lotes de documentos de mapa , e os Suplementos do Python permitem usar certos coletores de eventos bem definidos e alguns controles de diálogo, além dos recursos básicos do arcpy. Se você não consegue encontrar uma maneira de realizar sua tarefa no Python com base no que a documentação diz (você precisa de alguma interação complexa da interface do usuário ou se conectar a eventos não expostos no Assistente de Complemento do Python ou usar algo disponível apenas no ArcObjects) , faça seu desenvolvimento em um suplemento .Net.
Desculpe, isso é mais matizado do que uma resposta direta ou indireta, mas você deve ter alguma orientação sobre se deve seguir a rota Python ou .Net no seu suplemento.
Suponho que devo adicionar esta divulgação: projetei e desenvolvi grande parte da funcionalidade específica do Python para suplementos no ArcGIS.