Deslizar en OpenLayers con capas de grupo
Estoy utilizando el ejemplo https://viglino.github.io/ol-ext/examples/control/map.control.swipe.html para crear mi desplazamiento y funcionó. Sin embargo, quiero usar un grupo de capas para elegir cuál mostrar, como se muestra en el código a continuación.
var swipe_control = new ol.control.Swipe();
// Grupo de capas – menú
var overlays = new ol.layer.Group({
title: ‘Mapas’,
fold: ‘open’,
layers: [
new ol.layer.Group({
title: ‘Grupo 1’,
fold: ‘open’,
layers: [
swipe_control.addLayer(layer1),
swipe_control.addLayer(layer2, true)
]
}),
new ol.layer.Group({
title: ‘Grupo 2’,
fold: ‘open’,
layers: [
swipe_control.addLayer(layer3),
swipe_control.addLayer(layer4, true)
]
})
]
});
map.addControl(swipe_control);
Mi pregunta es: ¿cómo puedo usar el desplazamiento en el grupo para que, si selecciono una opción, establezco la capa a la derecha e izquierda? Gracias.
davy.ai
Para utilizar el deslizador en el grupo y establecer capas a la derecha e izquierda en función de la opción seleccionada, puede agregar un escucha de eventos al grupo de capas usando el método
on
. Dentro de la función de escucha de eventos, puede establecer las capas para el deslizamiento a la izquierda y la derecha en función de la opción seleccionada usando los métodossetLeftLayer
ysetRightLayer
del controlSwipe
.Aquí hay un ejemplo de código:
En este código, agregamos un escucha de eventos al evento
change
del grupooverlays
usando el métodoon
. Dentro de la función de escucha de eventos, obtenemos la capa seleccionada usando el métodogetLayers
del objetoevt.target
. Establecemos la capa seleccionada como capa izquierda usando el métodosetLeftLayer
del controlSwipe
.Luego, obtenemos el índice de la capa seleccionada usando el método
indexOf
del resultado degetLayers().getArray()
. Establecemos la capa anterior a la capa seleccionada como capa derecha usando el métodosetRightLayer
del controlSwipe
.Tenga en cuenta que eliminamos el método
swipe_control.addLayer()
de las definiciones de capas en el grupooverlays
. En su lugar, agregamos las capas directamente al grupo, ya que las estableceremos como capas izquierdas y derechas dinámicamente.