La respuesta a esta pregunta es sí y no. Es posible, con algo de esfuerzo, hacer en Python todo lo que se podría hacer en .Net, pero fácil y posible son dos cosas muy diferentes. Siguiendo con esto, la interpretación más sencilla es no Los complementos de Python no pueden hacer tanto como los de .Net. Sin embargo, las tareas de los complementos de Python puede son mucho más fáciles y rápidos de implementar y probar.
Desde un punto de vista puramente técnico, el marco de complementos de ArcGIS Desktop ofrece la siguiente funcionalidad:
- Un esquema bien definido, basado en XML, para describir una serie de puntos y componentes comunes de integración del escritorio: Botones, barras de herramientas, menús, herramientas, menús de varios elementos y extensiones, así como una forma de conectarlos fácilmente de forma declarativa desde su código al escritorio de ArcGIS
- Un formato de archivo y una estructura de archivo (
.esriaddin
) para distribuir el código de personalización del escritorio.
- Un mecanismo para instalar, verificar y almacenar en caché lo instalado
.esriaddins
Si el archivo fuente del complemento instalado ha cambiado, volverá a cargar el archivo modificado en la caché del complemento del escritorio local.
- Un conjunto de mecanismos de seguridad y autenticación para el código de los complementos: firma digital de
.esriaddin
archivos, el control administrativo sobre qué nivel de autenticación se requiere para permitir la instalación de un complemento.
Lo que le falta al marco de los complementos es un contrato formal sobre el comportamiento o la funcionalidad de los botones, etc. Cuando se instala el SDK de .Net para ArcGIS, se obtiene la integración de Visual Studio en forma de asistentes de complementos en los diálogos de gestión de proyectos, documentación, fragmentos de código, enlaces de ArcObjects, etc. Así, una vez superados los puntos de entrada que proporciona el marco de complementos, un complemento .Net le permite recorrer el resto del camino con las API de ArcObjects que también incluye, así como que contiene una biblioteca de fragmentos de código de tareas comunes ya existentes para utilizar . No hay tal SDK para desarrolladores de Python en ArcGIS: toda la funcionalidad de Python con expuesta a través de arcgisscripting/arcpy y ya está incluida en el producto. Por lo tanto, mientras que el SDK de .Net viene como una gran descarga, lo más parecido en Python es la descarga relativamente pequeña del Asistente para complementos.
Por otro lado, Python es capaz de consumir/implementar interfaces COM pero el uso de COM desde Python no está incluido en ningún SDK de ArcGIS ni está documentado en el sistema de ayuda de ArcGIS. Si usted es nuevo en el desarrollo en ArcGIS, esto debería ser una barrera de entrada suficiente para alejarlo a menos que realmente saber lo que estás haciendo. Puedes hacer COM en Python aquí, pero es lo suficientemente cerca de un Turing Tarpit que es difícil justificar el tiempo invertido a menos que sea un usuario experto que ya esté familiarizado con los entresijos de COM y ArcObjects.
Te recomendaría mira lo que puedes hacer con arcpy . Puede automatizar muchas tareas como llamar a las herramientas de geoprocesamiento y hacer una manipulación por lotes de documentos cartográficos y complementos de Python le permiten utilizar ciertos sumideros de eventos bien definidos y algunos controles de diálogo además de las capacidades básicas de arcpy. Si no puedes pensar en una forma de realizar tu tarea en Python basándote en lo que dice la documentación (necesitas alguna interacción compleja con la interfaz de usuario o enganchar a eventos no expuestos en el Asistente para complementos de Python o utilizar algo que sólo está disponible en ArcObjects), entonces haz tu desarrollo en un complemento de .Net.
Lo siento, esto es más matizado que una respuesta dura y rápida de sí o no, pero debería darle alguna orientación en cuanto a si usted debe ir a la ruta de Python o de .Net en su Add-In.
Supongo que debo añadir esta revelación: Diseñé y desarrollé gran parte de la funcionalidad específica de Python para los complementos de ArcGIS.
0 votos
¿Dónde dice que "Python y .NET tienen las mismas características para crear complementos"?
0 votos
Lo siento, expreso mal lo que quiero decir.(actualizo post)
1 votos
implement a COM interface, or plug into ESRI’s many COM extensibility points using Python
Eso es extraño. Python puede funcionar bien con COM.0 votos
De hecho, he creado complementos (triviales) de Python que utilizan ArcObjects a través de comtypes. Sin embargo, no he intentado implementar interfaces COM en Python. No estoy seguro de si eso es posible o cuán difícil sería en comparación con .NET. Además, ninguno de los dos tipos de complementos permite el registro automático con COM, por lo que algunas de las cosas más avanzadas están mejor servidas con un componente COM tradicional que puede ser registrado por su instalador o (ESRI)RegAsm.
1 votos
Esto no es ArcGIS pero así es como hice una interfaz COM implementada usando Python para MapInfo nathanw.net/2011/04/07/usando-python-y-mapinfo-con-retornos Yo diría que es más fácil que .NET :)