J'utilise un OpenLayers.Control.SelectFeature pour les sélections sur plusieurs couches. Cependant, lorsque j'ajoute un calque à l'aide de setLayer (), mes sélections sur les autres calques sont perdues.
Quelqu'un sait comment contourner cela? Je souhaite conserver mes sélections existantes sur d'autres calques lorsque j'ajoute un calque au contrôle SelectFeature.
Voici un exemple: MON EXEMPLE
Mise à jour:
Je suis conscient que cela fait partie de l'API. Mais je cherche un travail.
/**
* APIMethod: setLayer
* Attach a new layer to the control, overriding any existing layers.
*
* Parameters:
* layers - Array of {<OpenLayers.Layer.Vector>} or a single
* {<OpenLayers.Layer.Vector>}
*/
setLayer: function(layers) {
var isActive = this.active;
this.unselectAll();
this.deactivate();
if(this.layers) {
this.layer.destroy();
this.layers = null;
}
this.initLayer(layers);
this.handlers.feature.layer = this.layer;
if (isActive) {
this.activate();
}
},
openlayers-2
javascript
CaptDragon
la source
la source
Je pense que c'est une méthode très utile mais elle devrait être ajoutée en tant qu'addLayer (Layer) et avec quelques petits changements pour qu'elle gère une couche:
qui, je l'espère, sera pris en compte dans cette demande de tirage - https://github.com/openlayers/openlayers/pull/1287
De plus, l'utilisateur n'a pas à maintenir une liste des couches ajoutées.
la source