我想做的是在OSM地图上使用Leaflet, 并以GeoJSON格式从PHP加载数据+定期更新。
我可以设法显示地图,加载数据,但不知道如何更新点而不是仍然添加新点。
function update_position() {
$.getJSON('link_to_php', function(data) {
//get data into object
var geojsonFeature = JSON.parse(data);
// how to remove here old markers???
//add new layer
var myLayer = L.geoJSON().addTo(mymap);
//add markers to layet
myLayer.addData(geojsonFeature);
setTimeout(update_position, 1000);
});
}
update_position();
尝试了mymap.removeLayer(“ myLayer”);但这似乎现在可以在函数内部使用。请帮助
答案 0 :(得分:2)
L.geoJSON
是LayerGroup
的扩展,它提供了一个名为clearLayers
(docs)的函数,因此您可以调用它来清除图层中的标记。
此外,建议将layer变量放在函数之外:
var geoJSONLayer = L.geoJSON().addTo(mymap);
function update_position() {
$.getJSON('link_to_php', function(data) {
//get data into object
var geojsonFeature = JSON.parse(data);
geoJSONLayer.clearLayers();
//add markers to layet
geoJSONLayer.addData(geojsonFeature);
setTimeout(update_position, 1000);
});
}
update_position();