google.maps.Marker zIndex 不适用于两种图标类型 - 符号和字符串



当我使用不同的图标类型向谷歌地图添加更多标记时,例如:

...
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 不起作用,符号标记出现在顶部。

我的代码有问题,或者如何使 zIndex 工作?

您必须指定zIndex并添加

optimized: false

每个标记构造函数,例如。

var marker = new google.maps.Marker({
    position: markerLatLng,
    map: map,
    icon: resultIcon,
    optimized: false,
    zIndex: 5
})

这似乎是基于画布的新标记渲染的问题。

编辑:

这确实解决了问题。值得一提的是,每个标记都必须具有"optimized: false"属性。只要一个标记没有它,它就不起作用。

从LeJared的小提琴中删除任何"优化:false"属性,您会遇到该错误。

http://jsfiddle.net/BNWYq/1/

将圆圈的 zIndex 设置为 -99 似乎有帮助:http://jsfiddle.net/rq4vs/2/

我做了一个小提琴:http://jsfiddle.net/gSRmV/

看起来像一个错误,必须由谷歌修复。

添加optimized: false不会改变任何内容。

编辑:看起来仍然像错误,但tborychowski和Codetoffel的两个解决方案似乎有效。

最新更新