cesium SceneModePicker工具切换哥伦布视图 2D 3D时摄像机定位指定位置

36 篇文章 0 订阅
16 篇文章 5 订阅
本文介绍了如何使用Cesium的sceneModePicker工具在2D、3D和哥伦布视图间平滑切换,并在切换过程中保持摄像机定位在特定位置。通过设置动画延时为0来消除切换动画,利用beforeExecute事件监听器调整摄像机视角。这些方法有助于提升用户体验并实现精准的地图展示。
摘要由CSDN通过智能技术生成

cesium SceneModePicker工具切换哥伦布视图 2D 3D时摄像机定位指定位置

1.设置动画延时

viewer.sceneModePicker.viewModel.duration = 0;
Cesium.Camera.DEFAULT_VIEW_RECTANGLE = Cesium.Rectangle.fromDegrees(80, 22, 130, 50);
Cesium.Camera.DEFAULT_VIEW_FACTOR = 0.1; // 摄像机到地图的距离放大倍数
viewer.camera.flyHome(0);

viewer.sceneModePicker.viewModel.duration = 0.0;//去掉二三维切换动画效果
设置这个参数,二三维切换的时候位置就会保持原来的了
原理: cesium底层的代码做了一个判断,如果延时参数大于0,就缩放到全球显示一个切换动画,设成0就没这个动画了

2.结合sceneModePicker事件

在这里插入图片描述

Command

在这里插入图片描述

viewer.sceneModePicker.viewModel.morphTo2D.beforeExecute.addEventListener(function(a) {
    viewer.camera.setView({
        destination: Cesium.Cartesian3.fromDegrees(105, 33, 10000000)
    });
});
viewer.sceneModePicker.viewModel.morphToColumbusView.beforeExecute.addEventListener(function(a) {
    viewer.camera.setView({
        destination: Cesium.Cartesian3.fromDegrees(105, 33, 10000000)
    });
});
viewer.sceneModePicker.viewModel.morphTo3D.beforeExecute.addEventListener(function(a) {
    viewer.camera.setView({
        destination: Cesium.Rectangle.fromDegrees(80, 22, 130, 50),
    });
});
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值