目录
cesium提供了三种方式,可以对camera进行操作,这三种方式,有三个共同的参数,heading,pitch,roll,那么,这三个参数分别是什么。
一、参数介绍
heading
作用:设置头朝东南西北四个方向看
弧度制, 北(0.0),东(90度的弧度),南(180度的弧度),西(-90度的弧度)
pitch
作用:围绕Y轴旋转,弧度制,水平看(0.0),抬头看(90度的弧度),低头看(-90度的弧度)
roll
作用:围绕X轴旋转,弧度制,正常看(0.0) ,倒立看(180度的弧度)
二、操作定位
1、setView方法
有三种计算视角的方式:
(1)Cartesian3
viewer.camera.setView({
destination : Cesium.Cartesian3.fromDegrees(116.435314,39.960521, 15000.0), // 设置位置
orientation: {
heading : Cesium.Math.toRadians(20.0), // 方向
pitch : Cesium.Math.toRadians(-90.0),// 倾斜角度
roll :
}
});
(2)rectangle
viewer.camera.setView({
destination: Cesium.Rectangle.fromDegrees(0.0, 20.0, 10.0, 30.0),//west, south, east, north
orientation: {
heading : Cesium.Math.toRadians(20.0), // 方向
pitch : Cesium.Math.toRadians(-90.0),// 倾斜角度
roll :
} });
(3)直接坐标
// 设置相机位置
viewer.camera.setView({
// 设置相机位置
destination: {
x: -2388744.838660655,
y: 5388613.2412665,
z: 2429186.308668634
},
orientation: {
// 初始视角
heading: 1.0639406240008213,
pitch: -0.013688041766217074,
roll: 0.00002273530734786533
}
});
2、flyTo方法
view.camera.flyTo({
destination :Cesium.Cartesian3.fromDegrees(116.435314,39.960521, 15000.0), // 设置位置
orientation: {
heading :Cesium.Math.toRadians(),
pitch :Cesium.Math.toRadians(-90.0),// 倾斜角度
roll :
},
duration:, // 设置飞行持续时间,默认会根据距离来计算
complete:function () {
// 到达位置后执行的回调函数
},
cancle:function () {
// 如果取消飞行则会调用此函数
},
pitchAdjustHeight:, // 如果摄像机飞越高于该值,则调整俯仰俯仰的俯仰角度,并将地球保持在视口中。
maximumHeight:, // 相机最大飞行高度
flyOverLongitude:, // 如果到达目的地有2种方式,设置具体值后会强制选择方向飞过这个经度(这个,很好用)
});
3、lookAt方法
center = Cesium.Cartesian3.fromDegrees(114.44455, 22.0444);//camera视野的中心点坐标
heading = Cesium.Math.toRadians();
pitch = Cesium.Math.toRadians(-20.0);
range = 5000.0;
view.camera.lookAt(center, Cesium.HeadingPitchRange(heading, pitch, range));