传单 - 寻找将 onEachFeature 添加到现有 geojson 层的方法
Posted
技术标签:
【中文标题】传单 - 寻找将 onEachFeature 添加到现有 geojson 层的方法【英文标题】:leaflet - Looking for method of adding onEachFeature to existing geojson layer 【发布时间】:2014-10-15 16:18:05 【问题描述】:我正在使用传单中的 geojson 数据。在http://leafletjs.com/examples/geojson.html 的指南中,他们写道有两种方法可以将 geojson 数据添加到地图:
"GeoJSON 对象通过 GeoJSON 层添加到地图中。要创建它并将其添加到地图中,我们可以使用以下代码:"
L.geoJson(geojsonFeature).addTo(map);
“或者,我们可以创建一个空的 GeoJSON 层并将其分配给一个变量,以便我们以后可以向其添加更多功能。”
var myLayer = L.geoJson().addTo(map);
myLayer.addData(geojsonFeature);
我目前正在使用最后一种方法(我正在创建一个空层并向其中添加数据)。我现在正在做的是我正在尝试添加一个 onEachFeature 函数。虽然我在使用 myLayer.addData 方法时无法正常工作。
在我的代码中,我使用的是this.geoJson.addData(geoJson, onEachFeature: onEachFeature );
。其中geoJson 是实际的geoJson 字符串,“this.geoJson”是已创建并添加到地图的空geoJson 图层。虽然这不起作用。
但是,如果我在输入 geoJson 数据的同时创建一个新的 geoJson 图层,则一切正常:
L.geoJson(geoJson,
onEachFeature: onEachFeature
).addTo(this.map);
所以我主要想知道的是,在使用 layer.addData 函数添加数据时,我应该如何使 onEachFeature 函数正常工作?
【问题讨论】:
【参考方案1】:根据source code , addData 只需要1个arg:geojson。
addData 将使用您在创建层时传递的回调 onEachFeature。
所以这应该可以工作
var myLayer = L.geoJson(false,
onEachFeature: onEachFeature
).addTo(this.map);
myLayer.addData(geojsonFeature);
【讨论】:
以上是关于传单 - 寻找将 onEachFeature 添加到现有 geojson 层的方法的主要内容,如果未能解决你的问题,请参考以下文章