cesium相机

相机的视角主要属性有两个, destination 相机位置 和 orientation 相机的方位

视角飞入 flyTo

javascript 复制代码
// 经纬度
viewer.camera.flyTo({
    destination: Cesium.Cartesian3.fromDegrees(109.78, 28.36, 50000000),
});


// 矩形窗口  
viewer.camera.flyTo({
    destination:  Cesium.Rectangle.fromDegrees(110, 32, 112, 38),
});

视角修改 没有飞入动画 setView

javascript 复制代码
// 支持经纬高  同时可以设置 偏航heading 俯仰pitch   滚转roll  单位都是弧度
viewer.camera.setView({  
    destination : Cesium.Cartesian3.fromDegrees(110, 35, 5000000),  
    orientation: {  
        heading : 0.0,  
        pitch : -Cesium.Math.PI_OVER_TWO,  
        roll : 0.0  
    }  
});

// 同样支持矩形视角
viewer.camera.setView({  
    destination : Cesium.Rectangle.fromDegrees(west, south, east, north),,  
    orientation: {  
        heading : 0.0,  
        pitch : -Cesium.Math.PI_OVER_TWO,  
        roll : 0.0  
    }  
});

HeadingPitchRoll可以通过以 diretion、up的方式进行展示如图

javascript 复制代码
// direction 和 up 
viewer.camera.setView({
    destination : Cesium.Cartesian3.fromDegrees(-122.19, 46.25, 5000.0),  // 相机的位置
    orientation : {
         //相机视线方向矢量(WGS84系下)
        direction : new Cesium.Cartesian3(-0.042312, -0.201232, -0.978629),
            //相机的up方向矢量(WGS84系下)
        up : new Cesium.Cartesian3(-0.479345, -0.855321, 0.1966022)        
    }
});

视角锁定或跟踪 lookAt

javascript 复制代码
const target = Cesium.Cartesian3.fromDegrees(120.0, 30.0, 3000000)
/*
0:相机的朝向(Heading),表示正北方向
			
1:Cesium.Math.PI_OVER_TWO:相机的俯仰(Pitch),表示相机向下看,即朝向地球。
	【Cesium.Math.PI_OVER_TWO 等于 Math.PI / 2,即90度】 
	所以 "-Cesium.Math.PI_OVER_TWO 等于 -90度",即指向地面。
 2:是相机的范围(Range),
	表示,相机距离目标点的距离是`5000000`米。
*/
const offset = new Cesium.HeadingPitchRange(0, -Cesium.Math.PI_OVER_TWO, 5000000)

// lookAtTransform  第一个参数是 矩阵  第二个参数是HeadingPitchRange
viewer.camera.lookAtTransform(                   
    Cesium.Transforms.eastNorthUpToFixedFrame(target) ,offset )

// lookAt 第一个参数 是 笛卡尔坐标系 第二个参数是HeadingPitchRange
viewer.camera.lookAt( target, offset )
相关推荐
木斯佳5 分钟前
前端八股文面经大全:26届秋招滴滴校招前端一面面经-事件循环题解析
前端·状态模式
光影少年25 分钟前
react状态管理都有哪些及优缺点和应用场景
前端·react.js·前端框架
saber_andlibert2 小时前
TCMalloc底层实现
java·前端·网络
逍遥德2 小时前
如何学编程之01.理论篇.如何通过阅读代码来提高自己的编程能力?
前端·后端·程序人生·重构·软件构建·代码规范
冻感糕人~2 小时前
【珍藏必备】ReAct框架实战指南:从零开始构建AI智能体,让大模型学会思考与行动
java·前端·人工智能·react.js·大模型·就业·大模型学习
程序员agions2 小时前
2026年,“配置工程师“终于死绝了
前端·程序人生
alice--小文子2 小时前
cursor-mcp工具使用
java·服务器·前端
晚霞的不甘2 小时前
揭秘 CANN 内存管理:如何让大模型在小设备上“轻装上阵”?
前端·数据库·经验分享·flutter·3d
小迷糊的学习记录2 小时前
0.1 + 0.2 不等于 0.3
前端·javascript·面试
梦帮科技3 小时前
Node.js配置生成器CLI工具开发实战
前端·人工智能·windows·前端框架·node.js·json