只是想通过zoomZvel(如minZoom,maxZoom for tileLayers,任何想法)来控制geojson图层的方法?
描述:geojson点层,不同类别的点,说国家国会大厦,省议会大厦,部门,国会大厦,其他简单的城镇。 目标:在缩放级别4只显示国家国会大厦(一个唯一的piont) 在缩放级别6显示全部24个省级资本(您只会看到其中的一部分) 在缩放级别8显示524个部门的capitols(你只能看到它们的一部分) 在缩放级别10显示其他城镇,同样的想法。
提前谢谢。 JC答案 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()
方法(使用display
或visibility
属性)。