2011-03-11 206 views
2

是否可以在谷歌地图3的鼠标悬停KMLLayer上显示手形光标?鼠标悬停在鼠标悬停KMLLayer谷歌地图

我看到了两种解决方案(但似乎它们不能使用):

  1. 为KMLLayer手柄鼠标悬停事件,改变光标在CSS
  2. 手柄鼠标悬停事件地图,检查光标的位置包含在KMLLayer中

您有任何其他想法吗?

感谢

回答

2

的KML多边形不能有一个鼠标悬停事件,因此1.是不可能的。 至于第二我真的没有看到一个简单的出路。 如果您可以将数据格式更改为kml以外的东西,情况会更好。

1

您不能有鼠标悬停事件,但您可以在图层上设置点击侦听器,该图层将显示手形光标。

var layer = new google.maps.KmlLayer('http://...'); 
google.maps.event.addListenerOnce(layer, 'click', function() { 
    // do nothing here 
}); 

现在,只要将鼠标悬停在KML中定义的区域上,它就会显示光标。您还可以获取鼠标的位置(如果用户单击KML图层),因为这会生成一个KmlMouseEvent,它将包含他们点击的点的LatLng。它还会告诉您有关他们点击了哪个KML地标的信息。然后,你可以做你的计算这里查看其是否包含你所想要的KML层...

0

据我所知,你可以通过选项点击支持通过KML在谷歌地图V3 /禁用光标指针:

var kml = new google.maps.KmlLayer(
kmlUrl, 
    { 
    suppressInfoWindows: true, 
    preserveViewport: true, 
    map: null, 
    clickable: false 
    } 
);