2011-08-11 41 views
4

我一直在環顧四周,但還沒有找到答案。是否可以將點擊事件添加到3D建築圖層或使用javascript for google earth插件的自定義3D模型。Google地球插件單擊3D建築物上的事件

我的最終目標是能夠讓用戶選擇一個3d建築物,並讓信息氣泡顯示出有關該建築物的詳細信息。這不是Google用關於3D模型的信息顯示的默認氣泡。

理想情況下,人們可以使用3D建築物層,而不是手動加載模型,儘管我沒有很高的希望,因此可以通過手動上傳的3D模型做到這一點。

我使用google maps api V3和google earth utility library來激活插件。

在此先感謝您的任何答案。

+0

不幸的是簡單地添加s Eams不工作。不能在討論google.earth的文檔中找到正確的位置。addEventListener(地標,'點擊',功能(事件){ \t alert('click');});如果你得到這個解決或在文檔或任何其他有效的來源這個我真的很感謝:) –

+0

我發現這個http://groups.google.com/group/google-earth-browser-plugin/browse_thread/thread/13c6a20d23306d4f?pli = 1有人認爲它不可能,但它從'08那個問題連接到該帖子是可悲的不可用..也許他們增加了這個功能 –

回答

0

我想我第一次讀了這個。左看右看之後,它表明,它似乎還是不可能的(在簡單的方法)

google.earth.addEventListener(placemark, 'click', function(event) 
{ 
    alert('click'); 
}); 

...鼠標事件可附加到插件的大多數幾何(例外是3D模型),...

google earth api

也許它能夠做到這一點的實現自定義的交集 '聽衆'

//編輯:

也許這不是洞的故事。更多的研究表明,有可能製造出一種最具挑戰性的幾何圖形。該ge interface有一個名爲函數hitTest(...) api doc

GEHitTestResult GEView.hitTest(float    x, 
           KmlUnitsEnum  xUnits, 
           float    y, 
           KmlUnitsEnum  yUnits, 
           GEHitTestModeEnum mode  
           )  

可惜GEHitTestModeEnum只適合GEPlugin.HIT_TEST_GLOBE GEPlugin.HIT_TEST_TERRAIN GEPlugin.HIT_TEST_BUILDINGS

這樣你就可以針對的HitTest建築物而不是針對定製的3D模型......

略有可用點擊自定義3D模型的解決方案可能是這個issue中描述的解決方案,使用其他「可事件」不可見地標來檢測點擊。

豆蔻代碼hittesting的excample

// EDIT2:

我在當前項目中使用的解決方案聽起來好像是:

創建邊框與polygons每一個「點擊事件recieving定製3d模型' 多邊形可以接收點擊事件

google.earth.addEventListener(polygonPlacemark, 'click', function(event) { 
    alert('placemark bounding box clicked'); 
});