PythonUna de las tareas más comunes para los usuarios con un cierto nivel en ArcMap, es la de crear herramientas que personalicen el interfaz de ArcMap para facilitar la ejecución de ciertas tareas. Hasta la versión de ArcGIS 9.3.1, estas personalizaciones se realizaban mediante el lenguaje Visual Basic dentro del entorno VBA. Desde la versión de ArcGIS 10, estas personalizaciones se hacer,

En este post nos vamos a centrar en el uso de python y cómo vais a ver, no es necesario dedicar demasiado tiempo para crear estas personalizaciones.

Si estáis interesados en entender la diferencia entre un entorno u otro, aquí tenéis este enlace: Aplicaciones para ArcMap: ArcObjects o Python.

Los Add-ins son personalizaciones paquetizadas que permiten distribuir personalizaciones del interfaz de de ArcMap una forma sencilla. No harán falta programas de instalación. Sólo un archivo comprimido y ubicado en un directorio específico.

Además, Esri ha creado este asistente para la creación de AddIns que simplifica aún más su proceso de creación. Una vez descargado el fichero haz doble click en el fichero addin_assistant.exe ubicado en el directorio addin_assistant/bin.

Estructura de ficheros del Add-in

La estructura de ficheros que se despliega es muy sencilla. Sólo está compuesto por dos carpetas y un conjunto de ficheros.

  • La carpeta images contiene los iconos o imágenes que usa el addin.
  • La carpeta install contiene el script de python que ejecuta la lógica del proceso que almacena el addin. Será en este fichero en el que escribiremos el código que ejecute la aplicación. Almacenará el código que se ejecute en tu menú, botón, herramienta, etc..

El fichero config.xml define el interfaz de usuario así como algunas propiedades estáticas tales como: el nombre, el autor, la versión, etc.

El fichero makeaddin.py crea el fichero .esriaddin solo con hacer sobre el doble click. Este fichero .esriaddin sera el que se utilizaremos para hacer las distribuciones de nuestra mini-aplicación.

1_carpeta_addins

 

Tipos de Add-ins

Se pueden crear multitud de tipos de addins distintos. Los más sencillos son las herramientas (Tools) y los botones.

  • Los botones no hacen más que ejecutar código al click sobre los mismos.
  • Las herramientas hacen algo similar pero requieren de una cierta interacción del usuario con el mapa para ser ejecutadas.
  • Los comboboxes proporcionan una lista de opciones para que el usuario seleccione entre las mismas.

Hay varios tipos de elementos contenedores de opciones tales como: menús, barras de herramientas y Tool palettes.

  • Los menús actúan como contenedores para botones u otros menús.
  • Las barras de herramientas son contenedores de botones, herramientas, combo boxes, paletas de herramientas y menús. Son además los tipos más versátiles de los distintos tipos de contenedores de addins.
  • Las paletas de herramientas funcionan como contenedores de herramientas. Las paletas de herramientas se han de añadir a una barra de herramientas para que sus herramientas sean accesibles.
  • Por último las extensiones de aplicación son los tipos más complejos de Add-ins ya que se encargarán de coordinar funcionalidad de diversos componentes y serán los responsables de atender a diferentes peticiones y de responder a distintos eventos tales como eliminar capas del dataframe, etc.

2_controles_addins_arcgis

¿Cómo crear Add-Ins de ArcGIS con Python?

El primer paso para crear un Add-in es la creación de un proyecto Add-in. Para crear un proyecto abre el asistente ArcGIS Python Add-In Wizard . Define en él los parámetros de creación. Por ultimo haz click en el botón save, sin cerrar el asistente.

 

Después, has de seguir los siguientes pasos:

  1. Primero has de crear el contenedor del add-in, bien una barra de herramientas bien un menú.
  2. Segundo crea el botón, la herramienta o el tipo de personalización que desees añadir al contenedor. En este caso vamos a elegir un botón
  3. Tercero, debemos editar el script de python asociado al botón

Primero: Crear un contenedor para el add-in. Esto es muy sencillo siguiendo el asistente Python Add-In Wizard. Ve a la pestaña Contents y con el botón derecho del ratón haz click en el elemento Toolbars y selecciona New Toolbar.

Segundo: Una vez se ha creado el contenedor del add-in, debes crear el elemento que ejecutará el add-in: botón, herramienta, etc. En este caso crearemos un botón. Botón derecho sobre la nueva toolbar creada y selecciona “New button”. Luego debes completar el resto de parámetros informativos asociados al botón. Estos se guardarán en el fichero config.xml. Haz click en el botón save para guardar los cambios.

Tercero: Los Add-ins tienen un script asociado. Este script se almacena en un fichero que por defecto se llamará AddIns_addin.py que se ubica en el directorio de trabajo que hayas elegido durante la instalación. Dentro del archivo debes localizar el evento ‘onClick’. Es esta función la que debes modificar para añadir la funcionalidad que desees y que se ejecutará al click del botón.

Es conveniente que pruebes el addin antes de distribuirlo. Para probar el add-in antes debes instalarlo.

Una vez copiado en el directorio de trabajo ejecuta el fichero makeaddin.py

Esto copia todos los ficheros y carpetas a un directorio add-in comprimido con el formato: .esriaddin.

Haz doble click en este fichero .esriaddin para lanzar la instalación de la utilidad ESRI ArcGIS Add-In Installation.

Probar el AddIn

A partir de aquí puedes abrir ArcGis Desktop y probar el addin. La barra de herramientas o el menu deben estar visibles y listas para probarlas. Si no es visible debes ir al menu Customize y hacer click en el Add-in Manager. El diálogo del Add-In Manager lista los add-ins instalados objetos de la aplicación.

Si el add-in se lista en el manager haz click en el botón Customize para abrir el diálogo Customize.

Para añadir una barra de herramientas a la aplicación, haz click en la pestaña Toolbars y elige la herramienta recién creada.

Para añadir un menú a la aplicación, haz click en la pestaña Commands y desplázate hasta [MENUS] y busca el menú que has creado. Arrastra el menú hasta un menú existente o a una barra de herramientas. Si el add-in es una extensión, asegúrate de que está habilitada. Abre el dialogo Extensions y actívalo.

En Mayo empezamos una nueva sesión de nuestro curso Desarrollo de aplicaciones en ArcMap con Python.