1

只是在寻找一种通过缩放级别控制 geojson 图层的方法,例如 minZoom , maxZoom for tileLayers,有什么想法吗?

描述:geojson点层,不同类别的点,比如国家首都,省议会,部门,首都,其他简单城镇。目标:在缩放级别 4 仅显示国家议会大厦(仅一个点)在缩放级别 6 显示所有 24 个省议会大厦(您只会看到其中的一部分)在缩放级别 8 显示 524 个部门的议会大厦(您只会看到一部分其中)在缩放级别 10 显示其他城镇,同样的想法。

提前致谢。JC

4

2 回答 2

1

查看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;
    }
}
于 2014-05-05T19:05:21.380 回答
-1

Leaflet 有一个viewereset在地图更新时触发的事件(加载时,缩放时)。您可以执行以下操作:

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

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

于 2013-11-01T08:41:09.607 回答