我有传单的离线地图。 由于最小重量(兆字节)的原因,这张地图有2个扇区: 第一部门已经从第11个增长到第14个。 第二部门从第11个增加到第17个。
我需要当用户在第一个扇区中看到地图并且希望ZOOM达到超过第14个缩放时,地图将不允许这样并自动缩小到第14个缩放。
当用户希望ZOOM第二个扇区时 - 它可以正常工作直到第17个缩放。
我使用此代码:
var layer1 = new L.tileLayer('map/all/{z}/{x}/{y}.png', { minZoom: 11, maxZoom: 14, errorTileUrl:'empty.png', opacity:1});
var layer2 = new L.tileLayer('map/center/{z}/{x}/{y}.png', { minZoom: 15, maxZoom: 17,errorTileUrl:'empty.png', opacity:1});
var map = new L.Map('map', {
center: new L.LatLng(55.74178084263216, 37.607244264547475),
zoom: 11,
minZoom: 11,
maxZoom: 17,
layers: [layer1,layer2]
});
答案 0 :(得分:0)
您可以在地图的缩放级别更改时捕获该事件,并根据您所在的某个部门显示来做出相应的决策。
我不确定你是如何确定显示哪个扇区的,所以下面的示例代码有一个注释。将您的逻辑放在此处以确定显示哪个图层。
// Called when Map zoom changes
map.on('zoomend', function() {
if (/*The map is set to Sector 1*/) {
// If the user zooms past 14, this will set them back to 14.
if (map.getZoom() > 14) {
map.setZoom(14);
}
}
});