【问题标题】:leaflet - Looking for method of adding onEachFeature to existing geojson layer传单 - 寻找将 onEachFeature 添加到现有 geojson 层的方法
【发布时间】: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 函数正常工作?

【问题讨论】:

    标签: javascript json leaflet geojson


    【解决方案1】:

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

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

    所以这应该可以工作

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多