我如何获得小叶图层组ID?

问题描述 投票:0回答:1

我在Leaflet中有两层。每层都是具有51个要素的美国geoJSON地图。

我在两个鼠标悬停时都附加了一个事件处理程序:

function resetHighlight(e, whichLayer) {
    if (whichLayer == terpsLayer) {
        console.log('reset');
        layerTerps.resetStyle(e.target);
    } else if (whichLayer == lawsLayer) {
        layerLaws.resetStyle(e.target);
    }
}

function onEachFeature(feature, layer) {
    layer.on({
        mouseout: function(e) {
           resetHighlight(e, layer);
        }
    });
}

[在创建geoJSON图层时在典型的onEachFeature函数中调用。

我不知道如何获取whichLayer来表示geoJSON图层,而不是单个51个要素之一。例如,如果您单击某个要素,那么如何获取Leaflet以确定其来自哪个组图层?

javascript leaflet geojson
1个回答
0
投票

您可以轻松创建一个LayerGroup并将两个图层添加到其中,如下所示:

layerGroup = new L.LayerGroup()
layerGroup.addLayer(Layer1)
layerGroup.addLayer(Layer2)

然后遍历LayerGroup以获取图层ID,并遍历每一层以获取要素ID,如下所示:

layerGroup.eachLayer(function (layer) {
    const layerId = layerGroup.getLayerId(layer)
    layer.eachLayer(function (layer) {
        const FeatureId = layer.feature.properties.Id
    });
});
© www.soinside.com 2019 - 2024. All rights reserved.