我正在使用自定义图像处理Leaflet,其图块使用“zoomify”生成。我目前正面临以下问题:
1)在最小缩放级别上,图像不应该是可拖动的,这是使用map.dragging.disable()
实现的。
但是当图像当前处于最大缩放级别并且用户正在拖动时会出现问题,因为我不希望焦点超出图块,即用户在到达时不应该看到“灰色边框”超出界限。是否可以使用Leaflet。例如,用户拖动图像,一旦开始出现灰色边框,拖动就会被禁用。虽然它确实通过设置bounceAtZoomLimits: false
和map.fitBounds()
返回到当前位置,但这仅在用户结束拖动时才会显示。
2)在Pinch缩放时,用户可以尽可能多地放大/缩小。因此,图像可以收缩与用户捏缩放IN以及捏缩放OUT一样多。是否可以停止此行为,即用户只能将缩放IN缩放到最大缩放级别设置以及将缩放OUT缩放到最小缩放级别设置?
任何帮助将不胜感激。谢谢:)
答案 0 :(得分:5)
传单在拖动后仅检查边界。您需要添加拖动过程侦听器以修复操作中的切片图层位置:
map.setMaxBounds(bounds);
map.on('drag', function() {
map.panInsideBounds(bounds, { animate: false });
});
示例:http://jsfiddle.net/asleepwalker/exqar2w4/
UPD :我写了一个小插件来执行它。这是:https://github.com/asleepwalker/leaflet.hardbounds
答案 1 :(得分:1)
已经回答here。
在Leaflet 1.0.0 +中,有一个选项maxBoundsViscosity
到"减慢地图拖动"或使#34;界限完全稳固"。