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 )
相关推荐
灵感__idea38 分钟前
JavaScript高级程序设计(第5版):好的编程就是掌控感
前端·javascript·程序员
小赖同学啊2 小时前
GIS地理信息系统建设:高精度3D建模
3d
烛阴2 小时前
Mix
前端·webgl
代码续发2 小时前
前端组件梳理
前端
试图让你心动3 小时前
原生input添加删除图标类似vue里面移入显示删除[jquery]
前端·vue.js·jquery
陈不知代码3 小时前
uniapp创建vue3+ts+pinia+sass项目
前端·uni-app·sass
小王码农记3 小时前
sass中@mixin与 @include
前端·sass
陈琦鹏3 小时前
轻松管理 WebSocket 连接!easy-websocket-client
前端·vue.js·websocket
hui函数4 小时前
掌握JavaScript函数封装与作用域
前端·javascript
行板Andante4 小时前
前端设计中如何在鼠标悬浮时同步修改块内样式
前端