以下是一段示例代码,目的是使某一物体运动并进行相机跟踪

该代码创建了一个CesiumViewer对象,并在其中添加了一个名为“飞机”的实体对象。该实体具有模型、位置和路径三个属性。通过定义一个包含三个时空点的数组,并使用插值算法计算出物体运动的位置,然后将其赋值给实体的位置属性。同时设置时钟参数和时间线参数

// 创建一个实体对象
var entity = this.viewer.entities.add({
    // 为实体指定名称
    name : '飞机',
    // 为实体指定模型
    model:{
          uri:"../../../static/3DModel/higokumaru__honkai_impact_3rd/scene.gltf",
          show:true,
          scale: 5000.0 ,
          silhouetteColor : Cesium.Color.YELLOW,
          silhouetteSize : 0,
          colorBlendMode:Cesium.ColorBlendMode.MIX,
          colorBlendAmount: 0,
          heightReference: Cesium.HeightReference.CLAMP_TO_GROUND
        },
    // 为实体指定位置属性
    position : Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883),
    // 为实体指定路径属性
    path : {
        resolution : 1,
        material : new Cesium.PolylineGlowMaterialProperty({
            glowPower : 0.1,
            color : Cesium.Color.YELLOW
        }),
        width : 10
    }
});

// 定义一个数组,存储物体运动的时间和位置点
var positionData = [
    {time:0, longitude:-75.59777, latitude:40.03883},
    {time:15, longitude:-50.50, latitude:35.14},
    {time:30, longitude:-35.53, latitude:34.82},
];

// 创建一个采样器对象,用于插值计算物体运动的位置
var positionSampler = new Cesium.SampledPositionProperty();

positionSampler.setInterpolationOptions({
   interpolationDegree : 2,
   interpolationAlgorithm : Cesium.HermitePolynomialApproximation
});

var start = Cesium.JulianDate.fromDate(new Date(2023, 2, 29));

// // 遍历数组,将时间和位置点添加到采样器对象中
for (var i = 0; i < positionData.length; i++) {
    var data = positionData[i];
    var time =new Cesium.JulianDate.addSeconds(start, data.time, new Cesium.JulianDate());
    var position =new Cesium.Cartesian3.fromDegrees(data.longitude, data.latitude);
    positionSampler.addSample(time, position);
}


entity.position = positionSampler;
console.log(entity.position);


// 定义时钟参数,设置开始时间、结束时间和当前时间

var stop = Cesium.JulianDate.addSeconds(start, 30 ,new Cesium.JulianDate());

this.viewer.clock.startTime = start.clone();
this.viewer.clock.stopTime = stop.clone();
this.viewer.clock.currentTime = start.clone();
this.viewer.clock.clockRange = Cesium.ClockRange.LOOP_STOP;
this.viewer.clock.multiplier = 1;

// 定义时间线参数,设置开始时间、结束时间和当前时间刻度颜色
this.viewer.timeline.zoomTo(start.clone(), stop.clone());
this.viewer.timeline.makeLabel(time => time.toString());
this.viewer.timeline.updateFromClock();
this.viewer.timeline.scrubColor= "rgb(255 ,255 ,255)";

// 设置视角跟随物体运动,并显示信息框
this.viewer.trackedEntity = entity;