2013-04-02 34 views
0

我目前正在製作一個應用程序,使用Google地球來顯示路徑。此路徑將定期更新,並且我使用網絡鏈接將Google地球連接到KML文件。Google Earth:在運行時禁用flyToView

問題是,每次谷歌收到來自KML的更新時,它都會重置視圖。我想禁用此功能,但仍可以在啓動時「飛」到特定位置。

我試過在網絡鏈接上使用setFlyToView(false),但是這導致根本沒有飛行。我想要的是,谷歌地球在開始時飛到地標的位置,然後當它從KML文件通過網絡鏈接更新時,它不會在任何地方飛行。

當谷歌地球已經運行時,有沒有方法可以訪問和更改選項?如果可能的話,我可以在初始化時使用setFlyToView(true),然後在谷歌地球已經將視圖改變到我想要的位置時setFlyToView(false),從而禁用視圖更新,而不是初始視圖位置。

在此先感謝!

+0

您使用什麼JavaScript API來加載/操作KML?如果javascript正在加載KML文件 - 將flyToView設置爲1作爲KML文件中NetworkLink的子元素(注意元素名稱區分大小寫)? – JasonM1

回答

0

這就是如果您在NetworkLink中有flyToView set 1的行爲。檢查flyToView元素是NetworkLink的子元素,而不是鏈接。可能由您正在使用的JavaScript API生成的KML沒有正確設置flyToView,或者它不受支持。

<Document> 
    <visibility>1</visibility> 
    <NetworkLink> 
    <name>NE US Radar</name> 
    <refreshVisibility>1</refreshVisibility> 
    <flyToView>1</flyToView> 
    <Link>...</Link> 
    </NetworkLink> 
</Document> 

此外,您可能不想使用默認的視圖與LookAt或Camera元素添加到網絡鏈接飛。

+0

感謝您的回答。我目前正在JavaScript中創建網絡鏈接,並將flyToView設置爲0.並且就像您建議的那樣,我使用lookAt代替。這導致了我想要做的事情。現在問題將得到正確的Long/Lat,因爲它是動態的並且由flyToView自動處理。 –