cesium绕点(坐标点)飞行
// 相机看点的角度,如果大于0那么则是从地底往上看,所以要为负值,这里取-30度
let pitch = Cesium.Math.toRadians(-35);
// 给定飞行一周所需时间
let angle = 360 / 20;
// 给定相机距离点多少距离飞行
let distance = 5000;
let startTime = Cesium.JulianDate.fromDate(new Date());
let stopTime = Cesium.JulianDate.addSeconds(startTime, 30, new Cesium.JulianDate());
viewer.clock.startTime = startTime.clone(); // 开始时间
viewer.clock.stopTime = stopTime.clone(); // 结速时间
viewer.clock.currentTime = startTime.clone(); // 当前时间
viewer.clock.clockRange = Cesium.ClockRange.CLAMPED; // 行为方式
viewer.clock.clockStep = Cesium.ClockStep.SYSTEM_CLOCK; // 时钟设置为当前系统时间
// 当前heading
let initialHeading = viewer.camera.heading;
let Exection = function TimeExecution() {
// 当前已经过去的时间
let delTime = Cesium.JulianDate.secondsDifference(viewer.clock.currentTime, viewer.clock.startTime);
// 根据过去的时间,计算偏航角的变化
let heading = Cesium.Math.toRadians(delTime * angle) + initialHeading;
viewer.camera.lookAt(position, new Cesium.HeadingPitchRange(heading, pitch, distance));
if (Cesium.JulianDate.compare(viewer.clock.currentTime, viewer.clock.stopTime) >= 0) {
viewer.clock.onTick.removeEventListener(Exection);
}
};
viewer.clock.onTick.addEventListener(Exection);