2013-04-02 30 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自动处理。 –