如何定期更新 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.geoJSONLayerGroup 扩展而来,它提供了一个名为 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();