gpt4 book ai didi

javascript - 传单 - 寻找将 onEachFeature 添加到现有 geojson 层的方法

转载 作者:可可西里 更新时间:2023-11-01 02:40:20 26 4
gpt4 key购买 nike

我正在处理传单中的 geojson 数据。在他们的指南中 http://leafletjs.com/examples/geojson.html他们写道,有两种方法可以将 geojson 数据添加到 map 中:

“GeoJSON 对象通过 GeoJSON 图层添加到 map 。要创建它并将其添加到 map ,我们可以使用以下代码:”

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”是已创建并添加到 map 的空 geoJson 层。虽然这不起作用。

但是如果我在输入 geoJson 数据的同时创建一个新的 geoJson 层,那么一切正常:

L.geoJson(geoJson, {
onEachFeature: onEachFeature
}).addTo(this.map);

所以我主要想知道的是,在使用 layer.addData 函数添​​加数据时,我应该如何使 onEachFeature 函数起作用?

最佳答案

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

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

所以这应该可行

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

myLayer.addData(geojsonFeature);

关于javascript - 传单 - 寻找将 onEachFeature 添加到现有 geojson 层的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25436368/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com