EarthSDK Camera

相机管理类

new Camera()

Classes

Immersion
Interaction
Navigator
Viewport

Members

readonlyflying : boolean

是否正在飞行

readonlyimmersion : Camera.Immersion

沉浸式管理

readonlyinteraction : Camera.Interaction

交互类
指北针管理

position : Array.<number>

位置 [经度,纬度,高度]
Default Value: [0, 0, 0]

rotation : Array.<number>

姿态 [偏航角,俯仰角,翻转角]
Default Value: [0, 0, 0]

readonlyviewport : Camera.Viewport

视口管理

Methods

flyAround(position, viewDistance, rotation, flyToDuration, aroundSpeed)

相机环绕飞行
Name Type Default Description
position Array.<number> 目标位置, 形式如:[经度, 纬度, 高度] 其中经纬度的单位是弧度,高度的单位是米。
viewDistance number optional 环绕距离,默认为当前相机到目标点距离, 单位是米。
rotation Array.<number> optional 相机飞入后的姿态控制,从什么角度观察目标,形式如: [偏航角, 俯仰角, 翻转角], 单位是弧度。
flyToDuration number 3 optional 环绕飞行之前飞向目标代理的时间,如果是0,则直接跳转,默认为3秒
aroundSpeed number optional 环绕速度,单位是弧度/秒

flyTo(position, viewDistance, rotation, duration)

相机飞入
Name Type Description
position Array.<number> 目标位置, 形式如:[经度, 纬度, 高度] 其中经纬度的单位是弧度,高度的单位是米。
viewDistance number optional 距离目标多远距离时停下,默认为0,即直接飞到目标点处,单位是米。
rotation Array.<number> optional 相机飞入后的姿态控制,从什么角度观察目标,形式如: [偏航角, 俯仰角, 翻转角], 单位是弧度。
duration number optional 飞行持续时间,如果是0,则直接跳转,单位是秒。
Example:
// 示例1
// 相机直接飞入北京(116.39, 39.9)的位置,高度100米。相机位于目标点上。
earth.camera.flyTo([116.39*Math.PI/180, 39.9*Math.PI/180, 100])

// 示例2
// 相机直接飞向北京(116.39, 39.9)的位置,高度100米的目标,再距离目标点1000米的距离停下来,此时目标点刚好位置屏幕中心位置。
earth.camera.flyTo([116.39*Math.PI/180, 39.9*Math.PI/180, 100], 1000);

// 示例3
// 相机直接飞向北京(116.39, 39.9)的位置,高度100米的目标,再距离目标点1000米的距离停下来,此时目标点刚好位置屏幕中心位置。
// 同时相机的方向是正东向,向下倾斜30度。
// 相机方向是这样的 朝北是0度,朝东是90度,朝南是180度,朝西是270度。抬头看天的俯仰角是90度,俯视地面是-90度。
earth.camera.flyTo([116.39*Math.PI/180, 39.9*Math.PI/180, 100], 1000, [90*Math.PI/180, -30*Math.PI/180, 0]);

// 特别说明:
// 注意示例中使用度数是方便理解,实际使用时,需要转换成弧度(乘上Math.PI/180)
// 为了和Cesium保持一致(Cartographic,Cartesian),EarthSDK里面凡是涉及到角度的单位一律用弧度,凡是使用长度的单位一律用米。
// 实际上计算机地层中关于角度的计算都是使用弧度的,比如JS中的Math.cos/Math.sin等所有的角度计算操作。