Включить редактирование данных geojson

Включить редактирование слоев с помощью geojson

 var drawnItems = new L.FeatureGroup();
 map.addLayer(drawnItems);

JSON-данные

    $.getJSON("js/draw/neighborhoods.json",function(hoodData){
     alert("this is editableLayers");
     var i = 0;
    var geojsonlayer = L.geoJson(hoodData,
    {
           onEachFeature: function (feature, layer) {
                alert(feature.properties.prop0);
                var myLayer = layer;
            drawnItems.addLayer(myLayer);

            }
    });
    map.addLayer(drawnItems);
    });

Добавление контроля

    //draw control
    var drawControl = new L.Control.Draw({
        draw: false,
        edit: {
            featureGroup: drawnItems,
            remove: false,
            edit: true
       }
    });

    map.addControl(drawControl);
    map.on('draw:edited', function (e) {
    var layers = e.layers;
    layers.eachLayer(function (layer) {
        console.log(layer)
    });
});

Используя этот код, я могу рисовать слои, но не могу их редактировать. Я использую библиотеку leaflet.draw.


person Pavan    schedule 14.06.2017    source источник
comment
даже это дублирующий вопрос, но нам нужно решение..   -  person Pavan    schedule 14.06.2017
comment
См. stackoverflow.com/questions/34738805/   -  person ghybs    schedule 07.07.2017
comment
эй ghybs Спасибо, но я решил свою проблему.   -  person Pavan    schedule 10.07.2017


Ответы (1)


Если бы вы могли настроить JSFiddle с некоторыми примерами данных, я мог бы более подробно рассмотреть процесс, который вы настроили.

В идеале данные geojson должны быть доступны до добавления в элемент управления и добавления на карту. Поскольку это асинхронно, вы должны добавлять элемент управления и слой на карту после каждого обновления из вашего закрытия ajax/getJSON. Это похоже на очистку рабочего пространства каждый раз, когда у вас есть новые данные для редактирования.

person Jon West    schedule 06.07.2017