2011-03-11 204 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 
    } 
);