cesium(vue3)实现 绕点飞行 取消绕点飞行

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;
  }
}

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值