在谷歌地图上的鼠标悬停KMLLayer手形光标

时间:2011-03-11 13:52:12

标签: javascript google-maps google-maps-api-3

是否可以在Google Maps 3中的鼠标悬停KMLLayer上显示手形光标?

我看到了两个解决方案(但似乎无法使用它们):

  1. 处理KMLLayer的鼠标悬停事件并在CSS中更改光标
  2. 处理Map的mouseover事件并检查游标的位置是否包含在KMLLayer
  3. 你还有其他想法吗?

    由于

3 个答案:

答案 0 :(得分:2)

kml多边形不能有鼠标悬停事件,所以1.不可能。 至于第二,我真的没有看到一个简单的出路。 如果您可以将数据格式更改为kml以外的其他内容,那就更好了。

答案 1 :(得分:1)

你不能有鼠标悬停事件,但你可以在图层上设置一个点击监听器,它将显示手形光标。

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

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

答案 2 :(得分:0)

据我所知,您可以通过选项可点击启用/禁用谷歌地图v3中的光标指针:

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