Google.maps.Marker zIndex не работает для двух типов значков - Symbol и String
Когда я добавляю больше маркеров в Google Map с разными типами значков, например:
...
var marker = new google.maps.Marker({
position: markerLatLng,
map: map,
icon: "http://www.test.com/marker.png",
zIndex: 10
});
...
и
...
var resultIcon = {
path: google.maps.SymbolPath.CIRCLE,
fillColor: "black",
strokeColor: "black",
strokeWeight: 1,
};
var marker = new google.maps.Marker({
position: markerLatLng,
map: map,
icon: resultIcon,
zIndex: 5
});
...
Чем zIndex не работает, а маркер Symbol появляется сверху.
Я ошибаюсь в своем коде или как заставить zIndex работать?
Ответы
Ответ 1
Вам нужно указать zIndex
и добавить
optimized: false
до каждого конструктора маркеров, например.
var marker = new google.maps.Marker({
position: markerLatLng,
map: map,
icon: resultIcon,
optimized: false,
zIndex: 5
})
Это, похоже, проблема с новым рендерингом маркеров на основе холста.
Edit:
Это действительно решает проблему.
Следует отметить, что каждый маркер должен иметь атрибут "optimized: false". Пока один маркер не имеет его, он не будет работать.
Удалите все атрибуты "optimized: false" из скрипта LeJared, и вы столкнетесь с ошибкой.
http://jsfiddle.net/BNWYq/1/
Ответ 2
Настройка zIndex круга на -99, по-видимому, помогает: http://jsfiddle.net/rq4vs/2/
Ответ 3
Я сделал немного fiddl:
http://jsfiddle.net/gSRmV/
Похож на ошибку, которая должна быть исправлена google.
Добавление optimized: false
ничего не меняет.
Изменить: По-прежнему выглядит как ошибка, но, похоже, работают два решения от tborychowski и Codetoffel.