相机系统有setView、flyTo、lookAt、viewBoundingsphere等方法,下面是相关的使用方法。
flyTo具有空中飞行逐步切换视域的效果,还可设置飞行时间;
setView方法可直接切换相机视口,从而不需要通过一个飞入的效果切换;
lookAt方法在定位后会锁定位置,无法使用鼠标中键改变视角;
viewboundingsphere方法,和setView方法一样,没有一个飞入切换效果,它和setView的不同点在于它可以给定一个指定的目标点,可以从多个角度观测事物。
1、setView方法
<script type="module">const viewer = new Cesium.Viewer('cesiumContainer',{animation:false,timeline:falseconst position= Cesium.Cartesian3.fromDegrees(116.38,39.9,1500);viewer.camera.setView({//设置坐标destination:position,//设置视口方向orientation: {//当值为0,沿着Y轴旋转,方向为正北方向heading:Cesium.Math.toRadians(0),//控制视口的上下旋转,即X轴旋转,-90代表俯视地面pitch:Cesium.Math.toRadians(-90),//控制视口的翻转角度,即Z轴旋转roll:0},});</script>
2、flyTo方法
<script type="module">const viewer = new Cesium.Viewer('cesiumContainer',{animation:false,timeline:falseconst position= Cesium.Cartesian3.fromDegrees(116.38,39.9,1500);viewer.camera.flyTo({destination:position,orientation: {heading:Cesium.Math.toRadians(0),pitch:Cesium.Math.toRadians(-90),roll:0},duration:5 //设置飞行时间,单位为秒});</script>
3、lookAt方法
<script type="module">const viewer = new Cesium.Viewer('cesiumContainer',{animation:false,timeline:false});// 设置相机的方位,只需要设置经度和纬度const center = Cesium.Cartesian3.fromDegrees(116.39,39.91);// 设置水平旋转视口方向的角度const heading = Cesium.Math.toRadians(50);// 设置垂直旋转视口方向的角度const pitch = Cesium.Math.toRadians(-90);// 设置距离目标点的距离const range = 2500;// 第一个是目标位置信息,第二个是视口方向信息 viewer.camera.lookAt(center, new Cesium.HeadingPitchRange(heading, pitch, range));</script>
4、viewboundingsphere方法
<script type="module">const viewer = new Cesium.Viewer('cesiumContainer',{animation:false,timeline:false});const position= Cesium.Cartesian3.fromDegrees(116.38,39.9,1500);//headingPitchRollQuaternion中有两个参数,分别是位置信息和旋转角度信息(垂直旋转,反转角度均为0) var orientation = Cesium.Transforms.headingPitchRollQuaternion(position,new Cesium.HeadingPitchRange(-90,0,0));//var modelGLB = '';var entity = viewer.entities.add({//name:'../testdata/Cesium_Air.glb' ,position:position,orientation:orientation,// 存储模型信息model:{// 设置模型信息uri:"../testdata/Cesium_Air.glb",// 设置模型最小缩放信息minimunPixelSize:100,// 设置模型缩放最大比例maximunScale:10000,// 设置模型是否显示show:true}})// 使用BoundingSphere方法,第一个变量是位置信息,第二个是物体与我们的距离信息// viewboundingsphere的第二个参数设置的是相机视口朝向信息,我们使用的是HeadingPitchRollQuaternionviewer.camera.viewBoundingSphere(new Cesium.BoundingSphere(position,20),new Cesium.HeadingPitchRange(0,0,0))</script>