使用外部GeoJSON创建Mapbox弹出窗口时出现问题

时间:2015-06-12 18:42:06

标签: javascript leaflet mapbox

我有一张带有外部GeoJSON的地图和一个搜索框功能。我在弹出窗口时遇到问题。标记显示,过滤器当前工作正常。我查看了几个建议herehere。它似乎是一个简单的解决方案,但我无法得到任何建议的解决方案。我以为我错过了一些小细节。非常感谢任何帮助。

这是我的GeoJSON变量和我一直在尝试的弹出窗口。

var locations = L.mapbox.featureLayer()
.setGeoJSON(geojson)
.addTo(map)
    .on('ready', function(){

        locations.eachlayer(function(layer){
            var prop = layer.feature.properties;
            var popup = '<b>' + prop.state + '</b>';
                locations.bindPopup(popup);

    })

 })
.addTo(map);

2 个答案:

答案 0 :(得分:0)

您可以删除准备好的&#39;回调,只是做

var locations = L.mapbox.featureLayer()
.setGeoJSON(geojson)
.addTo(map)

locations.eachLayer(function (layer) {
  var prop = layer.feature.properties;
  var popup = '<b>' + prop.state + '</b>';
  layer.bindPopup(popup);
})

答案 1 :(得分:0)

感谢您对@snkashis的帮助,但这并没有解决问题。我收到了Mapbox的回复,提供了一个有效的解决方案。他们告诉我,在使用过滤器时,我需要使用&#39; layeradd&#39;参数。他们提供的解决方案如下。

var locations = L.mapbox.featureLayer()
  .setGeoJSON(geojson)
  .addTo(map);

locations.on('layeradd', function(e){
  var prop = e.layer.feature.properties;
  var popup = '<b>' + prop.state + '</b>';
  e.layer.bindPopup(popup);
});