Я использую OpenLayers.Control.SelectFeature для выбора на нескольких слоях. Однако, когда я добавляю слой, используя setLayer (), мои выборы на других слоях теряются.
Кто-нибудь знает, как обойти это? Я хотел бы сохранить существующие выделения на других слоях при добавлении слоя в элемент управления SelectFeature.
Вот пример: МОЙ ПРИМЕР
Обновить:
Я знаю, что это часть API. Но я ищу работу вокруг.
/**
* 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
источник
источник
Я думаю, что это очень полезный метод, но его нужно добавить как addLayer (Layer) и с небольшими изменениями, чтобы он обрабатывал один слой:
который, я надеюсь, будет принят в этом запросе на получение доступа - https://github.com/openlayers/openlayers/pull/1287
Кроме того, пользователю не нужно вести список слоев, которые были добавлены.
источник