Le service PrintingTools et ses widgets d’impression client des API Web ArcGIS ont été conçus pour une impression de base. Pour imprimer des processus où la carte web doit être modifiée ou exportée à l’aide d’options avancées, utilisez une fonction de conversion du module arcpy Python : ConvertWebMapToMapDocument pour ArcMap et ConvertWebMapToArcGISProject pour ArcGIS Pro.
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 de 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. À la place, vous pouvez convertir le fichier JSON en un document ArcMap (.mxd) ou en projet ArcGIS Pro (.aprx).
Conversion d’une carte Web en un document ArcMap à l’aide de Python
Pour convertir une carte Web JSON en un document cartographique (.mxd), utilisez la fonction ConvertWebMapToMapDocument. Une fois que la carte Web est convertie, l’état complet de la carte Web existe dans le document cartographique. Le document peut être modifié davantage avant son impression ou exporté à l’aide d’une fonction telle que ExportToPDF ou ExportToPNG. 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.
Esri offre des didacticiels expliquant 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 :
Conversion d’une carte Web en un projet ArcGIS Pro avec Python
Pour convertir une carte Web JSON en un projet ArcGIS Pro (.aprx), utilisez la fonction ConvertWebMapToArcGISProject. Une fois que la carte Web est convertie, l’état complet de la carte Web existe dans le projet. Vous pouvez ensuite modifier davantage la carte Web avant impression, ou l’exporter à l’aide d’une autre fonction Python. Comme avec ArcMap, 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.
Pour une discussion, des scénarios et des échantillons de code plus détaillées, consultez la rubrique Impression d’une carte Web avec arcpy.mp, ce qui explique comment créer des modèles de mise en page intermédiaires, créez un script Python pour une carte Web, et créez des outils Web et des applications Web.
Appel des scripts à partir du Web
Une fois que vous avez écrit un script arcpy en vue de l’impression, ArcGIS Enterprise offre des services de géotraitement vous permettant d’exposer vos scripts, outils et modèles en tant que services web. Ils peuvent ainsi être facilement appelés à partir des API Web ArcGIS.
Vous pouvez choisir d’encapsuler votre script d’impression Python dans un outil de script de géotraitement. Procédez à un test de votre outil, puis publiez le résultat en tant que service de géotraitement ArcGIS Enterprise.
L’approche la plus facile pour développer ce type d’outil de script de géotraitement consiste à s’assurer qu’il expose les mêmes paramètres que le service PrintingTools prêt à l’emploi, ou un sous-ensemble de ce service. Le paramètre JSON en entrée est le paramètre minimum requis. Si vous concevez votre service de cette manière, les widgets d’impression d’ArcGIS Web AppBuilder et les tâches d’impression des API de cartographie web et des visionneuses web ArcGIS seront en mesure de l’utiliser sans aucun codage personnalisé.
Vous avez un commentaire à formuler concernant cette rubrique ?