Сервис PrintingTools и его клиентские виджеты печати в веб-интерфейсах API для ArcGIS предназначены для стандартной печати. В процессах, где для печати требуется изменить или экспортировать веб-карту с помощью дополнительных опций, используйте функцию ConvertWebMapToMapDocument в модуле Python arcpy.mapping.
Конвертирование веб-карты в документ карты с помощью Python
Печать веб-карт в ArcGIS зависит от способности веб-карты быть представленной в формате JSON (текстовый формат обмена данными на основе JavaScript). Компания Esri создала спецификацию ExportWebMap, которая определяет, как веб-карта может быть представлена в формате JSON с экстентом и информацией о слоях для печати. Веб-интерфейсы API for ArcGIS могут прочитать вашу текущую веб-карту и создать представление JSON на ее основе. В простом сценарии печати сервис ArcGIS Server PrintingTools считывает объект JSON и возвращает изображение карты, которое можно распечатать.
В более сложных сценариях печати представление JSON для веб-карты не надо отсылать на сервис PrintingTools. Вместо этого вы можете преобразовать JSON в файл .MXD. Чтобы сделать это, используйте функцию Python arcpy.mapping.ConvertWebMapToMapDocument. После этого можно использовать полученные файлы .MXD в других функциях arcpy.mapping, таких как ExportToPDF или ExportToPNG, чтобы подготовить карту для печати. Вы даже можете добавить карту в атлас перед печатью или заменить некоторые слои сервиса в документе карты своими собственными векторными слоями. Эти методы описаны в разделе справки ConvertWebMapToMapDocument.
Полный процесс экспортирования и печати представлен ещё в нескольких руководствах. Они объясняют, как создавать промежуточный шаблон документа карты, скрипт Python, сервис геообработки и веб-приложение:
Вызов скриптов по сети Интернет
После того как вы написали скрипт для печати arcpy.mapping, как вы можете использовать его в своем веб-приложении? В ArcGIS Server имеются сервисы геообработки, позволяющие предоставлять скрипты, инструменты и модели в виде веб-сервисов. Это облегчает их вызов из веб-интерфейсов API for ArcGIS.
Если у вас есть скрипт Python, который готовит карту для печати, вы можете включить его в инструмент-скрипт геообработки. Произведите тестовый запуск своего инструмента и опубликуйте результат в виде сервиса геообработки ArcGIS Server.
Самый простой подход при разработке данного типа инструмента-скрипта геообработки – это убедиться в том, что в нем имеются те же параметры, что и в готовом сервисе PrintingTools или его поднаборе. Требуется наличие, как минимум, входного параметра JSON. Если вы разработаете свой сервис таким образом, виджеты печати веб-интерфейсов программирования (API) картографического веб-приложения ArcGIS и веб-вьюеры смогут использовать ваш сервис без необходимости написания дополнительного кода.