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

Leaflet 如何获取要发送到打印服务器或截获请求结果的范围和比例?,leaflet,esri-leaflet,Leaflet,Esri Leaflet,我正在使用传单和esri传单从专有的ArcGIS服务器创建地图。我正在尝试从打印服务器获取PDF。我有使用ESRI API 3.x的示例,但找不到任何使用ESRI手册的示例 我知道打印服务器请求的格式,可以创建打印服务器请求,但mapOptions部分除外,在该部分中,我需要范围、空间参考和比例。我还知道,每次图像更改时都会向地图服务器发送一个导出请求,该请求的响应包含我需要的信息。但是请求不是由我的代码生成的——它是一个事件的结果 Esri传单上有一个事件请求成功,这似乎是我需要的。如果我可以

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

我知道打印服务器请求的格式,可以创建打印服务器请求,但mapOptions部分除外,在该部分中,我需要范围、空间参考和比例。我还知道,每次图像更改时都会向地图服务器发送一个导出请求,该请求的响应包含我需要的信息。但是请求不是由我的代码生成的——它是一个事件的结果

Esri传单上有一个事件请求成功,这似乎是我需要的。如果我可以截获所有成功的请求,我可以检查它是否是导出请求,并保存扩展数据块和扩展数据块(扩展数据块中嵌入了SR)。但是,我找不到任何示例,文档也没有给我提供任何关于如何继续的线索


我并不热衷于拦截请求,但这似乎是获得我需要的最直接的方式。我知道我可以从传单中获取边界并转换为范围,但获取比例更难(必须获得缩放级别并为此进行映射)。因此,这可能是另一种选择。

Esri传单包括一种方便的实用方法,用于将传单边界对象转换为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)

现场演示:

您只需运行地图的
getBounds()
,然后向地图服务器发送手动WMS请求,怎么样?