根据地图的缩放级别显示多边形图层,然后单击

时间:2019-05-03 11:22:39

标签: javascript html css leaflet geojson

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

我想,当我单击国家时,国家的图层消失(根据缩放级别)(但是其他国家必须保持“分层”。(知道之后,我会尝试在只会在国家/地区图层消失的情况下显示的国家/地区上显示标记,并通过单击该标记来放大它。)

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'
        });
    }
}); 

1 个答案:

答案 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演示了如何隐藏单击的图层