2013-05-01 94 views
1

是否有可能有互動元素(如多邊形響應拖動,點擊事件)在谷歌地球(我特別需要谷歌地球,谷歌不是地球插件!) 文檔似乎並不有幫助因爲大部分活動都已經轉向該插件,但有關項目正在使用Google地球。我知道我已經完全進入JavaScript和氣球內的WebKit,但是我可以使用JavaScript訪問KML元素,並指定事件監聽器呢?谷歌地球互動元素

UPDATE: 比方說,我想用谷歌地球來控制網絡攝像頭。 KML將顯示相機視場的區域。我希望能夠拖動該區域,讓JavaScript處理拖動並調用可以相應地旋轉網絡攝像機的Web服務。

+0

你能等互動行爲,闡述要回應,除了響應點擊或谷歌地球拖動事件? – JasonM1 2013-05-01 15:34:40

回答

1

直接回應在谷歌地球的多邊形點擊拖動事件(使用GE的API之外,插件)不爲您提供太多的選擇。使用GE API很簡單,但在Google地球客戶端中,您無法直接響應移動或拖動地標。此外,一旦地標發送到客戶端,它的位置(如果移動)不能通過客戶端JavaScript訪問併發送回服務器。

有許多互動技術的KML和谷歌地球使用,其中一些可能與你想要做什麼工作。

  • 您可以在說明框提供控制或配置選項HTML表單自定義顯示或更改網絡攝像頭的位置:

    對於攝像頭的控制,你可以展示上,下,左,右按鍵(甚至可以縮放或傾斜),然後點擊任何調用後端控制器來移動攝像頭的按鈕。操作的輸出可以使用NetworkLinkControl來更新已經在Google地球中加載的KML。

  • 您可以考慮通過後端KML生成服務指定viewFormat的NetworkLinks。您可以指定一個網絡鏈接刷新和彙報與如果視圖改變視圖/攝像機的信息和/或其他客戶端參數的後端服務。您可以響應查看更改(放大/縮小,平移,傾斜等)並相應地更改狀態。如果您使用onStop進一步限制NetworkLink更新,則可以防止用戶在移動過程中進行增量更新,並且只有在用戶停止移動後才發送刷新更新(推測用戶正在查看內容)。

的viewFormat會給您可以訪問谷歌地球以下客戶端屬性:

[lookatLon], [lookatLat], [lookatRange], [lookatTilt], [lookatHeading] 
[lookatTerrainLon], [lookatTerrainLat], [lookatTerrainAlt] 
[cameraLon], [cameraLat], [cameraAlt] 
[horizFov], [vertFov] 
[horizPixels], [vertPixels] 
[terrainEnabled] 
+0

假設我想使用Google地球來控制網絡攝像頭。 KML將顯示相機視場的區域。我希望能夠拖動該區域,讓JavaScript處理拖動並調用可以相應地旋轉網絡攝像機的Web服務。 – 2013-05-01 15:59:27

+0

相機區域是由地標上的顯式區域還是多邊形幾何的邊界表示的? GE不允許用戶編輯區域,多邊形可以有非正方形形狀,因此終端用戶如何「拖動」該區域非常重要。您可以在地圖上的攝像頭視圖中心點放置一個圖標,並且只需將用戶移動到新的位置即可。 – JasonM1 2013-05-01 20:03:47

+0

我在想象一個表示視野的多邊形。但是任何一種可拖動的視覺元素都將朝着正確的方向邁出一步? – 2013-05-01 21:55:34