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

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 работать?

4b9b3361

Ответ 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/

Ответ 3

Я сделал немного fiddl: http://jsfiddle.net/gSRmV/

Похож на ошибку, которая должна быть исправлена ​​google.

Добавление optimized: false ничего не меняет.

Изменить: По-прежнему выглядит как ошибка, но, похоже, работают два решения от tborychowski и Codetoffel.