使用 Cesium 渲染 gx:Track KML 数据

Render gx:Track KML data with Cesium

我正在尝试使用 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>

我不确定这是最好的解决方案,但在 Cesium 论坛上发帖后,我得到了将时钟调快的建议。我没有试图弄清楚为每个上传的文件设置时钟向前多远,而是将它设置为一个非常高的数字,到目前为止没有任何问题。

代码如下:

viewer.dataSources.add(Cesium.KmlDataSource.load('../flight.kml', options)).then(function(dataSource){
  viewer.clock.shouldAnimate = false;
  viewer.clock.currentTime.secondsOfDay = 9999999999999999999999;
});

我很乐意将积分分给能提供更好解决方案的人!