如何获取发送到打印服务器的范围和比例,或拦截请求结果?

时间:2018-04-25 22:59:05

标签: leaflet esri-leaflet

我正在使用传单和esri-leaflet从专有的ArcGIS服务器创建地图。我试图从打印服务器获取PDF。我有使用ESRI API 3.x的示例,但找不到任何使用esri-leaflet。

我知道并且可以创建打印服务器请求的格式,但mapOptions部分除外,我需要extent,spatialReference和scale。我也知道每次图像更改时都会向地图服务器发送导出请求,并且该请求的响应包含我需要的信息。但是请求不是由我的代码生成的 - 它是由事件引起的。

Esri-leaflet有一个似乎我需要的事件请求成功。如果我可以拦截所有成功的请求,我可以检查它是否是一个导出请求并保存范围和比例(范围内嵌有SR)。但是,我找不到任何示例,文档给出了关于如何继续的一些线索。

我并不喜欢拦截请求,但似乎是最直接的方式来获得我需要的东西。我知道我可以从传单获得边界并转换到范围,但是获得缩放比例更难(必须获得缩放级别并具有映射)。所以这可能是另一种选择。

1 个答案:

答案 0 :(得分:0)

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