Javascript 传单缩放贴图层

Javascript 传单缩放贴图层,javascript,leaflet,Javascript,Leaflet,我正在寻找的功能,使我能够损失的一部分图层时,缩放地图 map.on('zoomend', onZoomend) function onZoomend(feature){ if(map.getZoom()<11) {map.addLayer("road_2"==feature.properties.density)}; if(map.getZoom()>11) {map.removeLayer("road_2"==feature.properties.density)};

我正在寻找的功能,使我能够损失的一部分图层时,缩放地图

map.on('zoomend', onZoomend)
function onZoomend(feature){
if(map.getZoom()<11) 
 {map.addLayer("road_2"==feature.properties.density)};

if(map.getZoom()>11)
 {map.removeLayer("road_2"==feature.properties.density)};
  }
文件GeoJson bulid:

      var road = {
     "type": "FeatureCollection",

    "features": [
    { "type": "Feature", "properties": { "density" : "road_1"....

    { "type": "Feature", "properties": { "density" : "road_2"....

    { "type": "Feature", "properties": ....

我不确定我是否理解你的意思,但你想在放大时删除一个图层,在缩小时添加它吗

You just can use:
if(map.getZoom()<11){
    mylayer.removeFrom(map);
}else{    
    mylayer.addTo(map);
}
您只需使用:

如果(map.getZoom()更新:

这种方式有前途吗?必须改进什么

 function style_road(feature) {
    if  ("road_1" == feature.properties.density) {
        return {
            weight: 3,
            opacity:function()
                    {if (zoom > 13) {opacity:0},
                    else (zoom < 13) {opacity:1}, 
                    },
            color: 'red',
        };
    } 
    else if ("road_2" == feature.properties.density){
        return {
            weight: 1.5,
            opacity: 1,
            color: 'red',               
        };
    }
    else {
        return {
            weight: 0.5,
            opacity: 1,
            color: 'red',               
        };
    }
}
功能样式\u道路(功能){
如果(“道路1”==特征.属性.密度){
返回{
体重:3,
不透明度:函数()
{如果(缩放>13){不透明度:0},
else(缩放<13){不透明度:1},
},
颜色:“红色”,
};
} 
否则,如果(“道路2”==特征.属性.密度){
返回{
重量:1.5,
不透明度:1,
颜色:“红色”,
};
}
否则{
返回{
重量:0.5,
不透明度:1,
颜色:“红色”,
};
}
}

您理解得很好,但是该层被放置在文件GeoJSON中。我想关闭该文件的部分,例如,在高缩放时看不到的一些多边形。然后创建
L.LayerGroup
s,使用要从地图中添加/删除的传单层组,将各个层添加到这些组中(可能通过
L.GeoJSON
eachLayer
),然后根据需要添加/删除这些组。
var geoJsonLayer = L.geoJson(myGeoJson).addTo(map);
if(map.getZoom()<11){
 geoJsonLayer.eachLayer(function(layer) {
   if(layer.feature.properties.density == "road_"){
       layer.setStyle({fillOpacity:0});
   }
 });
}
 function style_road(feature) {
    if  ("road_1" == feature.properties.density) {
        return {
            weight: 3,
            opacity:function()
                    {if (zoom > 13) {opacity:0},
                    else (zoom < 13) {opacity:1}, 
                    },
            color: 'red',
        };
    } 
    else if ("road_2" == feature.properties.density){
        return {
            weight: 1.5,
            opacity: 1,
            color: 'red',               
        };
    }
    else {
        return {
            weight: 0.5,
            opacity: 1,
            color: 'red',               
        };
    }
}