1. 功能介绍
实现视角围绕一点旋转视角飞行效果
2. 主要代码
2.1 绕点飞行
entity 为已创建的点或者是已添加的模型 可以在调用方法是传来
也可以传经纬度 把我注销掉的entity打开 传入经纬度
var heading = ref(0); // 朝向
// 存储飞行漫游
var tickListener;
// 环绕点飞行漫游
const flyToPoint = (entity) => {
// 创建/选择一个中心点
// var entity = viewer.entities.add({
// position: Cesium.Cartesian3.fromDegrees(121.31097971036714, 39.49691615081849),
// point: {
// color: Cesium.Color.RED.withAlpha(0),
// pixelSize: 0
// }
// });
var offset = new Cesium.HeadingPitchRange(Cesium.Math.toRadians(heading.value), -Cesium.Math.toRadians(30), 5500);
viewer.zoomTo(entity, offset).then(function () {
// 添加事件监听器,并保存引用
tickListener = function () {
heading.value += 0.1;
offset = new Cesium.HeadingPitchRange(Cesium.Math.toRadians(heading.value), -Cesium.Math.toRadians(30), 5500);
viewer.zoomTo(entity, offset);
viewer.scene.screenSpaceCameraController.enableInputs = false;
};
viewer.clock.onTick.addEventListener(tickListener); // 添加事件监听器
});
}
2.2 取消绕点飞
// 取消飞行漫游
const cancelFly = () => {
console.log(' 取消飞行漫游');
if (tickListener) {
// 从时钟的tick事件中移除监听器
viewer.clock.onTick.removeEventListener(tickListener);
// 重新启用屏幕空间相机控制器
viewer.scene.screenSpaceCameraController.enableInputs = true;
}
}