leaflet - 寻找将onEachFeature添加到现有geojson层的方法

时间:2014-08-21 21:38:21

标签: javascript json leaflet geojson

我正在使用传单中的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 个答案:

答案 0 :(得分:10)

根据source code,addData只需要1个arg:geojson。

addData将使用您在创建图层时传递的回调onEachFeature。

所以这应该有用

var myLayer = L.geoJson(false, {
    onEachFeature: onEachFeature
}).addTo(this.map);

myLayer.addData(geojsonFeature);