2012-08-07 23 views
21

当我用不同的图标类型添加更多的标记到谷歌地图,如: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工作?

+0

工作正常应用程序时,你不指定自定义图标? – jeff 2012-08-19 23:37:47

回答

46

你有两个指定zIndex并添加

optimized: false 

标记的构造函数,例如。

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

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

编辑:

这确实解决了问题。 但要注意的一点是,每个标记必须具有“优化:false”属性。只要一个标记没有它,它就无法工作。

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

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

+0

是的,你是对的。感谢您纠正我的小提琴。 – LeJared 2012-08-22 21:35:08

+0

这个解决方案对我很感激! :-) – kuceram 2012-09-04 15:22:01

+0

你刚刚挽救了我数不清的时间,把我的头发拉出来。 – 2013-02-07 21:31:13

0

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

看起来像一个bug,即必须由谷歌来固定。

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

编辑:仍然看起来像bug,但tborychowski和Codetoffel的两个解决方案似乎工作。

8

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

+0

嘿,这也是一个不错的解决方案。感谢您纠正错误。 – LeJared 2012-08-22 21:52:15

+0

这适用于我。 – 2013-01-24 17:43:37

+1

请注意:这个解决方案的问题在于,符号“偷走”事件,如鼠标悬停和单击图像,即使它是在图像下方可视化绘制的。查看这个小提琴,看看如何显示来自圆圈的工具提示而不是提示工具提示,即使圆圈放在引脚下:http://jsfiddle.net/AEePr/ 我希望谷歌能解决这个问题方式,因为设置优化= false在所有情况下都不理想。 – 2013-05-08 12:05:29

相关问题