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