将现有的传单多边形添加到现有的传单图层

cod*_*kie 1 javascript leaflet leaflet.draw

我有一堆存储在数据库中的多边形。我想将它们添加到地图中,以便可以使用传单绘制工具栏对其进行编辑。尽管现在多边形已添加到地图中,但我无法对其进行编辑。

我认为这是因为未将它们添加到添加了layerGroup()新绘制形状的对象中。

请帮忙。

Man*_*uel 5

您必须将多边形添加到FeatureGroup中drawnItems!比方说

    var polyLayers = dbArray;
Run Code Online (Sandbox Code Playgroud)

是具有多边形的数据库数组。首先使用绘制的项目创建一个要素组:

    var drawnItems = new L.FeatureGroup();
Run Code Online (Sandbox Code Playgroud)

并将其添加到地图中:

    map.addLayer(drawnItems);
Run Code Online (Sandbox Code Playgroud)

然后,您只需要遍历数据库中的多边形并将其添加到drawedItems中FeatureGroup

    for(layer of polyLayers) {
        drawnItems.addLayer(layer); 
    };
Run Code Online (Sandbox Code Playgroud)

现在,这些图层已添加到地图并且可以编辑。

这是一个例子

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

    var polyLayers = [];

    var polygon1 = L.polygon([
        [51.509, -0.08],
        [51.503, -0.06],
        [51.51, -0.047]
    ]);
    polyLayers.push(polygon1)

    var polygon2 = L.polygon([
        [51.512642, -0.099993],
        [51.520387, -0.087633],
        [51.509116, -0.082483]
    ]);
    polyLayers.push(polygon2)

    // Add the layers to the drawnItems feature group 
    for(let layer of polyLayers) {
        drawnItems.addLayer(layer); 
    }
Run Code Online (Sandbox Code Playgroud)