Cesium-EarthSdk简单功能实现(二)——流动道路

Cesium-EarthSdk简单功能实现(二)——流动道路

效果:
在这里插入图片描述
代码: https://gitee.com/magic1412/earthsdk-vue-test

1、使用QGIS或ArcGIS将道路数据处理成如图所示json

oid为某条道路的唯一id,x和y分别为道路上节点的经纬度坐标

C:\Users\ZHANGX~1\AppData\Local\Temp\企业微信截图_16064656694255.png

2、加载并处理道路json
loadODLineData(dataFunc) {
  Cesium.Resource.fetchJson('./assets/json/line.json').then((data) => {
    var timeDuration = 5.0;
    var moveBaseDuration = 1.0;
    var type = null;
    var oldType = null;
    //点数组
    var ptList = []
    //线数组
    var busLines = [];
    data.map((item) => {
          type = item.oid
          if (type === oldType) {
            ptList.push([item.x * Math.PI / 180.0, item.y * Math.PI / 180.0])
          } else {
            if (oldType !== null) {
              busLines.push({
                positions: ptList,
                color: [Math.random() * 0.5 + 0.5, Math.random() * 0.8 + 0.2, 0.0, 1.0],
                width: 3.0,
                startTime: timeDuration * Math.random(),
                duration: moveBaseDuration + 1.0 * Math.random()
              });
            }
            ptList = []
            ptList.push([item.x * Math.PI / 180.0, item.y * Math.PI / 180.0])
          }
          oldType = type
        }
    )
    dataFunc(busLines, timeDuration);
  });
}
3,实例化Earthsdk的XE.Obj.ODLines类
this._odlines = new XE.Obj.ODLines(this._earth);
this._odlines.translucentPass = false;
//加载处理好的数据
this.loadODLineData((data, timeDuration) => {
  this._odlines.data = data;
  this._odlines.timeDuration = timeDuration;
  this._odlines.playing = true;
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值