• 【Cesium创造属于你的地球】相机系统


    相机系统里面有setView,flyTo,lookAt,viewBoundingsphere这几种方法,以下是相关的使用方法,学起来!!!

    setView

    该方法可以直接切换相机视口,从而不需要通过一个飞入的效果切换

    1. viewer.camera.setView({
    2. // 设置坐标
    3. destination:position,
    4. // 设置视口方向
    5. orientation: {
    6. // 当值为0时,沿着Y轴旋转,方向为正北方向
    7. heading: Cesium.Math.toRadians(0),
    8. // pitch控制视口的上下旋转,也就是X轴旋转,当数值为-90的话,就是俯视地面的
    9. pitch: Cesium.Math.toRadians(-90),
    10. // roll控制视口的翻转角度,也就是Z轴旋转
    11. roll: 0
    12. }
    13. })

    flyTo

    flyTo该方法可以直接切换相机视口,从而不需要通过一个飞入的效果切换

    1. viewer.camera.flyTo({
    2. // 设置坐标
    3. destination:position,
    4. // 设置视口方向
    5. orientation: {
    6. // 当值为0时,沿着Y轴旋转,方向为正北方向
    7. heading: Cesium.Math.toRadians(0),
    8. // pitch控制视口的上下旋转,也就是X轴旋转,当数值为-90的话,就是俯视地面的
    9. pitch: Cesium.Math.toRadians(-90),
    10. // roll控制视口的翻转角度,也就是Z轴旋转
    11. roll: 0
    12. },
    13. duration: 10
    14. })

    lookAt

    方法使用,lookAt方法一般适用于锁定某个目标场景的位置

    1. // lookAt方法使用,lookAt方法一般适用于锁定某个目标场景的位置
    2. // 设置相机的方位,只需要设置经度和纬度
    3. const center = Cesium.Cartesian3.fromDegrees(116, 39);
    4. // 设置水平旋转视口方向的角度
    5. const heading = Cesium.Math.toRadians(50);
    6. // 设置垂直旋转视口方向的角度
    7. const pitch = Cesium.Math.toRadians(-30);
    8. // 设置距离目标点的距离
    9. const range = 1000;
    10. // // 使用lookAt方法​// 凉哥参数,第一个是目标位置信息,第二个是视口方向信息​ viewer.camera.lookAt(center,new Cesium.HeadingPitchRange(heading,pitch,range))
    1. /** viewboundingsphere方法,和setView方法一样,没有一个飞入切换效果,它和setView的不同点在于它可以给定一个指定的目标点,可以从那个多个角度观测事物为了更好的来展现viewboundingsphere的效果,我们可以使用entity的方法来加载一个飞机模型,供我们观测headingPitchRollQuaternion中有两个参数,分别是位置信息和旋转角度信息(垂直旋转,反转角度均为0)
    2. **/
    3. var orientation = Cesium.Transforms.headingPitchRollQuaternion(position,new Cesium.HeadingPitchRange(-90,0,0))
    4. var modelGLB = ''
    5. var entity = viewer.entities.add({
    6. name:'../Apps/SampleData/models/CesiumAir/Cesium_Air.glb' ,
    7. position:position,
    8. orientation:orientation,
    9. // 存储模型信息
    10. model:{
    11. // 设置模型信息
    12. uri:'../Apps/SampleData/models/CesiumAir/Cesium_Air.glb',
    13. // 设置模型最小缩放信息
    14. minimunPixelSize:100,
    15. // 设置模型缩放最大比例
    16. maximunScale:10000,
    17. // 设置模型是否显示
    18. show:true
    19. }
    20. })
    21. // 使用viewboundingsphere方法
    22. // 使用BoundingSphere方法,第一个变量是位置信息,第二个是物体与我们的距离信息
    23. // viewboundingsphere的第二个参数设置的是相机视口朝向信息,我们使用的是HeadingPitchRollQuaternion
    24. viewer.camera.viewBoundingSphere(new Cesium.BoundingSphere(position,20),new Cesium.HeadingPitchRange(0,0,0))

    写在最后

    好啦今天的cesium小知识就到这里啦,最后祝大家十一快乐,也祝祖国母亲繁荣昌盛💪🏻

  • 相关阅读:
    HarmonyOS 多音频播放并发政策及音频管理解析
    数据预处理之后,将数据保存到文件中时报错:找不到文件名,如何解决?
    DAB-DETR
    【步骤详解】Docker一键部署微服务详细教程
    算法趣题-Q33
    RHCSA认证考试---2.给系统配置默认的存储库
    BehaviorTree之概念讲解(一)
    【自然语言处理(NLP)】基于注意力机制的中-英机器翻译
    np.ravel()和np.flatten()
    【无标题】
  • 原文地址:https://blog.csdn.net/zhaochen1127/article/details/133499068