Camera
优质
小牛编辑
140浏览
2023-12-01
new LSGlobe.Camera(scene)
Name | Type | Description |
---|---|---|
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
staticLSGlobe.Camera.DEFAULT_VIEW_FACTOR : Number
- 标量乘以像机位置并在设置像机后将其添加回来查看矩形。值为零表示摄像机将查看整个
Camera#DEFAULT_VIEW_RECTANGLE
值,大于零的值将使其原理范围,并且小于零的值将使其移动到接近范围。 staticLSGlobe.Camera.DEFAULT_VIEW_RECTANGLE : Rectangle
- 相机的默认可视域矩形
readonlychanged : Event
- 获取像机更改后将引发的percentageChanged事件
constrainedAxis : Cartesian3
- 如果设置此属性值,相机沿着任一个坐标轴都不能够旋转
- Default Value:
undefined
defaultLookAmount : Number
- 当没有提供参数给观察方法时,相机观察角度的默认值
- Default Value:
Math.PI / 60.0
defaultMoveAmount : Number
- 当没有提供参数给相机移动方法时,相机移动时的默认值
- Default Value:
100000.0;
defaultRotateAmount : Number
- 当没有提供参数给旋转方法时,相机旋转角度默认值
- Default Value:
Math.PI / 3600.0
defaultZoomAmount : Number
- 当没有提供参数给缩放方法时,相机缩放角度默认值
- Default Value:
100000.0;
direction : Cartesian3
- 像机方向
readonlydirectionWC : Cartesian3
- 获取相机在世界坐标系中的观察方向
frustum : Frustum
- 视野中的空间区域,即视锥体
- Default Value:
- PerspectiveFrustum
- PerspectiveOffCenterFrustum
- OrthographicFrustum
PerspectiveFrustum()
See:
readonlyheading : Number
- 获取相机朝向(弧度)
readonlyinverseTransform : Matrix4
- 获取相机变换的逆变换
- Default Value:
Matrix4.IDENTITY
readonlyinverseViewMatrix : Matrix4
- 视图矩阵的逆矩阵
maximumZoomFactor : Number
- 系数乘以地图大小,用于确定从表面缩小时获取相机位置的位置。 默认值是1.5。 只对2D有效,地图可旋转
- Default Value:
1.5
readonlymoveEnd : Event
- 相机停止移动时的响应事件
readonlymoveStart : Event
- 相机开始移动时的响应事件
percentageChanged : number
- 在更改的事件发生之前摄像机必须更改的数量。 该值是[0,1]范围内的百分比
- Default Value:
0.5
readonlypitch : Number
- 获取相机的俯仰角(弧度)
position : Cartesian3
- 像机位置
readonlypositionCartographic : Cartographic
- 获取相机的地理坐标系位置。 在2D地图显示的时候,当相机在地图之外,返回的经纬度的值很有可能在有效的经纬度范围之外
readonlypositionWC : Cartesian3
- 获取相机在世界坐标系中的位置
right : Cartesian3
- 相机的右(right)方向
readonlyrightWC : Cartesian3
- 获取相机在世界坐标系下的right方向
readonlyroll : Number
- 获取相机的翻滚角(弧度)
readonlytransform : Matrix4
- 获取相机的坐标系。变换的逆变换被应用于视图矩阵
- Default Value:
Matrix4.IDENTITY
up : Cartesian3
- 相机的上(up)方向
readonlyupWC : Cartesian3
- 获取相机在世界坐标系下的UP方向
readonlyviewMatrix : Matrix4
- 获取视图矩阵
workingFrustums : Array.<Frustum>
- 当前使用的视景体;场景绘制使用的是调整后的视景体
Methods
flyTo(options)
- 相机从当前位置飞行到新的空间位置
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
optional
飞行完成时执行的功能cancel
optional
飞行取消时执行的功能endTransform
Matrix4
optional
飞行完成时相机将处于的参考系的变换矩阵maximumHeight
Number
optional
飞行中的最大高度easingFunction
EasingFunction
|
EasingFunction~Callbackoptional
释放时调用功能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 }});
lookAt(axis, offset)
- 通过目标(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
目标在世界坐标中的空间位置 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));
lookDown(amount)
- 沿着相机的up反方向把相机旋转一定的角度
Name Type Description amount
Number
optional
旋转量,弧度为单位,默认值是defaultLookAmountSee:
lookLeft(amount)
- 沿着相机的left方向把相机旋转一定的角度
Name Type Description amount
Number
optional
旋转量,弧度为单位,默认值是defaultLookAmountSee:
lookRight(amount)
- 沿着相机的right方向把相机旋转一定的角度
Name Type Description amount
Number
optional
旋转量,弧度为单位,默认值是defaultLookAmountSee:
lookUp(amount)
- 沿着相机的up方向把相机旋转一定的角度
Name Type Description amount
Number
optional
旋转量,弧度为单位,默认值是defaultLookAmountSee:
move(direction, amount)
- 通过在一定方向上进行平移,改变相机的位置
Name Type Description direction
移动的方向 amount
Number
optional
平移量,米为单位,默认值是defaultMoveAmount moveBackward(amount)
- 沿着与相机观察相反的方向平移,改变相机位置
Name Type Description amount
Number
optional
平移量,米为单位,默认值是defaultMoveAmount moveDown(amount)
- 沿着与UP相反的方向平移,改变相机位置
Name Type Description amount
Number
optional
平移量,米为单位,默认值是defaultMoveAmountSee:
moveForward(amount)
- 沿着相机的观察方向平移,改变相机的位置
Name Type Description amount
Number
optional
平移量,米为单位,默认值是defaultMoveAmount moveLeft(amount)
- 沿着相机的right方向的反方向平移,改变相机位置
Name Type Description amount
Number
optional
平移量,米为单位,默认值是defaultMoveAmountSee:
moveRight(amount)
- 沿着相机的right方向平移,改变相机位置
Name Type Description amount
Number
optional
平移量,米为单位,默认值是defaultMoveAmountSee:
moveUp(amount)
- 沿着相机的UP方向平移,改变相机位置
Name Type Description amount
Number
optional
平移量,米为单位,默认值是defaultMoveAmountSee:
setView(options)
- 设置相机位置、方向和变换
Name Type Description options
Object
对象具有以下属性: Name Type Description destination
Cartesian3
|
Rectangleoptional
相机在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
FlightCancelledCallback()
- 飞行取消时将执行的功能
FlightCompleteCallback()
- 飞行完成时将执行的功能