小册子通过缩放级别控制geojson图层

时间:2013-10-29 12:43:29

标签: zoom leaflet geojson

只是想通过zoomZvel(如minZoom,maxZoom for tileLayers,任何想法)来控制geojson图层的方法?

描述:geojson点层,不同类别的点,说国家国会大厦,省议会大厦,部门,国会大厦,其他简单的城镇。 目标:在缩放级别4只显示国家国会大厦(一个唯一的piont) 在缩放级别6显示全部24个省级资本(您只会看到其中的一部分) 在缩放级别8显示524个部门的capitols(你只能看到它们的一部分) 在缩放级别10显示其他城镇,同样的想法。

提前谢谢。 JC

2 个答案:

答案 0 :(得分:0)

查看Map events in the Leaflet Docs

您可以订阅' zoomend'事件以及' zoomstart'和其他几个人

map.on('zoomend', function (e) {
    myZoomHandler();
});

在缩放处理程序功能中,循环覆盖图层并根据需要添加或删除图层。

function myZoomHandler() {
    var currentZoom = map.getZoom();
    switch (currentZoom) {
        case 4:
         //show Capitols
        break;
        case 6:
         //show Provinces
        break;
        default:
         // etc
        break;
    }
}

答案 1 :(得分:-1)

Leaflet有一个viewereset事件,在地图更新时(加载时,缩放时)会触发。 你可以这样做:

map.on('viewreset', function() {
   var zoom = this.getZoom();
   // show/hide layers based on zoom level
}, map);

显示/隐藏图层的一种方法是通过L.GeoJSON的setStyle()方法(使用displayvisibility属性)。