Как получить экстент и масштаб для отправки на сервер печати или перехватить результаты запроса? - PullRequest
0 голосов
/ 26 апреля 2018

Я использую буклет и esri-буклет для создания карты с проприетарного сервера ArcGIS.Я пытаюсь вернуть PDF с сервера печати.У меня есть примеры использования ESRI API 3.x, но я не могу найти ни одного с использованием esri-leaflet.

Я знаю формат и могу создать запрос на сервер печати, за исключением раздела mapOptions, где мне нужноэкстент, пространственная привязка и масштаб.Я также знаю, что запрос на экспорт отправляется на картографический сервер каждый раз, когда изображение изменяется, и ответ на этот запрос содержит необходимую мне информацию.Но запрос не генерируется моим кодом - это происходит в результате события.

Esri-leaflet имеет событие requestsccess, которое похоже на то, что мне нужно.Если я могу перехватить все успешные запросы, я могу проверить, был ли это запрос на экспорт, и сохранить экстент и масштаб (в экстент встроен SR).Однако я не могу найти никаких примеров, и документация мало что дает мне понять, что делать дальше.

Я не намерен перехватывать запрос, но, похоже, самый простой способ получить то, что мне нужно.Я знаю, что я мог бы получить границы из листовки и конвертировать в экстенты, но получить масштаб сложнее (нужно получить уровень масштабирования и сопоставить для этого).Так что это может быть другой вариант.

1 Ответ

0 голосов
/ 27 апреля 2018

Листовка Esri включает удобный метод для преобразования объектов границ Leaflet в литералы объектов экстента Esri

// http://esri.github.io/esri-leaflet/api-reference/util.html
L.esri.Util.boundsToExtent(map.getBounds())

, чтобы получить масштаб, вам просто нужно немного подсчитать текущий уровень масштабирования.

// https://gis.stackexchange.com/a/81390/21012
591657550.500000 / Math.pow(2, map.getZoom() - 1)

живая демоверсия: http://jsbin.com/ceceqir/edit?html,output

...