我想通过Jquery从数据库中检索一些geojson点数据(即在地图中设置一些标记)。
function remm(id){
$.ajax({
type: "POST",
url:"geojson2.php",
data:{
u_id:id[0],
t_id:id[2]
},
success: function(geo,status){
myLayer.setGeoJSON([geo]);
console.log(geo);
}
});
}
在GeoJSON Lint中测试从geojson2.php检索的点数据时,它运行得非常好。但是,当调用myLayer.setGeoJSON()函数时,它只带走所有现有的标记。myLayer在javascript文件的开头被实例化,看起来像:
L.mapbox.accessToken = 'key';
var map = L.mapbox.map('map', 'mapbox.streets').setView([40, 0], 1);
var myLayer = L.mapbox.featureLayer().addTo(map);
由于它从映射中删除了所有标记,因此myLayer似乎不适用于ajax中的回调函数。可能是什么问题,我缺少什么?
.setGeoJSON
方法取代了GeoJSON——它设置的是GeoJSON,而不是添加单独的功能。如果您想添加新功能而不是替换现有内容,我建议您使用jQuery
和L.mapbox.featureLayer
方法为正在加载的功能创建一个新层,并将其添加到地图中。