在传单中绘制编辑控件中的多个要素组

时间:2017-07-04 08:53:42

标签: javascript leaflet leaflet.draw

如何在编辑控件中分配多个功能组,

  

假设我们有两个功能组(可以是多个),我们希望将编辑控件分配给两个组。

这是小组,

var attLayerGroup = new L.FeatureGroup();
var photoLayerGroup = new L.FeatureGroup();

这就是我如何将控件分配给组,

    var drawControl = map.addControl(new L.Control.Draw({
    edit: {
        featureGroup: photoLayerGroup,attLayerGroup,
        poly: {
            allowIntersection: true
        }
    },
    draw: {
        polygon: {
            allowIntersection: false,
            showArea: true
        }

    }
}));
  

将Edit控件分配给FeatureGroup是否正确?   如果没有,我们怎么做呢?

2 个答案:

答案 0 :(得分:0)

Leaflet.Draw featureGroup不接受多个功能组。

您可以设置两个Leaflet.Draw实例,每个实例组一个。但是,我预测你会遇到Leaflet.Draw设置按钮以及每个实例抛出的事件的问题。

第二个选项是使用Leaflet.Draw的单个实例,并使用切换交换功能组。

答案 1 :(得分:0)

如果您的2个初始要素组之间没有特定的区别,则只需将每个单独图层的引用复制到新的父要素组中,并将后者用作Leaflet.draw featureGroup选项:

var fg = L.featureGroup();

photoLayerGroup.eachLayer(function (layer) {
  if (!layer instanceof L.LayerGroup) {
    fg.addLayer(layer);
  }
});

// Same for attLayerGroup.

new L.Control.Draw({
  edit: {
    featureGroup: fg
  }
});