Korzystam z OpenLayers.Control.SelectFeature do selekcji na wielu warstwach. Jednak gdy dodam warstwę za pomocą setLayer (), mój wybór na pozostałych warstwach zostanie utracony.
Czy ktoś wie jak to obejść? Chciałbym zachować istniejące zaznaczenia na innych warstwach, gdy dodam warstwę do kontrolki SelectFeature.
Oto przykład: MÓJ PRZYKŁAD
Aktualizacja:
Wiem, że jest to część interfejsu API. Ale szukam obejścia.
/**
* 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
źródło
źródło
Myślę, że jest to bardzo przydatna metoda, ale należy ją dodać jako addLayer (Layer) i z niewielkimi zmianami, aby obsługiwała jedną warstwę:
co mam nadzieję zostanie uwzględnione w tym żądaniu ściągnięcia - https://github.com/openlayers/openlayers/pull/1287
Również wtedy użytkownik nie musi utrzymywać listy warstw, które zostały dodane.
źródło