2012-06-04 21 views
8

Tengo una capa con varios marcadores con iconos bastante grandes, por lo que se superponen. A través de la lista en el lado del mapa, los usuarios pueden seleccionar un marcador y el mapa se desplazará (y se acercará) a él. Pero todavía estará detrás de otros fabricantes. ¿Cómo obtengo un índice Z individual y lo configuro? Sería útil obtener el índice z más alto utilizado y solo agregar uno. (otra solución es agregar el número total de marcadores al índice Z)Cambiar el índice Z del marcador en capas abiertas

Los marcadores (o características) están en una matriz myLib.features. La consola no muestra ninguna función de tipo z-index.

No puedo encontrar un ejemplo apropiado o una función api para esto.

EDIT:

me encontré con este ejemplo: http://dev.openlayers.org/examples/ordering.html yo realmente no lo entiendo. De alguna manera, la característica creada toma el siguiente índice z dado por la capa a través de algún tipo de simbolizador. No tengo idea de cómo trabajar este tipo estático en uno dinámico.

Respuesta

2

Prueba esto:

En primer lugar, asegúrese de que está utilizando una capa OpenLayers.Layer.Vector, no una capa OpenLayers.Layer.Markers. Aparentemente, la capa Marcadores es noticia antigua y todo el desarrollo nuevo se realiza en la capa Vector. Tiene más características. (Perdí un montón de tiempo con la capa de marcadores yo mismo).

Luego, cada uno de sus marcadores debe ser un objeto OpenLayers.Feature.Vector. El constructor toma tres argumentos, el tercero de los cuales se llama estilo. El estilo es donde establece sus atributos de imagen, la sombra de fondo, el texto sobre el mouse y el índice z, que tiene el nombre de propiedad "graphicZIndex". Creo que eso es lo que estás buscando.

http://dev.openlayers.org/releases/OpenLayers-2.12/doc/apidocs/files/OpenLayers/Feature/Vector-js.html#OpenLayers.Feature.Vector.OpenLayers.Feature.Vector.style

Añadir sus "marcadores" (los cuales son de Vector) a la capa de vector con la función addFeatures. Y simplemente ignore el argumento de "opciones".

http://dev.openlayers.org/releases/OpenLayers-2.12/doc/apidocs/files/OpenLayers/Layer/Vector-js.html#OpenLayers.Layer.Vector.addFeatures

me encontré con que la página ejemplo también, y me pareció confuso también. Estaba configurando todos los estilos de los marcadores en el constructor de la capa Vector (como valores predeterminados que se utilizarán si se omitió el estilo del marcador) en lugar del constructor del marcador. Creo que tiene más sentido establecer el estilo del marcador en el constructor del marcador.

Para cambiar el estilo en tiempo real, tome uno de sus marcadores OpenLayers.Feature.Vector, llamado "marcador" y haga esto. Y llamemos a la capa de Vector "capa".

marker.style.graphicZIndex = 13; 
layer.redraw(); 
+0

Esto no funcionó pero esto hizo https://gis.stackexchange.com/a/80574/8280 –

Cuestiones relacionadas