Javascript 传单与地图盒弹出窗口——发生了什么变化?Can';我不能让它工作
我不知道在使用mapbox.js库时如何使基本弹出窗口正常工作。以前,我通过以下操作使弹出窗口在使用普通传单API时正常工作:Javascript 传单与地图盒弹出窗口——发生了什么变化?Can';我不能让它工作,javascript,leaflet,mapbox,Javascript,Leaflet,Mapbox,我不知道在使用mapbox.js库时如何使基本弹出窗口正常工作。以前,我通过以下操作使弹出窗口在使用普通传单API时正常工作: L.geoJson(myData, { pointToLayer: function(latlng){ return L.circleMarker(latlng, myStyle); }, onEachFeature: function(feature, layer){ layer.bindPopup(feature.proper
L.geoJson(myData, {
pointToLayer: function(latlng){
return L.circleMarker(latlng, myStyle);
},
onEachFeature: function(feature, layer){
layer.bindPopup(feature.properties.Name);
}.addTo(map);
但是,现在我正试图使用建立在传单之上的mapbox,事情就有点不同了。我查看了文档,但对我来说没有意义。显然,传单的原始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下实现它呢?这是一个例子。谢谢 使用Mapbox库,您必须在初始化后对FeatureGroup使用
eachLayer
方法,如他们的教程所示:
演示:更新11/9:我最终找到了一个更好的方法。我可以简单地将
L.mapbox.marker.style
添加到L.geoJson
的pointToLayer
选项中,它将为我提供带有mapbox标记样式的传单弹出窗口,而无需编写额外的featureLayer.eachLayer
方法
示例():
谢谢但是,为什么要采取额外的步骤呢?这不是适得其反吗?现在,似乎您必须创建更多的工作来创建弹出窗口。这可能是提交到Mapbox的合理改进请求。
L.geoJson(geoJson, {
pointToLayer: L.mapbox.marker.style,
});