当前使用的 Cesium 版本为 v1.80.0。
viewer.camera.flyTo({
destination : Cesium.Cartesian3.fromDegrees(-122.19, 46.25, 5000.0),
orientation : {
heading : Cesium.Math.toRadians(175.0), // 方向
pitch : Cesium.Math.toRadians(-35.0), // 倾斜角度
roll : 0.0 // 旋转角度
},
duration :5,
complete: function() {
...
},
cancle: function() {
...
},
maximunHeight: 5000,
flyOverLongitude: 100
});
viewer的camera.flyTo一般会传入一个对象,对象里面描述了指定的属性,常用的如下:
destination属性,必传属性,类型为Cartesian3,通常用来传入一个Cartesian3空间坐标,不过介于一般我们从后台拿到的数据都是经纬度,所以不能直接传入经纬度,得通过Cesium自带的转换方法转换成Cesium认识的坐标,具体方法为: Cesium.Cartesian3.fromDegrees(经度, 纬度, 高度),三个参数的类型皆为Number,其中高度的单位为米。
orientation属性,可选属性,类型为Object,orientation属性是一个包含方向和向上属性或航向,俯仰和横滚属性的对象。默认情况下,方向将指向在3D中朝向帧中心,在哥伦布视图中沿负z方向。向上方向将指向3D局部正北哥伦布视图中的y方向。在无限滚动模式下,二维不使用方向。一般我们会用到三个参数:heading、pitch和roll。
这个三个属性就是Cesium提供的用来控制摄像头方向的属性,roll是围绕X轴旋转,pitch 是围绕Y轴旋转,
heading是围绕Z轴旋转,也就是下图中的Yaw。它们三者的单位皆为度,支持单浮点。
duration属性,可选属性,用来设置相机飞行所用的时间,默认会自动根据距离来计算,类型为Number,单位为秒。
complete属性,可选属性,用于存放一个函数,并将会在相机飞行结束时进行调用。
cancle属性,可选属性,用于存放一个函数,如果取消飞行会调用该函数。
maximunHeight属性,可选属性,设置相机最大飞行高度,默认无上限。
flyOverLongitude属性,可选属性,如果存在该属性,那么相机在飞行的时候会始终进过该经度。