2012-08-07 18 views
21

Al agregar más marcadores de mapa de Google con diferentes tipos de iconos como:google.maps.Marker zIndex no funciona para dos tipos de iconos - Símbolo y Cadena

... 
var marker = new google.maps.Marker({ 
      position: markerLatLng, 
      map: map, 
      icon: "http://www.test.com/marker.png", 
      zIndex: 10 
     }); 
... 

y

... 
var resultIcon = { 
      path: google.maps.SymbolPath.CIRCLE, 
      fillColor: "black", 
      strokeColor: "black", 
      strokeWeight: 1, 
     }; 

var marker = new google.maps.Marker({ 
      position: markerLatLng, 
      map: map, 
      icon: resultIcon, 
      zIndex: 5 
     }); 
... 

Than the zIndex no funciona y el marcador Symbol aparece en la parte superior.

¿Me equivoco con mi código o cómo puedo hacer que zIndex funcione?

+0

¿Su aplicación funciona correctamente cuando no se especifica iconos personalizados? – jeff

Respuesta

46

Usted tiene que especificar un tanto zIndex y añadir

optimized: false 

a cada constructor marcador, por ejemplo.

var marker = new google.maps.Marker({ 
    position: markerLatLng, 
    map: map, 
    icon: resultIcon, 
    optimized: false, 
    zIndex: 5 
}) 

Esto parece ser un problema con la nueva representación basada en lienzo de los marcadores.

Editar:

Esto realmente resuelve el problema. Una cosa que mencionar es que cada marcador debe tener el atributo "optimizado: falso". Mientras un marcador no lo tenga, no funcionará.

Elimina cualquiera de los atributos "optimizados: falsos" del violín de LeJared y encontrarás el error.

http://jsfiddle.net/BNWYq/1/

+0

Sí, tienes razón. Gracias por corregir mi violín. – LeJared

+0

¡Esta solución funciona con gratitud para mí! :-) – kuceram

+0

Acabas de ahorrarme innumerables horas de sacarme el pelo. –

0

He hecho un poco de fiddl: http://jsfiddle.net/gSRmV/

Parece que un insecto, que tiene que ser fijado por Google.

Añadiendo optimized: false no cambia nada.

Editar: todavía se ve como error, pero las dos soluciones de tborychowski y Codetoffel parecen funcionar.

8

Configuración zIndex del círculo a -99 parece ayudar: http://jsfiddle.net/rq4vs/2/

+0

Oye, esa es una buena solución, también. Gracias por corregir el fiddl. – LeJared

+0

Esto funciona para mí. –

+1

Cuidado: el problema con esta solución es que el símbolo "roba" eventos como el mouseover y el clic de la imagen, aunque se dibuje visualmente debajo de la imagen. Compruebe este violín para ver cómo se muestra la información sobre herramientas del círculo en lugar de la información sobre herramientas pin, incluso si el círculo se coloca debajo del pin: http://jsfiddle.net/AeePr/ Espero que Google lo resuelva de una buena manera, porque la configuración optimizada = falsa tampoco es ideal en todos los casos tampoco. –

Cuestiones relacionadas