我想用输入(冥想滚动等)和按钮限制用户的最大缩放级别。换句话说,我将“maxZoom”限制为-lets say-level9。但我仍然希望能够在特殊条件下放大到10级。 当我设置maxZoom时,它显然不会让我以任何方式放大更多,所以在这种情况下我的解决方案是什么?
答案 0 :(得分:29)
用于设置最大缩放级别:
map._layersMaxZoom = 15 (将最大缩放级别设置为15)
同样,我们可以设置最小缩放级别:
map._layersMinZoom = 2 ,(将最小缩放级别设置为2)。
另一种做同样的方式 -
map.options.maxZoom = 15;
map.options.minZoom = 10;
答案 1 :(得分:20)
您可以在这些特殊条件下使用map.options.maxZoom
动态设置地图的最大缩放级别,并在完成后将其设置回来。
答案 2 :(得分:4)
这对我有用:
L.tileLayer('...',{minZoom:5,maxZoom:15})。addTo(map)
答案 3 :(得分:2)
如果您要显示控件并更改了maxZoom
或minZoom
选项,则控件不会更新。例如,如果您的最小缩放级别为10且当前缩放级别为10,即使您更改缩放级别,缩小控件也将显示为禁用。
此解决方案的一个解决方法是触发“缩放”'地图上的活动:
map.options.minZoom = 9;
map.fire('zoomend');
如果以一种使当前缩放级别无效的方式更改最大/最小缩放级别,您可能还需要考虑调用setZoom()
方法。