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?
risposta
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);
}
Ah ... questo sembra promettente . Ma mi chiedo se l'hard-coding 9999 sia OK. È possibile avere un indicatore con uno z-index> = 9999? –
Ho modificato la mia risposta sopra per rispondere a questa domanda. – Mark
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 :( –
Questo è per Google Maps API 2.
per Google Maps API 3 utilizzo del setZIndex (zIndex: numero) del marcatore.
See: http://code.google.com/apis/maps/documentation/javascript/reference.html#Marker
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.
La soluzione API v3 di Google Maps è qui: http://salman-w.blogspot.com/2012/07/change-z-index-google-map-v3-markers.html –