根据地图的缩放级别和点击显示多边形图层

Display Polygons Layers according to zoom level of the map and clicks

所以我有一个 OpenStreetMap 地图(带有 Leaflet),我放了一个欧洲 javascript 层(我在 javascript 中插入了 Id 以区分每个国家)。当我用鼠标悬停在每个国家/地区上时,每个国家/地区都会突出显示。当我点击一个国家时,它会自动放大它。

而且我希望,当我点击国家时,国家的图层消失(根据缩放级别)(但其他国家必须保留 "layered"。(知道,在那之后,我会尝试在一个国家上放置标记,只有当国家层消失时才会显示,我们可以通过点击它来放大它。

Ps: 我关注这个网站是为了做我现在做的事情: https://leafletjs.com/examples/choropleth/

还有我的代码: https://jsfiddle.net/Gio687351/3bwsnu8z/2/

map.on('zoomend ', function(e) {
    if (map.getZoom() < 3) {
        map.fitBounds(layer.getBounds())
        map.removeLayer(Europe-Layer.js)
        map.setStyle({
            'fillOpacity': '0.7'
        });
    } else if (map.getZoom() >= 3) {
        map.fitBounds(layer.getBounds())
        map.addLayer(statesData);
        map.setStyle({
            'fillOpacity': '0.0'
        });
    }
}); 

图层可见性可以通过 fill-opacityopacity style properties 进行管理,如下所示:

function toggleLayerVisibility(map, layer) {
  if (selectedLayerId) {
    geojson.resetStyle(layer);
    selectedLayerId = null;
  } else {
    //hide a layer
    layer.setStyle({
      opacity: 0,
      fillOpacity: 0.0
    });
    selectedLayerId = layer._leaflet_id; //save identifier of a selected layer
  }
}

解释:

  • 设置opacity: 0fillOpacity: 0隐藏图层
  • selectedLayerId用于存放当前选中层的标识

根据提供的示例,following demo 演示了如何隐藏单击的层