我不了解如何在使用mapbox.js库时让基本的弹出窗口工作。以前,我通过执行以下操作使用普通Leaflet API时可以使用弹出窗口:
L.geoJson(myData, {
pointToLayer: function(latlng){
return L.circleMarker(latlng, myStyle);
},
onEachFeature: function(feature, layer){
layer.bindPopup(feature.properties.Name);
}.addTo(map);
但是,现在我正在尝试使用建立在Leaflet之上的mapbox,事情有点不同。我检查了文档,但这对我没有意义。显然,Leaflet的原始onEachFeature
选项不再适用于mapbox。所以,这样的事情不起作用:
L.mapbox.featureLayer(myData, {
pointToLayer: function(latlng){
return L.circleMarker(latlng, myStyle);
},
onEachFeature: function(feature, layer){
layer.bindPopup(feature.properties.Name);
}.addTo(map);
那我怎么在mapbox下呢?这是一个quick fiddle。谢谢!
答案 0 :(得分:0)
使用Mapbox库,您必须在初始化后使用FeatureGroup上的eachLayer
方法,如教程中所示:https://www.mapbox.com/mapbox.js/example/v1.0.0/custom-popup/
答案 1 :(得分:0)
更新11/9:我最终找到了更好的方法。我可以简单地将L.mapbox.marker.style
添加到pointToLayer
的{{1}}选项中,它将为我提供带有Mapbox标记样式的传单弹出窗口,而无需编写其他L.geoJson
方法。
示例(from docs):
featureLayer.eachLayer