Impression avancée de cartes Web

Le service PrintingTools et ses widgets d'impression client des API Web ArcGIS ont été conçus pour une impression de base sur des papiers de petite taille. Si vous souhaitez tracer des cartes d'une taille supérieure à 11 x 17 pouces, utilisez plutôt un script Python de façon à convertir la carte Web en document ArcMap (MXD). Un certain nombre de fonctions arcpy.mapping peuvent utiliser un document MXD et l'exporter dans différents formats en vue d'une impression sur du papier de grande taille ou d'une inclusion dans des atlas.

Conversion d'une carte Web en un document ArcMap à l'aide de Python

L'impression de cartes Web dans ArcGIS repose sur la capacité de la carte Web à être représentée au format JSON (JavaScript Object Notation). Esri a créé la spécification ExportWebMap qui définit la façon dont une carte Web peut être structurée au format JSON avec des informations d'étendue et de couche en vue de son impression. Les API Web ArcGIS peuvent lire votre carte Web existante et la mettre au format JSON pour vous. Dans un scénario d'impression simple, le service PrintingTools d'ArcGIS Server lit les données JSON et retourne une carte de type image qui peut être imprimée.

Dans les scénarios plus avancés, les données JSON de la carte Web n'ont pas besoin d'être envoyées au service PrintingTools. Au lieu de cela, vous pouvez convertir le format JSON au format MXD. Pour ce faire, utilisez la fonction Python arcpy.mapping.ConvertWebMapToMapDocument. Vous pouvez ensuite utiliser le document MXD obtenu dans d'autres fonctions arcpy.mapping, telles que ExportToPDF ou ExportToPNG, afin de préparer la carte pour son impression. Vous pouvez même choisir d'ajouter la carte à un atlas avant de l'imprimer, ou remplacer certaines couches tuilées de la carte par vos propres couches vectorielles afin d'obtenir une image d'une résolution supérieure. Ces techniques sont décrites à la rubrique ConvertWebMapToMapDocument.

Appel des scripts à partir du Web

Une fois que vous avez écrit un script arcpy.mapping en vue d'une impression, comment devez-vous l'utiliser à partir de votre application Web ? ArcGIS Server propose des services de géotraitement qui vous permettent de présenter vos scripts, outils et modèles sous la forme de services Web. Ils peuvent ainsi être facilement appelés à partir des API Web ArcGIS.

Une fois que vous disposez d'un script Python qui prépare la carte pour son impression, vous pouvez choisir de l'encapsuler dans un outil de script de géotraitement. Lancez un test de cet outil, puis publiez le résultat en tant que service de géotraitement ArcGIS Server. Les API Web ArcGIS possèdent des classes qui peuvent vous aider à appeler ces services, telles que la classe de géoprocesseur de l'API ArcGIS pour JavaScript.

La façon la plus simple de procéder lors du développement de ce type d'outil de script de géotraitement consiste à s'assurer qu'il présente les mêmes paramètres que le service PrintingTools prêt à l'emploi, ou au moins un sous-ensemble de ces paramètres. Le paramètre JSON en entrée est le paramètre minimum requis. Si vous concevez votre service de cette façon, les widgets d'impression des API de cartographie Web ArcGIS et les visionneuses Web pourront utiliser votre service sans que vous ayez à ajouter du code personnalisé. D'un autre côté, si vous ajoutez des paramètres à votre outil qui ne figurent pas dans le service PrintingTools, les widgets d'impression Esri seront incompatibles avec votre outil et vous devrez écrire votre propre code ou widget pour appeler votre outil.

9/18/2013