gpt4 book ai didi

javascript - onEachFeature 未被调用

转载 作者:行者123 更新时间:2023-12-01 00:53:55 26 4
gpt4 key购买 nike

我正在尝试添加一些具有特定样式和弹出窗口的标记,但如果我使用 PointToLayer 函数,则不会调用 onEachFeature。所以我无法添加弹出窗口。

如果我只使用 onEachFeature,我可以使用 console.log(feature) 但我无法显示标记。如果我使用 pointToLayer,则不会调用 onEachFeature。

var json_chambre = L.geoJson(response, {

pointToLayer: function(feature, latlng) {
var markerCh = L.circleMarker(latlng, {
radius: 5,
fillColor: "#ff7800",
color: "#000",
weight: 1,
opacity: 1,
fillOpacity: 0.8
});
chambre_pit.addLayer(markerCh);
},
onEachFeature: function(feature, layer) {
console.log(feature);
}
});

没有错误,只是我不能同时弹出窗口和样式。

最佳答案

让我引用Leaflet reference for the pointToLayer callback option :

A Function defining how GeoJSON points spawn Leaflet layers. It is internally called when data is added, passing the GeoJSON point feature and its LatLng. The default is to spawn a default Marker:

function(geoJsonPoint, latlng) {
return L.marker(latlng);
}

注意到它和你的代码有什么不同吗? pointToLayer 回调返回 L.Marker 的实例,并将其添加到 L.GeoJson 实例中(它是 L.LayerGroup 的子类)。

由于您不返回标记(或图层)实例,L.GeoJson 实例最终为空,并且 onEachFeature 循环遍历总共零个要素+层对。

另请注意,您不需要在 onEachFeature 步骤附加弹出窗口,即:

var json_chambre = L.geoJson(response, {
pointToLayer: function(feature, latlng) {
var markerCh = L.circleMarker(latlng, {
radius: 5,
fillColor: "#ff7800",
color: "#000",
weight: 1,
opacity: 1,
fillOpacity: 0.8
});
markerCh.bindPopup(feature.properties.label); // Or whatever
return markerCh; // And do return the marker so it gets added to json_chambre.
}
});

关于javascript - onEachFeature 未被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56751345/

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