18

Ci sono circa 100 marcatori su una mappa di google in aggiunta a un indicatore speciale che deve essere visibile. Attualmente, gli indicatori intorno a esso lo nascondono totalmente o parzialmente quando la mappa viene rimpicciolita. Ho bisogno che quel marcatore sia completamente visibile e penso che tenerlo in cima a tutti gli altri marcatori dovrebbe fare il trucco. Ma non riesco a trovare un modo per modificare il suo ordine di impilamento (z-index).Google Maps: come posso modificare lo z-index di un marcatore?

+2

La soluzione API v3 di Google Maps è qui: http://salman-w.blogspot.com/2012/07/change-z-index-google-map-v3-markers.html –

risposta

5

Utilizzare l'opzione zIndexProcess in GMarkerOptions quando si crea il contrassegno che si desidera sopra. Ad esempio:

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

Credo il difetto è di avere un indice z che è la latitudine del punto del marcatore, quindi questo dovrebbe essere abbastanza sicuro a portare un singolo marcatore sul davanti. Inoltre, questo era solo un semplice esempio; puoi impostare lo z-index di tutti i tuoi marcatori in qualsiasi modo semplice o complesso che desideri. Un altro esempio è quello di avere due funzioni: una per i marcatori speciali e una per il 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 ... questo sembra promettente . Ma mi chiedo se l'hard-coding 9999 sia OK. È possibile avere un indicatore con uno z-index> = 9999? –

+0

Ho modificato la mia risposta sopra per rispondere a questa domanda. – Mark

+0

Mi è stato suggerito che potrei essere in grado di utilizzare la funzione GOverlay.getZIndex() per trovare z-index dei marker che devono essere visualizzati su una data latitudine, ma non è stato in grado di farlo funzionare :( –

5

Aggiungendo alla risposta di jhanifen, se si desidera ottenere il vostro un marcatore speciale per essere in cima a tutto il resto, si tratta di impostare zIndex a google.maps.Marker.MAX_ZINDEX + 1. Ciò assicurerà che sia sopra qualsiasi indicatore sulla mappa.