2017-07-04 8 views
2

Comment puis-je affecter plusieurs groupes de fonction dans le contrôle d'édition,affecter plusieurs groupe de fonctions dans le contrôle d'édition dans la fiche tirage

Supposons que nous avons deux groupes de fonctionnalités (Il peut être multiple), et nous voulons assigner modifier contrôle aux deux groupes.

Ce sont les groupes,

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

Et voici, Comment je donner le contrôle aux groupes,

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

    } 
})); 

Est-il bonne façon d'attribuer le contrôle d'édition à FeatureGroup? Si non, comment pouvons-nous le faire?

Répondre

0

Leaflet.Draw featureGroup n'accepte pas les groupes de fonctions multiples.

Vous pouvez avoir deux instances de Leaflet.Draw configurées, une pour chaque groupe de fonctions. Cependant, je prédis que vous aurez des problèmes avec les boutons que Leaflet.Draw met en place et éventuellement les événements lancés par chaque instance.

La deuxième option consiste à avoir une seule instance de Leaflet.Draw et à inverser le groupe de fonctions avec une bascule.

0

S'il n'y a pas de distinction particulière entre vos 2 premiers groupes de fonction, puis copiez simplement la référence de chaque couche individuelle dans un nouveau groupe d'entités parent et utiliser cette dernière comme l'option 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 
    } 
});