Я использую свои собственные плитки для негеографических приложений и пытаюсь реализовать внутреннюю логику масштабирования, которая, как предполагается, не зависит от сервера плиток, но использует обнаружение масштабирования 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
Это можно сделать вручную, удалив старую настройку слоя 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, но я не выяснил, как это возможно.