Как периодически обновлять маркеры геойсона - PullRequest
0 голосов
/ 27 декабря 2018

Я пытаюсь использовать Leaflet с картой OSM и загружать данные из PHP в формате GeoJSON + периодически обновлять.

Мне удается отобразить карту, загрузить данные, но я не знаюкак обновлять точки, а не добавлять новые.

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 голосов
/ 28 декабря 2018

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();
...