相机类,它由位置、方向和视锥体定义。 视锥体(viewing frustum)由6个(上、下、左、右、近、远)平面限定,
每个平面可由Cartesian4对象表示,其中x,y和z分量定义垂直于平面的单位向量,w分量是平面距原点/相机位置的距离。
Name | Type | Description |
---|---|---|
scene |
Scene | 场景对象 |
Example:
// 创建一个相机对象,并设置相机各参数
var camera = new LSGlobe.Camera(scene);
camera.position = new LSGlobe.Cartesian3();
camera.direction = LSGlobe.Cartesian3.negate(LSGlobe.Cartesian3.UNIT_Z, new LSGlobe.Cartesian3());
camera.up = LSGlobe.Cartesian3.clone(LSGlobe.Cartesian3.UNIT_Y);
camera.frustum.fov = LSGlobe.Math.PI_OVER_THREE;
camera.frustum.near = 1.0;
camera.frustum.far = 2.0;
Members
-
标量乘以像机位置并在设置像机后将其添加回来查看矩形。值为零表示摄像机将查看整个
Camera#DEFAULT_VIEW_RECTANGLE
值, 大于零的值将使其原理范围,并且小于零的值将使其移动到接近范围。 -
相机的默认可视域矩形
-
获取像机更改后将引发的percentageChanged事件
-
constrainedAxis : Cartesian3
-
如果设置此属性值,相机沿着任一个坐标轴都不能够旋转
-
Default Value:
undefined
-
当没有提供参数给观察方法时,相机观察角度的默认值
-
Default Value:
Math.PI / 60.0
-
当没有提供参数给相机移动方法时,相机移动时的默认值
-
Default Value:
100000.0;
-
当没有提供参数给旋转方法时,相机旋转角度默认值
-
Default Value:
Math.PI / 3600.0
-
当没有提供参数给缩放方法时,相机缩放角度默认值
-
Default Value:
100000.0;
-
direction : Cartesian3
-
像机方向
-
readonlydirectionWC : Cartesian3
-
获取相机在世界坐标系中的观察方向
-
视野中的空间区域,即视锥体
-
Default Value:
- PerspectiveFrustum
- PerspectiveOffCenterFrustum
- OrthographicFrustum
PerspectiveFrustum()
See:
-
获取相机朝向(弧度)
-
获取相机变换的逆变换
-
Default Value:
Matrix4.IDENTITY
-
视图矩阵的逆矩阵
See:
-
系数乘以地图大小,用于确定从表面缩小时获取相机位置的位置。 默认值是1.5。 只对2D有效,地图可旋转
-
Default Value:
1.5
-
相机停止移动时的响应事件
-
相机开始移动时的响应事件
-
在更改的事件发生之前摄像机必须更改的数量。 该值是[0,1]范围内的百分比
-
Default Value:
0.5
-
获取相机的俯仰角(弧度)
-
position : Cartesian3
-
像机位置
-
readonlypositionCartographic : Cartographic
-
获取相机的地理坐标系位置。 在2D地图显示的时候,当相机在地图之外, 返回的经纬度的值很有可能在有效的经纬度范围之外
-
readonlypositionWC : Cartesian3
-
获取相机在世界坐标系中的位置
-
right : Cartesian3
-
相机的右(right)方向
-
readonlyrightWC : Cartesian3
-
获取相机在世界坐标系下的right方向
-
获取相机的翻滚角(弧度)
-
获取相机的坐标系。变换的逆变换被应用于视图矩阵
-
Default Value:
Matrix4.IDENTITY
-
up : Cartesian3
-
相机的上(up)方向
-
readonlyupWC : Cartesian3
-
获取相机在世界坐标系下的UP方向
-
获取视图矩阵
-
当前使用的视景体;场景绘制使用的是调整后的视景体
Methods
-
相机从当前位置飞行到新的空间位置
Name Type Description options
Object 对象具有以下属性: Name Type Description destination
Cartesian3 | Rectangle 相机在WGS84世界坐标系中的最终位置,或是自顶向下视图中可见的矩形区域 orientation
Object optional 包含了方位(direction)、上方向(up)以及方位角(heading)、俯仰角(pitch)、 滚动角(roll)属性的对象。 默认情况下,3D中方位(direction)指向框架中心,在Columbus视图中指向负z方向。 在3D中上方向(up)指向本地北方向,而在Columbus视图中指向正y方向。在无限滚动模式下,二维视图不使用方向(orientation) duration
Number optional 飞行持续时间(以秒为单位)。如果省略,由飞行距离计算合理的持续时间 complete
Camera~FlightCompleteCallback optional 飞行完成时执行的功能 cancel
Camera~FlightCancelledCallback optional 飞行取消时执行的功能 endTransform
Matrix4 optional 飞行完成时相机将处于的参考系的变换矩阵 maximumHeight
Number optional 飞行中的最大高度 easingFunction
EasingFunction | EasingFunction~Callback optional 释放时调用功能 Throws:
-
DeveloperError : 若提供了方向(direction )、上方向(up)两者之一,则两者都需要提供
Example:
// 1. 飞向通过top-down视图表示的位置 viewer.camera.flyTo({ destination : LSGlobe.Cartesian3.fromDegrees(-117.16, 32.71, 15000.0) }); // 2. 飞向通过top-down视图表示的矩形 viewer.camera.flyTo({ destination : LSGlobe.Rectangle.fromDegrees(west, south, east, north) }); // 3. 飞向利用单位向量表示方向(orientatin)的位置 viewer.camera.flyTo({ destination : LSGlobe.Cartesian3.fromDegrees(-122.19, 46.25, 5000.0), orientation : { direction : new LSGlobe.Cartesian3(-0.04231243104240401, -0.20123236049443421, -0.97862924300734), up : new LSGlobe.Cartesian3(-0.47934589305293746, -0.8553216253114552, 0.1966022179118339) } }); // 4. 飞向利用方位角(heading)、俯仰角(pitch)、滚动角(roll)表示方向(orientatin)的位置 viewer.camera.flyTo({ destination : LSGlobe.Cartesian3.fromDegrees(-122.19, 46.25, 5000.0), orientation : { heading : LSGlobe.Math.toRadians(175.0), pitch : LSGlobe.Math.toRadians(-35.0), roll : 0.0 } });
-
-
通过目标(target)和偏移(offset)设置相机位置、方向。 目标(target)以世界坐标方式表示; 偏移(offset)是在以目标为中心的本地“东-北-上”参考系中的笛卡尔坐标或“方位角/俯仰角/范围(heading/pitch/range)”。 如果偏移(offset)由笛卡尔坐标表示,它表示距离由变换矩阵定义的参考系中心的偏移量。 如果偏移(offset)由“heading/pitch/range” 表示,方位角(heading)和俯仰角(pitch)的角度由根据变换矩阵定义的参考系确定,方位角(heading)从y轴开始朝向x轴增加, 俯仰角(pitch)为从xy平面的旋转角度,正的俯仰角位于平面下方,负的俯仰角位于平面上方。 范围(range)为距中心点的距离。 在2D中必须为自上而下视图,相机位于俯视目标的上方,目标上方的高度值是偏移量的大小。方位角根据偏移确定, 如果不能从偏移确定方位角,则方位角为北方向
Name Type Description axis
Cartesian3 目标在世界坐标中的空间位置 offset
Cartesian3 | HeadingPitchRange 距以目标为中心的本地“东-北-上”参考系的偏移 Throws:
-
DeveloperError : 变形时不支持lookAt方法
Example:
// 1. 利用笛卡尔坐标设置偏移 var center = LSGlobe.Cartesian3.fromDegrees(-98.0, 40.0); viewer.camera.lookAt(center, new LSGlobe.Cartesian3(0.0, -4790000.0, 3930000.0)); // 2. 利用HeadingPitchRange设置偏移 var center = LSGlobe.Cartesian3.fromDegrees(-72.0, 40.0); var heading = LSGlobe.Math.toRadians(50.0); var pitch = LSGlobe.Math.toRadians(-20.0); var range = 5000.0; viewer.camera.lookAt(center, new LSGlobe.HeadingPitchRange(heading, pitch, range));
-
-
沿着相机的up反方向把相机旋转一定的角度
Name Type Description amount
Number optional 旋转量,弧度为单位,默认值是defaultLookAmount See:
-
沿着相机的left方向把相机旋转一定的角度
Name Type Description amount
Number optional 旋转量,弧度为单位,默认值是defaultLookAmount See:
-
沿着相机的right方向把相机旋转一定的角度
Name Type Description amount
Number optional 旋转量,弧度为单位,默认值是defaultLookAmount See:
-
沿着相机的up方向把相机旋转一定的角度
Name Type Description amount
Number optional 旋转量,弧度为单位,默认值是defaultLookAmount See:
-
通过在一定方向上进行平移,改变相机的位置
Name Type Description direction
Cartesian3 移动的方向 amount
Number optional 平移量,米为单位,默认值是defaultMoveAmount -
沿着与相机观察相反的方向平移,改变相机位置
Name Type Description amount
Number optional 平移量,米为单位,默认值是defaultMoveAmount See:
-
沿着与UP相反的方向平移,改变相机位置
Name Type Description amount
Number optional 平移量,米为单位,默认值是defaultMoveAmount See:
-
沿着相机的观察方向平移,改变相机的位置
Name Type Description amount
Number optional 平移量,米为单位,默认值是defaultMoveAmount See:
-
沿着相机的right方向的反方向平移,改变相机位置
Name Type Description amount
Number optional 平移量,米为单位,默认值是defaultMoveAmount See:
-
沿着相机的right方向平移,改变相机位置
Name Type Description amount
Number optional 平移量,米为单位,默认值是defaultMoveAmount See:
-
沿着相机的UP方向平移,改变相机位置
Name Type Description amount
Number optional 平移量,米为单位,默认值是defaultMoveAmount See:
-
设置相机位置、方向和变换
Name Type Description options
Object 对象具有以下属性: Name Type Description destination
Cartesian3 | Rectangle optional 相机在WGS84世界坐标系中的最终位置,或是自顶向下视图中可见的矩形区域 orientation
Object optional 包含了方位(direction)、上方向(up)以及方位角(heading)、俯仰角(pitch)、 滚动角(roll)属性的对象。 默认情况下,3D中方位(direction)指向框架中心,在Columbus视图中指向负z方向。 在3D中上方向(up)指向本地北方向,而在Columbus视图中指向正y方向。在无限滚动模式下,二维视图不使用方向(orientation) endTransform
Matrix4 optional 表示相机参考坐标系的变换矩阵 Example:
// 1.通过top-down视图设置位置 viewer.camera.setView({ destination : LSGlobe.Cartesian3.fromDegrees(-117.16, 32.71, 15000.0) }); // 2. 通过方位角、俯仰角、滚动角设置视图 viewer.camera.setView({ destination : cartesianPosition, orientation: { heading : LSGlobe.Math.toRadians(90.0), // east, default value is 0.0 (north) pitch : LSGlobe.Math.toRadians(-90), // default value (looking down) roll : 0.0 // default value } }); // 3. 相机空间位置不变,改变方位角、俯仰角和滚动角 viewer.camera.setView({ orientation: { heading : LSGlobe.Math.toRadians(90.0), // east, default value is 0.0 (north) pitch : LSGlobe.Math.toRadians(-90), // default value (looking down) roll : 0.0 // default value } }); // 4. 通过自顶向下视图查看矩形 viewer.camera.setView({ destination : LSGlobe.Rectangle.fromDegrees(west, south, east, north) }); // 5. 通过使用单位向量的方向(orientation)设置相机位置 viewer.camera.setView({ destination : LSGlobe.Cartesian3.fromDegrees(-122.19, 46.25, 5000.0), orientation : { direction : new LSGlobe.Cartesian3(-0.04231243104240401, -0.20123236049443421, -0.97862924300734), up : new LSGlobe.Cartesian3(-0.47934589305293746, -0.8553216253114552, 0.1966022179118339) } });
Type Definitions
-
飞行取消时将执行的功能
-
飞行完成时将执行的功能