Opciones avanzadas de impresión para mapas Web

El servicio PrintingTools y los widgets de impresión de cliente en las API Web de ArcGIS están diseñados para impresión básica en tamaños de papel pequeños. Si desea trazar mapas más grandes que 11 x 17 pulgadas, considere utilizar una secuencia de comandos de Python para convertir el mapa Web a un documento de mapa (MXD). Hay varias funciones de arcpy.mapping que pueden tomar un MXD y exportarlo a varios formatos para imprimirlo en tamaños de papel grandes o incluirlo en libros de mapas.

Convertir un mapa Web en un documento de mapa con Python

La impresión de mapas Web en ArcGIS depende de la capacidad del mapa Web para ser representado como JSON o notación de objetos JavaScript. Esri ha creado la especificación ExportWebMap que define cómo se puede estructurar un mapa Web como JSON, con extensión e información de capa, para imprimir. Las API Web de ArcGIS pueden leer el mapa Web actual y crear la JSON por usted. En un escenario de impresión simple, el servicio PrintingTools de ArcGIS Server lee la JSON y devuelve una imagen de mapa que se puede imprimir.

En escenarios avanzados de impresión, la JSON del mapa Web no se tiene que enviar al servicio PrintingTools. En lugar de ello, puede convertir la JSON en un MXD. Para hacer esto, utilice la función de Python arcpy.mapping.ConvertWebMapToMapDocument. Después, puede utilizar el MXD resultante en otras funciones de arcpy.mapping, como ExportToPDF o ExportToPNG, para preparar el mapa para imprimirlo. También puede elegir agregar el mapa a un libro de mapas antes de imprimirlo o cambiar algunas de las capas en teselas del mapa por sus propias capas vectoriales, de modo que pueda obtener una imagen de resolución más alta. Estas técnicas se describen el tema de referencia ConvertWebMapToMapDocument tema de referencia.

Llamar las secuencias de comandos desde la web

Cuando escribe una secuencia de comandos arcpy.mapping de impresión, ¿cómo la utiliza en la aplicación Web? ArcGIS Server ofrece los servicios de geoprocesamiento que le permiten exponer sus secuencias de comandos, herramientas y modelos como servicios Web. Esto hace que las pueda llamar desde las API Web de ArcGIS.

Una vez tenga una secuencia de comandos de Python que prepara el mapa para la impresión, puede elegir encapsularla en una herramienta de secuencia de comandos de geoprocesamiento. Realice una prueba de la herramienta y después publique el resultado como un servicio de geoprocesamiento de ArcGIS Server. Las API Web de ArcGIS tienen clases que pueden ayudarle a invocar estos servicios, como la clase Geoprocesador en la ArcGIS API for JavaScript.

El enfoque más sencillo al desarrollar este tipo de herramienta de secuencia de comandos de geoprocesamiento es asegurarse de que esta exponga los mismos parámetros del servicio de uso inmediato PrintingTools, o un subconjunto de los mismos. El parámetro JSON de entrada es el parámetro mínimo necesario. Si diseña el servicio de esta forma, los widgets de impresión de las API de representación cartográfica en la red de ArcGIS y los visores Web podrán utilizar el servicio sin ninguna codificación personalizada. Por otra parte, si agrega parámetros a la herramienta que no estén en PrintingTools, los widgets de impresión de Esri no serán compatibles con la herramienta y tendrá que escribir su propio código o widget para llamar su herramienta.

9/11/2013