Pergunta

Existem cerca de 100 marcadores em um mapa do Google, além de um marcador especial que precisa ser visível. Atualmente, os marcadores ao seu redor o escondem total ou parcialmente quando o mapa é ampliado. Eu preciso que esse marcador seja totalmente visível e acho que mantê -lo por cima de todos os outros marcadores deve fazer o truque. Mas não consigo encontrar uma maneira de modificar sua ordem de empilhamento (Z-Index).

Foi útil?

Solução

Use o Zindexprocess Opção no GmarkerOptions ao criar o marcador que deseja no topo. Por exemplo:

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

Acredito que o padrão é ter um índice Z que é a latitude do ponto do marcador, portanto, isso deve ser bastante seguro em trazer um único marcador para a frente. Além disso, este foi apenas um exemplo simples; Você pode definir o índice Z de todos os seus marcadores de qualquer maneira simples ou complexa que desejar. Outro exemplo é ter duas funções: uma para marcadores especiais e outro para o 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);
}

Outras dicas

Isto é para o Google Maps API 2.

Para o Google Maps API 3, use o setzindex (Zindex: número) do marcador.

Ver:http://code.google.com/apis/maps/documentation/javascript/reference.html#marker

Adicionando à resposta de Jhanifen, se você deseja que seu único marcador especial esteja no topo de todo o resto, defina seu zindex para google.maps.marker.max_zindex + 1. Isso garantirá que esteja no topo de qualquer marcador no mapa.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top