javascript - 如何获取传单图层组 ID?
问题描述
我在 Leaflet 中有两层。每层都是美国的 geoJSON 地图,有 51 个特征。
我在 mouseout 上附加了一个事件处理程序:
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);
}
});
}
onEachFeature
这在创建 geoJSON 图层时在典型函数中调用。
我不知道如何whichLayer
代表 geoJSON 层而不是单个 51 个功能之一。例如,如果您单击一个要素,您如何让 Leaflet 识别它来自哪个图层组?
解决方案
您可以调用hasLayer(layer)
以检查您的图层在哪个图层组中。
layerGroup1 = new L.LayerGroup();
layerGroup2 = new L.LayerGroup();
function getLayerGroup(layer){
if(layerGroup1.hasLayer(layer)){
return layerGroup1;
}else if(layerGroup2.hasLayer(layer)){
return layerGroup2;
}else{
return null;
}
}
推荐阅读
- postgresql - 错误 {"type":"pg-client","timestamp":"2021-08-02T05:04:50.035+0000","level":"warn","detail":{"message":"postgres 连接失败,重试(0)。"}}
- python - Python while循环令牌未更新
- credentials - 如何创建自定义 VC 类型
- azure-ad-b2c - MFA 手机号码字段限制
- python - 将列中的字符串列表转换为单独的列Python
- typescript - 相同的对象名称扩展接口打字稿
- javascript - 需要帮助以使只有两张卡可以点击,直到它们匹配
- arrays - 是否可以在两个不同的屏幕中使用相同的数组进行反应导航?
- arrays - 基于属性 ReactJs 显示对象数组
- iis-10 - 使用 appcmd.exe 命令在 IIS 中编辑错误页面 404