启用编辑geojson数据

时间:2017-06-14 15:37:29

标签: javascript leaflet leaflet.draw

启用对使用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 lib。

1 个答案:

答案 0 :(得分:0)

如果您可以使用一些示例数据设置JSFiddle,我可以仔细查看您已设置的过程。

理想情况下,在添加到控件并添加到地图之前,geojson数据可用。由于这是异步的,因此在每次从ajax / getJSON闭包更新后,应该将控件和图层添加到地图中。有点像每次要编辑新数据时清理工作区。