如何定期更新geojson标记

时间:2018-12-27 17:44:54

标签: leaflet openstreetmap geojson markers

我想做的是在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”);但这似乎现在可以在函数内部使用。请帮助

1 个答案:

答案 0 :(得分:2)

L.geoJSONLayerGroup的扩展,它提供了一个名为clearLayersdocs)的函数,因此您可以调用它来清除图层中的标记。

此外,建议将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();