Skip To Content

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. Pour les workflows d'impression où la carte Web doit être modifiée ou exportée à l'aide d'options avancées, utilisez la fonction ConvertWebMapToMapDocument du module Python arcpy.mapping.

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 de services de la carte par vos propres couches vectorielles. Ces techniques sont décrites à la rubrique ConvertWebMapToMapDocument.

Certains didacticiels expliquent également l'intégralité du workflow avancé d'exportation et d'impression. Ils décrivent comment créer les documents ArcMap intermédiaires de modèle, le script Python, le service de géotraitement et l'application Web :

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.

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é.