【问题标题】:Google Earth: Disable flyToView on runtimeGoogle 地球:在运行时禁用 flyToView
【发布时间】:2013-04-08 04:23:11
【问题描述】:

我目前正在制作一个使用谷歌地球显示路径的应用程序。此路径会定期更新,我使用网络链接将 google earth 连接到 KML 文件。

问题是每次谷歌地球收到来自 KML 的更新时,它都会重置视图。我想禁用此功能,但仍然能够在启动时“飞”到特定位置。

我已经尝试在网络链接上使用 setFlyToView(false),但这导致根本没有飞行。我想要的是,谷歌地球在开始时飞到地标的位置,然后当它更新时 - 从 KML 文件通过网络链接 - 它不会飞到任何地方。

当 google earth 已经运行时,有没有办法访问和更改选项?如果可能的话,我可以在初始化时使用 setFlyToView(true),然后在 google earth 已经将视图更改为我想要的位置时使用 setFlyToView(false),从而禁用视图的更新,而不是初始视图位置。

提前致谢!

【问题讨论】:

  • 您使用什么 JavaScript API 来加载/操作 KML?如果 javascript 正在加载 KML 文件 - flyToView 是否设置为 1 作为 KML 文件中 NetworkLink 的子元素(注意元素名称区分大小写)?

标签: javascript google-earth


【解决方案1】:

如果您在 NetworkLink 中设置了 flyToView 1,就会出现这种情况。检查 flyToView 元素是 NetworkLink 而不是 Link 的子元素。您使用的 JavaScript API 生成的 KML 可能未正确设置 flyToView 或不受支持。

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

此外,您可能希望使用添加到 NetworkLink 的 LookAt 或 Camera 元素来覆盖默认视图。

【讨论】:

  • 感谢您的回答。我目前正在 JavaScript 中创建网络链接并将 flyToView 设置为 0。就像你建议的那样,我改用 lookAt。这导致了我想做的事情。现在问题将得到正确的 Long/Lat,因为它是动态的并且由 flyToView 自动处理。
猜你喜欢
  • 1970-01-01
  • 2015-10-03
  • 1970-01-01
  • 1970-01-01
  • 2010-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-21
相关资源
最近更新 更多