有没有办法让游戏从脚本获取坐标并更新游览?
我从python脚本获取数据然后想要实时更新飞行中的coordiantes但不知道该怎么做
我尝试使用网络链接,但它没有工作,我不确定我是否使用animatedupdate
答案 0 :(得分:0)
我还没有尝试过,但可以在KML中使用NetworkLinkControl。您需要总共四个KML文件才能实现它。在您的场景中,前三个可以是硬编码,第四个可以从您的python脚本生成。
以下是四个文件,为了简洁,我错过了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
答案 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元素,但如果我手动重新启动巡视,我只会看到相机更改。