如何定期更新 geojson 标记
How to update geojson markers periodically
我想做的是将 Leaflet 与 OSM 地图一起使用,
并以 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");但这现在似乎在函数内部起作用。请帮忙
L.geoJSON
从 LayerGroup
扩展而来,它提供了一个名为 clearLayers
(docs) 的函数,因此您可以调用它来清除图层中的标记。
另外,建议大家把图层变量放在函数外面:
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();
我想做的是将 Leaflet 与 OSM 地图一起使用, 并以 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");但这现在似乎在函数内部起作用。请帮忙
L.geoJSON
从 LayerGroup
扩展而来,它提供了一个名为 clearLayers
(docs) 的函数,因此您可以调用它来清除图层中的标记。
另外,建议大家把图层变量放在函数外面:
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();