2010-08-15 96 views
1

我正在创建一个项目,在创建一些漂亮的代码以创建多边形并将鼠标事件附加到它们之后,添加KML图层(主要是地图标记)结果在KML层的占位符和生成的多边形之间的不合作行为中。谷歌地图v3 API:KML层搞乱点击,鼠标事件

如果我先创建多边形,然后设置KML文件,单击placeMarkkers会按预期调出infowindow()。但是,下面的多边形上的鼠标悬停不会产生任何结果,而在它们突出显示之前并且是可点击的(它们不是)。

将KML图层设置为null也无济于事。地点标记消失,但我的多边形没有注册。

当我第一次使用placemarkers调用KML时,稍后调用的多边形图层将位于地图标记的顶部。多边形是不透明的,所以您可以通过窗口看到地图标记,但不能单击或与地图标记进行交互。

将多边形设置为空会导致与以前相同的行为。占位符仍然无法点击。

帮助?我无法找到KML图层代码的zIndex参考,我希望就是这样。我读过其他地方 - 并想象这是真实的 - KML和用户创建的内容“层”互相冲突 - 后者放在地图上需要注意焦点,捕捉事件等。我会想到的那就没有关系了,就像你可以在其他div上使用div一样,特别是如果你使用索引。

+1

一些代码会很有用。 – CrazyEnigma 2010-08-17 21:20:58

回答

4

如果你只是想在KML层来显示信息,而不是把它响应用户的事件,您可以在suppressInfoWindows标志添加到构造函数:

var myKmlLayer = new google.maps.KmlLayer('http://gmaps-samples.googlecode.com/svn/trunk/ggeoxml/cta.kml', { suppressInfoWindows: true }); 

这将有效地关闭所有的互动和让其他图层接收互动。

编辑:忘了提及一个很好的信息来源是Google API V3 site discussing KML layers

+0

谢谢托尼。事情是,我确实需要用于KML层的InfoWindows,否则它们不过是数据点。 我想我可以尝试创建Infopoint并在KML图层上模拟它们,但是在这一点上,生成标记会更容易。 – Eugene 2010-08-19 10:16:15