我将自己的图块用于非地理应用程序,并尝试实现一个内部缩放逻辑,该逻辑应该独立于图块服务器,但使用Leaflet的缩放检测。
old layer, zoom level: 2 -> ZOOM IN, load another tile layer -> new layer, zoom level: 2
new layer, zoom level: 2 <- ZOOM OUT, load another tile layer <- old layer, zoom level: 2
可以通过手动删除zoomend上的旧图层设置map.setZoom(oldZoom)
来实现。但是,在此过程中,缩放级别将暂时更改为1,并且仅在缩放动画之后才删除旧图层。
map.on('zoom', testZoom);
function testZoom() {
if(newZoom == 1 && prevZoom == 2) {
map.setZoom(2);
map.removeLayer(activeTileLayer);
map.addLayer(newLayer);
}
}
一种方法可能是,当用户尝试在minZoom上缩放时,检测,但我还不知道这怎么可能。