2010-08-15 88 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

相關問題