18

Il y a environ 100 marqueurs sur une carte google plus un marqueur spécial qui doit être visible. Actuellement, les marqueurs qui l'entourent le cachent totalement ou partiellement lorsque la carte est agrandie. J'ai besoin que ce marqueur soit entièrement visible et je pense que le garder au-dessus de tous les autres marqueurs devrait faire l'affaire. Mais je ne peux pas trouver un moyen de modifier son ordre d'empilement (z-index).Google Maps: Comment changer l'index z d'un marqueur?

+2

La solution Google Maps API v3 est ici: http://salman-w.blogspot.com/2012/07/change-z-index-google-map-v3-markers.html –

Répondre

5

Utilisez l'option zIndexProcess dans GMarkerOptions lorsque vous créez le marqueur souhaité. Par exemple:

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

Je crois que la valeur par défaut est d'avoir un z-index qui est la latitude du point du marqueur, ce qui devrait être assez fort à amener un seul marqueur à l'avant. De plus, c'était juste un exemple simple; vous pouvez définir l'index z de tous vos marqueurs de la manière simple ou complexe que vous voulez. Un autre exemple est d'avoir deux fonctions: une pour les marqueurs spéciaux et une pour les autres.

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 ... cela semble prometteur . Mais je me demande si le code 9999 est correct. Est-il possible d'avoir un marqueur avec un z-index> = 9999? –

+0

J'ai édité ma réponse ci-dessus pour répondre à cette question. – Mark

+0

J'ai été laissé entendre que je pourrais être capable d'utiliser la fonction GOverlay.getZIndex() pour trouver z-index des marqueurs qui doivent être rendus sur une latitude donnée, mais n'a pas pu le faire fonctionner :( –

5

Ajout à la réponse de jhanifen, si vous voulez obtenir votre un marqueur spécial pour être au-dessus de tout le reste, il est mis à zIndex google.maps.Marker.MAX_ZINDEX + 1. Cela permettra de s'assurer qu'il est au-dessus de tout marqueur sur la carte.

Questions connexes