当没有瓷砖时,传单缩小

时间:2013-07-22 07:41:06

标签: zoom tiles leaflet

我有传单的离线地图。 由于最小重量(兆字节)的原因,这张地图有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]
    });

1 个答案:

答案 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);
        }
    }
});