Estou usando um OpenLayers.Control.SelectFeature para seleções em várias camadas. No entanto, quando adiciono uma camada usando setLayer (), minhas seleções nas outras camadas são perdidas.
Alguém sabe como resolver isso? Gostaria de manter minhas seleções existentes em outras camadas quando adiciono uma camada ao controle SelectFeature.
Aqui está um exemplo: MEU EXEMPLO
Atualizar:
Estou ciente de que isso faz parte da API. Mas estou procurando uma solução.
/**
* 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
fonte
fonte
Eu acho que este é um método muito útil, mas deve ser adicionado como addLayer (Layer) e com algumas pequenas alterações para lidar com uma camada:
que espero que seja apresentado nesta solicitação de recebimento - https://github.com/openlayers/openlayers/pull/1287
Além disso, o usuário não precisa manter uma lista de camadas que foram adicionadas.
fonte