Mapbox,无法在jquery回调中设置GeoJSON

时间:2016-05-03 07:41:42

标签: javascript php jquery ajax mapbox

我希望通过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中的回调函数。可能是什么问题,我错过了什么?

1 个答案:

答案 0 :(得分:0)

.setGeoJSON方法取代了GeoJSON - 它设置了GeoJSON,而不是添加单个功能。如果您想要添加新功能而不是替换现有内容,我建议您使用jQueryL.mapbox.featureLayer加载的功能创建新图层,{{1}方法,并将其添加到地图。

相关问题