1

有没有办法进行从脚本中获取坐标并更新游览的游览?

我从 python 脚本中获取数据,然后想实时更新飞行到巡回赛中的协调员,但不知道该怎么做

我尝试使用网络链接,但它不起作用,我不确定我是否使用动画更新

4

2 回答 2

0

我还没有尝试过,但可以在 KML 中使用 NetworkLinkControl。您总共需要四个 KML 文件来实现它。在您的场景中,前三个可以是硬编码的,第四个可以从您的 python 脚本生成。

  1. load-tour.kml - 加载 tour.kml 的 NetworkLink 文件
  2. tour.kml - 包含原始 KML 旅游数据的文件
  3. update-tour.kml - 加载更新后的游览 new-data.kml 的 NetworkLink 文件
  4. new-data.kml - 更新原始 tour.kml 的 NetworkLinkControl

这是四个文件,为简洁起见,我错过了 KML 声明和根元素...

加载-tour.kml

<NetworkLink>
  <name>load</name>
  <Link>
    <href>tour.kml</href>
  </Link>
</NetworkLink>

旅游.kml

<Document>
  <gx:Tour id="myTour">
    <name>tour</name>
    <gx:Playlist id="myPlaylist">
    <!-- existing tour data goes here -->
    </gx:Playlist>
  </gx:Tour>
</Document>

更新-tour.kml

<NetworkLink>
  <name>update</name>
  <Link>
    <href>new-data.kml</href>
  </Link>
</NetworkLink>

新数据.kml

<NetworkLinkControl>
  <Update>
    <targetHref>tour.kml</targetHref>
    <Change>
      <gx:Playlist id="myPlaylist">
        <!-- new tour data goes here -->
      </gx:Playlist>
    </Change>
  </Update>
</NetworkLinkControl>

这是有关 networklinkcontrol 及其在更新数据中的用途的文档。

https://developers.google.com/kml/documentation/kmlreference#networklinkcontrol

https://developers.google.com/kml/documentation/updates

于 2013-05-23T18:24:08.830 回答
0

您可以使用flytoView让 NetworkLink 自动更新相机位置。这不是真正的巡回赛,但工作方式类似。每次加载链接时,它都会飞到链接的 KML 中的新 LookAt 或 Camera 元素。

根.kml

<NetworkLink>
  <Link><href>new_camera.kml</href></Link>
  ...
  <flyToView>1</flyToView>
</NetworkLink>

new_camera.kml

<Document>
  <Camera>...
  or
  <LookAt>...
</Document>

除了更改巡回赛名称元素之外,我还没有成功从 NetworkLink 更新巡回赛。我尝试开始循环 Tour,然后从 NetworkLinkControl 更改 Playlist 或 FlyTo 元素,但如果我手动重新启动 Tour,我只会看到相机发生变化。

于 2016-07-02T17:46:49.793 回答