由于最近接触到的内容需要使用到camera,花了点时间简单地研究了下这个东西.
在camera这个对象了,有很多方法,我觉得比较好用常用的有setView\lookAt\flyTo.首先谈一谈flyTo
viewer.camera.flyTo({
camera.flyTo({
destination: Cesium.Cartesian3.fromDegrees(-122.19, 46.25, 5000.0),
duration: 1,
orientation: {
heading: Cesium.Math.toRadians(),
pitch: Cesium.Math.toRadians(),
roll: Cesium.Math.toRadians()
},
});
});
flyTo方法可以产生相机视角飞行一段时间到达目的地的效果.
destination-相机目标位置.
duration-相机飞行的时间,秒为单位,值越小,速度越快.
orientation-相机镜头对准的方法.
heading-代表镜头左右方向,正值为右,负值为左,360度和0度是一样的
pitch-代表镜头上下方向,正值为上,负值为下.
roll-代表镜头左右倾斜.正值,向右倾斜,负值向左倾斜
camera.lookAt(target,offset):
这个方法使相机的镜头直接对准目标,target为焦点的位置,offset为偏移量(焦距).
target是世界坐标系下的位置,offset是在target为原点的基础上建立的x-y-z坐标(对应east-north-up)
比如:
var center = Cesium.Cartesian3.fromDegrees(-98.0, 40.0);
viewer.camera.lookAt(center, new Cesium.Cartesian3(0.0, -4790000.0, 3930000.0));
center就是镜头的目标位置
后面的offset值为(0,-4790000,3930000)意味着 相机离center X轴方向0,Y轴负方向4790000,Z轴正方向3930000.