在Leaflet中达到最大边界后禁用拖动

Sum*_*air 5 javascript leaflet

我正在使用自定义图像处理Leaflet,其图块使用"缩放"生成.我目前正面临以下问题:

1)在最小缩放级别上,图像不应该是可拖动的,这是使用map.dragging.disable().

但是当图像当前处于最大缩放级别并且用户正在拖动时会出现问题,因为我不希望焦点超出图块,即一旦超出边界,用户就不应该看到"灰色边框"限制.是否可以使用Leaflet.例如,用户拖动图像,一旦开始出现灰色边框,拖动就会被禁用.虽然它回来当前位置设置bounceAtZoomLimits: false以及 map.fitBounds(),但只有当用户结束拖动.

在此输入图像描述

2)在捏缩放时,用户可以尽可能多地放大/缩小.因此,图像可以收缩与用户捏缩放IN以及捏缩放OUT一样多.是否可以停止此行为,即用户只能将缩放IN缩放到设置的最大缩放级别以及将缩放OUT缩放到最小缩放级别设置?

任何帮助,将不胜感激.谢谢 :)

Art*_*sov 6

传单仅拖动检查边界.您需要添加拖动过程侦听器以修复操作中的切片图层位置:

map.setMaxBounds(bounds);
map.on('drag', function() {
    map.panInsideBounds(bounds, { animate: false });
});
Run Code Online (Sandbox Code Playgroud)

示例:http://jsfiddle.net/asleepwalker/exqar2w4/

UPD:我写了一个小插件来执行它.这是它:https://github.com/asleepwalker/leaflet.hardbounds