渲染gx:使用铯跟踪KML数据

时间:2018-07-03 21:09:10

标签: xml 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>

1 个答案:

答案 0 :(得分:0)

我不确定这是否是最好的解决方案,但是从在Cesium论坛上发帖,我得到了建议,将时间提前。我没有尝试为每个上传的文件设定多长时间设置时钟,而是将其设置为一个很高的数字,到目前为止,还没有任何问题。

代码如下:

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

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