这是效果
我来讲一下关于GPS回放,我先说我的GPS回放不是模型按照固定线路行走,然后通过Animation控件和Timeline控件两个控件控制速度,因为这个百度一搜一堆源码,但是因为甲方爸爸需求,需要写一个关于画线跟小人一样有行走的动画效果。
这个需要用到Ceisum.js官方一个名字叫Cesium.CallbackProperty回调函数,
这个函数相当于一个for语句。
详细介绍我的思路
1.第一步先获取一个数组a的数据,然后延迟加载赋值给另一个数组b
2.然后数组b给position里Cesium.CallbackProperty回调函数里
3.便可以实现了
直接贴源码
var positionArr = [];
var positionArrtext = [];
var Arryshuju = [{ lon: 136.5555, lat: 37.555, time: 1626939020 }, { lon: 134.5555, lat: 37.555, time: 1626939000 }, { lon: 132.5555, lat: 37.555, time: 1626939000 }, { lon: 130.5555, lat: 37.555, time: 1626939000 }, { lon: 127.5555, lat: 37.555, time: 1626989000 }, { lon: 126.5555, lat: 37.555, time: 1626939100 }]
var i = 0;
function arrytext() {
setTimeout(function () {
//put your program here
if (i < Arryshuju.length) {
positionArr.push(Arryshuju[i].lon, Arryshuju[i].lat)
arrytext()
}
i = i + 1;
console.log(i)
}, 1000)
console.log(positionArr)
}
viewer.entities.add({
polyline: {
// This callback updates positions each frame .
positions: new Cesium.CallbackProperty(function (time, result) {
return Cesium.Cartesian3.fromDegreesArray(
positionArr,
Cesium.Ellipsoid.WGS84,
result
);
}, false),
width: 5,
material: Cesium.Color.RED,
},
});