Leaflet 传单图像叠加无收边功能
我正在从ArcGIS Web服务器读取imageOverlay URL,该服务器使用传单GetBind()坐标作为URL的一部分(我们有针对当前窗口“范围”过滤的大型地图)。抱歉没有包括实际路径(我正在处理敏感的客户端数据)。例如:Leaflet 传单图像叠加无收边功能,leaflet,Leaflet,我正在从ArcGIS Web服务器读取imageOverlay URL,该服务器使用传单GetBind()坐标作为URL的一部分(我们有针对当前窗口“范围”过滤的大型地图)。抱歉没有包括实际路径(我正在处理敏感的客户端数据)。例如: http://myarcgiswebserver.com/MapServer/export/dpi=96&format=png32&bbox=27.119750976562504%2C-31.194007509998823%2C32.39044189453126%2
http://myarcgiswebserver.com/MapServer/export/dpi=96&format=png32&bbox=27.119750976562504%2C-31.194007509998823%2C32.39044189453126%2C-29.6928247398754&尺寸=1719%2C434
[bbox]=当前图像边界
拖动我的地图时,imageOverlay url会正确更新,但我的传单窗口不再与首次添加imageOverlay时设置的imageBound值对齐,从而导致输出扭曲(这是我的假设):
唯一的解决方法是删除现有的imageOverlay并添加一个新的(这会破坏用户体验,因为地图会消失,然后在每次拖动或缩放窗口时重新出现)
我处理这个问题的方法是否错误,或者引入更新当前imageBounds的函数是否可以解决这个问题?也许不是一个新的函数,而是对setUrl的扩展和附加参数
非常感谢您的反馈。如果您使用一个,但动态更改其url
,并使用反映新边界框的新图像,那么这确实就是您描述行为的原因:您显示一个使用新bbox
生成的图像,但定位在初始bbox
中,因为图像叠加在地图上保持在相同的地理位置
相反,我觉得你应该使用
它将自动为您管理边界框更新。不过,您可能需要找到正确的选项以适合服务提供商所需的URL语法
示例:正如@ghybs指出的,使用WMS可能会更好地服务于您的用例 ArcGIS服务器的接口 不管怎样,你说 唯一的解决方法是删除现有的imageOverlay并添加一个新的(这会破坏用户体验,因为地图会消失,然后在每次拖动或缩放窗口时重新出现) 好吧,这个小故障可能是由于你做了如下事情:
- 删除旧覆盖层
- 添加新覆盖
- 等待,直到从网络接收到映像
- 等待一帧,以便显示新覆盖
- 添加新覆盖
- 等待,直到从网络接收到映像
- 删除旧覆盖层
- 等待一帧,以便显示新覆盖
var activeOverlay = null;
var overlayInRequest = null;
map.on('moveend zoomend', {
// If we are already requesting a new overlay, ignore it.
// This might need some additional debouncing logic to prevent
// lots of concurrent requests
if (overlayInRequest) {
overlayInRequest.off('load', showOverlay);
}
overlayInRequest = L.imageOverlay( computeUrl( map.getBounds() ), myOverlayOptions );
overlayInRequest.on('load', showOverlay);
});
function showOverlay(ev) {
activeOverlay.remove();
activeOverlay = overlayInRequest;
activeOverlay.addTo(map);
overlayInRequest = undefined;
}
如何在地图上添加
imageOverlay
?如果我理解正确,它不会随地图移动,因此当用户拖动/缩放时它不再对齐?嗨,它会随地图移动,但我会在缩放或拖动后强制(URL)刷新,以确保高质量的图像覆盖(以适应新的地图区域)。不幸的是,使用setUrl会导致未对齐。对齐是正确的,只有当移除图层并添加新的图像叠加时,你也可以考虑。“esri传单'L.esri.dynamicMapLayer让我指出,有一个可能会对这一点有用。嗨,Ivan,鉴于我们使用的是ARCGIS企业版,我将尝试推广WMS,而不是解决方法。可能更可持续。非常感谢您的投入和反馈!