是否可以从实时数据kml进行动态巡视

时间:2013-05-22 23:42:40

标签: dynamic real-time kml google-earth google-earth-plugin

有没有办法让游戏从脚本获取坐标并更新游览?

我从python脚本获取数据然后想要实时更新飞行中的coordiantes但不知道该怎么做

我尝试使用网络链接,但它没有工作,我不确定我是否使用animatedupdate

2 个答案:

答案 0 :(得分:0)

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

  1. load-tour.kml - 加载tour.kml的NetworkLink文件
  2. tour.kml - 包含原始KML游览数据的文件
  3. update-tour.kml - 一个加载更新的tour new-data.kml的NetworkLink文件
  4. new-data.kml - 更新原始tour.kml的NetworkLinkControl
  5. 以下是四个文件,为了简洁,我错过了KML声明和根元素......

    <强>负载tour.kml

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

    <强> tour.kml

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

    update-tour.kml

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

    新-data.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

答案 1 :(得分:0)

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

<强> root.kml

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

<强> new_camera.kml

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

除了更改Tour名称元素之外,我还没有成功更新来自NetworkLink的游戏。我尝试启动循环巡视,然后从NetworkLinkControl更改播放列表或FlyTo元素,但如果我手动重新启动巡视,我只会看到相机更改。