18

Hay aproximadamente 100 marcadores en un mapa de Google y además hay un marcador especial que debe estar visible. Actualmente, los marcadores a su alrededor lo ocultan total o parcialmente cuando se reduce el mapa. Necesito que ese marcador sea completamente visible y creo que mantenerlo encima de todos los demás marcadores debería ser el truco. Pero no puedo encontrar una manera de modificar su orden de apilamiento (índice Z).Google Maps: ¿Cómo puedo cambiar el índice z de un marcador?

+2

La solución Google Maps API v3 está aquí: http://salman-w.blogspot.com/2012/07/change-z-index-google-map-v3-markers.html –

Respuesta

5

Utilice la opción zIndexProcess en GMarkerOptions cuando crea el marcador que desea en la parte superior. Por ejemplo:

var pt = new GLatLng(42.2659, -83.74861); 
var marker = new GMarker(pt, {zIndexProcess: function() { return 9999; }}); 
map.addOverlay(marker); 

Creo que el defecto es tener un índice z es la latitud del punto del marcador, así que esto debería ser bastante seguro en traer un solo marcador en la parte delantera. Además, esto fue solo un simple ejemplo; puede establecer el índice Z de todos sus marcadores de la manera simple o compleja que desee. Otro ejemplo es tener dos funciones: una para marcadores especiales y otra para el resto.

var pt1 = new GLatLng(42.2659, -83.74861); 
var pt2 = new GLatLng(42.3000, -83.74000); 
var marker1 = new GMarker(pt1, {zIndexProcess: specialMarker}); 
var marker2 = new GMarker(pt2, {zIndexProcess: normalMarker}); 
map.addOverlay(marker1); 
map.addOverlay(marker2); 

function specialMarker() { 
    return 9999; 
} 

function normalMarker() { 
    return Math.floor(Math.random()*1000); 
} 
+0

Ah ... esto parece prometedor . Pero me pregunto si el código duro 9999 está bien. ¿Es posible tener un marcador con un índice z> = 9999? –

+0

Edité mi respuesta anterior para abordar esta pregunta. – Mark

+0

Me insinuaron que podría usar la función GOverlay.getZIndex() para buscar el índice z de marcadores que se van a representar en una latitud determinada, pero no pude hacer que funcione :( –

5

la adición a la respuesta de jhanifen, si usted desea conseguir su un marcador especial para estar en la cima de todo lo demás, establezca que es zIndex a google.maps.Marker.MAX_ZINDEX + 1. Esto se asegurará de que esté encima de cualquier marcador en el mapa.

Cuestiones relacionadas