只是在寻找一种通过缩放级别控制 geojson 图层的方法,例如 minZoom , maxZoom for tileLayers,有什么想法吗?
描述:geojson点层,不同类别的点,比如国家首都,省议会,部门,首都,其他简单城镇。目标:在缩放级别 4 仅显示国家议会大厦(仅一个点)在缩放级别 6 显示所有 24 个省议会大厦(您只会看到其中的一部分)在缩放级别 8 显示 524 个部门的议会大厦(您只会看到一部分其中)在缩放级别 10 显示其他城镇,同样的想法。
提前致谢。JC
您可以订阅“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;
}
}
Leaflet 有一个viewereset
在地图更新时触发的事件(加载时,缩放时)。您可以执行以下操作:
map.on('viewreset', function() {
var zoom = this.getZoom();
// show/hide layers based on zoom level
}, map);
显示/隐藏图层的一种方法是通过 L.GeoJSON 的setStyle()
方法(使用display
或visibility
属性)。