Подтвердить что ты не робот

Карты Google: как изменить z-индекс маркера?

На карте google имеется около 100 маркеров, а также один специальный маркер, который должен быть видимым. В настоящее время маркеры вокруг него скрывают его полностью или частично, когда карта уменьшена. Мне нужен этот маркер, чтобы он был полностью видимым, и я думаю, что держать его поверх всех других маркеров следует делать. Но я не могу найти способ изменить свой порядок укладки (z-index).

4b9b3361

Ответ 1

Используйте параметр zIndexProcess в GMarkerOptions, когда вы создаете маркер, который вы хотите сверху. Например:

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

Я полагаю, что по умолчанию будет иметь z-индекс, который является широтой точки маркера, поэтому это должно быть достаточно безопасным при переносе одного маркера на передний план. Кроме того, это был простой пример; вы можете установить z-индекс всех ваших маркеров любым простым или сложным способом. Другой пример - иметь две функции: одну для специальных маркеров и одну для остальных.

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);
}

Ответ 3

Добавляя к jhanifen ответ, если вы хотите, чтобы ваш один специальный маркер был поверх всех остальных, установите zIndex в google.maps.Marker.MAX_ZINDEX + 1. Это позволит убедиться, что он сверху любого маркера на карте.