我正尝试使用GPS设备记录的gx:Track
数据渲染KML文件。我知道Cesium希望可以对这种类型的数据进行动画处理,但是我试图弄清楚如何仅显示整个数据集。到目前为止,我有这个:
viewer.dataSources.add(Cesium.KmlDataSource.load('../track.kml',
{
camera: viewer.scene.camera,
canvas: viewer.scene.canvas,
clampToGround:true
})
);
可以正确地加载数据,但只显示开始和完成实体,因为我认为它是希望对数据进行动画处理,这时它将开始画一条线。我将如何指示Cesium立即显示所有数据?
以下是数据的示例:
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2">
<Document>
<open>1</open>
<visibility>1</visibility>
<Style id="trackStyle">
<LineStyle>
<color>ffDB9034</color>
<width>4</width>
</LineStyle>
<PolyStyle>
<color>80DB9034</color>
</PolyStyle>
</Style>
<Style id="pathStyle">
<LineStyle>
<color>f8000080</color>
<width>8</width>
</LineStyle>
</Style>
<Placemark>
<name>KIWI-KHPN</name>
<styleUrl>#trackStyle</styleUrl>
<gx:Track>
<altitudeMode>absolute</altitudeMode>
<extrude>1</extrude>
<gx:interpolate>1</gx:interpolate>
<when>2018-07-01T22:43:58.790Z</when>
<gx:coord>-69.71002757555777 43.96408896897357 34.341796874999964</gx:coord>
<when>2018-07-01T22:43:59.744Z</when>
<gx:coord>-69.71001986420686 43.96409190263968 10.939052581787099</gx:coord>
<when>2018-07-01T22:44:00.745Z</when>
<gx:coord>-69.70998742624158 43.96408662204068 11.535732269287097</gx:coord>
<when>2018-07-01T22:44:02.748Z</when>
答案 0 :(得分:0)
我不确定这是否是最好的解决方案,但是从在Cesium论坛上发帖,我得到了建议,将时间提前。我没有尝试为每个上传的文件设定多长时间设置时钟,而是将其设置为一个很高的数字,到目前为止,还没有任何问题。
代码如下:
viewer.dataSources.add(Cesium.KmlDataSource.load('../flight.kml', options)).then(function(dataSource){
viewer.clock.shouldAnimate = false;
viewer.clock.currentTime.secondsOfDay = 9999999999999999999999;
});
我很乐意将积分提供给可以提供更好解决方案的人!