5 votos

¿Cómo mostrar muchas imágenes con OpenLayers?

Me gustaría mostrar muchas imágenes al mismo tiempo . Las imágenes están georreferenciadas (tienen extensiones), con algunas etiquetas encima que, al hacer clic, abren ventanas emergentes. No puedo decir cuántas exactamente porque dependerá de las elecciones del usuario.

Y quiero que el usuario elija la información que ve. Hay algunas casillas que puede marcar o no y se mostrarán más o menos imágenes dependiendo de sus elecciones.

Mi problema es que tengo que lidiar con el "problema" (que en realidad no es un problema) descrito en la wiki de OpenLayers: ¿Cuál es la cantidad máxima de capas que puedo tener en mi mapa OpenLayers?

Me preguntaba si hay una manera de tener más de 75 imágenes. Porque, el sistema realmente funciona, excepto cuando quiero mostrar más de 75 imágenes: Aparecen ventanas emergentes y etiquetas debajo de las imágenes...

He intentado durante mucho tiempo jugar con z-index Sin embargo, sin éxito.

0 votos

¿cuál es su servidor de mapas back-end? Puede que le permita renderizar varias capas como una sola imagen, que OpenLayers tratará como una sola capa

0 votos

@tomfumb Geoserver. Tal vez sea posible hacerlo con él, pero me gustaría ocultar algunas de las imágenes cuando el usuario haga clic en una casilla, y si tengo que cargar una nueva imagen cada vez que el usuario haga clic en una... Será bastante largo... (hay muchos checkbox diferentes, cada uno ocultando diferentes imágenes)

0 votos

Podrías crear un servicio WMS con Geoserver, que sirva todas las imágenes. Cada imagen debería estar en una capa separada (capa separada en el servicio WMS, no capa separada en OpenLayers) y debería estar desactivada por defecto. En OpenLayers, cree una capa WMS y controle la capa habilitada mediante casillas de verificación (layers=image1,image4,etc en la cadena de solicitud).

4voto

naknode Puntos 143

Por supuesto que puedes cambiar el z-index por defecto de OpenLayers. Sólo tienes que sobrescribir el rango de z-index por defecto antes de nada.

OpenLayers.Map.prototype.Z_INDEX_BASE.Feature = 2000;
OpenLayers.Map.prototype.Z_INDEX_BASE.Popup = 4000;
OpenLayers.Map.prototype.Z_INDEX_BASE.Control = 5000;
var map = new OpenLayers.Map();
...

3voto

Daniel Hilgarth Puntos 118

En teoría, debería ser posible crear una capa, añadir imágenes como características con externalGraphic, y establecer su tamaño (graphicWidth, graphicHeight) dinámicamente mediante la función de contexto. Esto "emulará" las imágenes georreferenciadas.

En la práctica, el primer problema es que después de cambiar el zoom, cuando el origen de la característica no está en la pantalla, no se muestra. Al acercar el zoom, por ejemplo, se nota que faltan algunos mosaicos. Aparecerán, cuando se desplaza alrededor. No sé, tal vez hay una solución para este comportamiento.

Aquí hay un ejemplo con cuatro imágenes: http://jsfiddle.net/nF7yQ/3/embedded/result/

0 votos

Debería haber sido más explícito, quiero imágenes georreferenciadas (con extensiones definidas) porque muestra los datos en un lugar determinado del mapa por lo que no puedo utilizar características porque el tamaño no cambia con el zoom, ¿verdad?

0 votos

Bien, en ese caso las características con estilo regular no son adecuadas. Pero es posible cambiar el estilo dinámicamente con las funciones de contexto, por lo que puede calcular su tamaño de acuerdo a la resolución. He modificado mi publicación original.

0 votos

Con esta solución, sería realmente difícil, porque mis imágenes tienen todas diferentes extensiones y diferentes tamaños... Así que me imagino los cálculos necesarios y tengo miedo :D

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X