Leaflet vs Mapbox弹出窗口 - 改变了什么?无法让它发挥作用

时间:2015-11-07 21:22:29

标签: javascript leaflet mapbox

我不了解如何在使用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。谢谢!

2 个答案:

答案 0 :(得分:0)

使用Mapbox库,您必须在初始化后使用FeatureGroup上的eachLayer方法,如教程中所示:https://www.mapbox.com/mapbox.js/example/v1.0.0/custom-popup/

演示:https://jsfiddle.net/qkvo7hav/15/

答案 1 :(得分:0)

更新11/9:我最终找到了更好的方法。我可以简单地将L.mapbox.marker.style添加到pointToLayer的{​​{1}}选项中,它将为我提供带有Mapbox标记样式的传单弹出窗口,而无需编写其他L.geoJson方法。

示例(from docs):

featureLayer.eachLayer