Дополнительные возможности печати веб-карт
Сервис PrintingTools и его клиентские виджеты печати в веб-интерфейсах API for ArcGIS предназначены для стандартной печати на бумаге небольших размеров. Если вы хотите создать карты размером больше, чем 11 х 17 дюймов, подумайте об использовании скрипта Python для преобразования веб-карты в документ карты (.MXD). Существует ряд функций arcpy.mapping, которые могут использовать файлы .MXD и экспортировать их в различные форматы для печати на бумаге больших размеров или создания атласов.
Конвертирование веб-карты в документ карты с помощью 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.
Вызов скриптов по сети Интернет
После того как вы написали скрипт для печати arcpy.mapping, как вы можете использовать его в своем веб-приложении? В ArcGIS Server имеются сервисы геообработки, позволяющие предоставлять скрипты, инструменты и модели в виде веб-сервисов. Это облегчает их вызов из веб-интерфейсов API for ArcGIS.
Если у вас есть скрипт Python, который готовит карту для печати, вы можете включить его в инструмент-скрипт геообработки. Произведите тестовый запуск своего инструмента и опубликуйте результат в виде сервиса геообработки ArcGIS Server. В веб-интерфейсах API for ArcGIS есть классы, которые помогут вам вызвать эти сервисы, например, класс GeoProcessor в ArcGIS API for JavaScript.
Самый простой подход при разработке данного типа инструмента-скрипта геообработки – это убедиться в том, что в нем имеются те же параметры, что и в готовом сервисе PrintingTools или его поднаборе. Требуется наличие, как минимум, входного параметра JSON. Если вы разработаете свой сервис таким образом, виджеты печати веб-интерфейсов программирования (API) картографического веб-приложения ArcGIS и веб-вьюеры смогут использовать ваш сервис без необходимости написания дополнительного кода. С другой стороны, если вы добавите к вашему инструменту параметры, которых нет в сервисе PrintingTools, виджеты печати Esri не смогут работать с ним напрямую, и вам придется писать собственный код или виджет для вызова инструмента.