Camera

new LSGlobe.Camera (scene)

相机由位置,方向和视锥台定义。

方向与视图形成正交基础,上和右=视图x上单位矢量。

视锥由6个平面定义。每个平面都由 Cartesian4 对象表示,其中x,y和z分量定义垂直于平面的单位矢量,w分量是从原点/相机位置开始的平面。
Name Type Description
scene Scene 现场。
Example:
// Create a camera looking down the negative z-axis, positioned at the origin,
// with a field of view of 60 degrees, and 1:1 aspect ratio.
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;
Demo:

Members

static LSGlobe.Camera.DEFAULT_OFFSET : HeadingPitchRange

相机飞行到包含边界球体的位置时使用的默认航向/俯仰/范围。

static LSGlobe.Camera.DEFAULT_VIEW_FACTOR : Number

设置为查看矩形的标量,可乘以摄像机位置,然后将其重新添加。零值表示相机将查看整个 Camera#DEFAULT_VIEW_RECTANGLE ,该值大于零会使它远离范围,而小于零的值会使它接近范围。

static LSGlobe.Camera.DEFAULT_VIEW_RECTANGLE : Rectangle

相机在创建时将查看的默认矩形。
获取当相机更改 percentageChanged 时将引发的事件。
如果设置,则相机将无法沿任一方向旋转超过该轴。
Default Value: undefined

defaultLookAmount : Number

不带参数时旋转相机的默认量提供给外观方法。
Default Value: Math.PI / 60.0

defaultMoveAmount : Number

不带参数时移动相机的默认数量提供给move方法。
Default Value: 100000.0;

defaultRotateAmount : Number

不带参数时旋转相机的默认量提供给旋转方法。
Default Value: Math.PI / 3600.0

defaultZoomAmount : Number

不带参数时移动相机的默认数量提供给缩放方法。
Default Value: 100000.0;
相机的观看方向。
获取以世界坐标表示的摄像机的视图方向。
视野中的区域。
Default Value: PerspectiveFrustum()
See:

readonly heading : Number

获取摄像机的弧度方向。

readonly inverseTransform : Matrix4

获取逆相机变换。
Default Value: Matrix4.IDENTITY

readonly inverseViewMatrix : Matrix4

获取逆视图矩阵。
See:

maximumZoomFactor : Number

该系数乘以用于确定在哪里固定摄像机位置的地图尺寸从表面缩小时。默认值为1.5。仅对2D有效,并且地图可以旋转。
Default Value: 1.5
获取相机停止移动时将引发的事件。
获取相机开始移动时将引发的事件。

percentageChanged : number

引发 changed 事件之前,相机必须更改的数量。该值是[0,1]范围内的百分比。
Default Value: 0.5

readonly pitch : Number

获取相机的弧度(弧度)。
摄像机的位置。

readonly positionCartographic : Cartographic

获取相机的 Cartographic 位置(经度和纬度)以弧度表示,高度以米表示。在2D和Columbus视图中,可以返回的经度和纬度在有效经度范围之外相机在地图外时的纬度和纬度。
获取相机在世界坐标中的位置。
相机的正确方向。
以世界坐标获取相机的正确方向。

readonly roll : Number

获取相机的弧度角。
获取相机的参考框架。此转换的逆过程附加到视图矩阵。
Default Value: Matrix4.IDENTITY
相机的向上方向。
获取世界坐标系中相机的向上方向。
获取视图矩阵。
See:

Methods

cameraToWorldCoordinates (cartesian, result ) Cartesian4

将矢量或点从相机的参考系转换为世界坐标。
Name Type Description
cartesian Cartesian4 要转换的向量或点。
result Cartesian4 可选 将结果存储到的对象。
Returns:
转换后的向量或点。

cameraToWorldCoordinatesPoint (cartesian, result ) Cartesian3

将一个点从摄像机的参考系转换为世界坐标。
Name Type Description
cartesian Cartesian3 转换点。
result Cartesian3 可选 将结果存储到的对象。
Returns:
转换点。

cameraToWorldCoordinatesVector (cartesian, result ) Cartesian3

将矢量从摄像机的参考系转换为世界坐标。
Name Type Description
cartesian Cartesian3 要转换的向量。
result Cartesian3 可选 将结果存储到的对象。
Returns:
转换后的向量。
取消当前的相机飞行并将相机留在其当前位置。如果没有进行任何飞行,则此功能不执行任何操作。

completeFlight ()

完成当前的相机飞行并将相机立即移动到其最终目的地。如果没有进行任何飞行,则此功能不执行任何操作。

computeViewRectangle ( ellipsoid , result ) Rectangle |undefined

计算椭球上的近似可见矩形。
Name Type Default Description
ellipsoid Ellipsoid Ellipsoid.WGS84 可选 您想知道可见区域的椭圆体。
result Rectangle 可选 存储结果的矩形
Returns:
可见的矩形;如果椭圆形根本不可见,则为undefined。

distanceToBoundingSphere (boundingSphere) Number

返回从相机到边界球的前端的距离。
Name Type Description
boundingSphere BoundingSphere 世界坐标系中的边界球。
Returns:
到边界球的距离。

flyHome ( duration )

将相机飞到主视图。使用 Camera#.DEFAULT_VIEW_RECTANGLE 进行设置3D场景的默认视图。二维和哥伦布视图的主视图显示了整个地图。
Name Type Description
duration Number 可选 飞行持续时间(以秒为单位)。如果省略,Cesium会尝试根据航班要行驶的距离来计算理想持续时间。请参见 Camera#flyTo
将相机从当前位置移动到新位置。
Name Type Description
options Object Object with the following properties:
Name Type Description
destination Cartesian3 | Rectangle 摄像机在WGS84(世界)坐标中的最终位置或从上向下视图中可见的矩形。
orientation Object 可选 包含方向和向上属性或航向,俯仰和横滚属性的对象。默认情况下,方向将指向在3D中朝向帧中心,在哥伦布视图中沿负z方向。向上方向将指向3D局部正北哥伦布视图中的y方向。在无限滚动模式下,二维不使用方向。
duration Number 可选 飞行持续时间(以秒为单位)。如果省略,Cesium会尝试根据航班要行驶的距离来计算理想时长。
complete Camera.FlightCompleteCallback 可选 飞行结束后执行的功能。
cancel Camera.FlightCancelledCallback 可选 取消航班后执行的功能。
endTransform Matrix4 可选 表示飞行完成后摄像机将位于的参考帧的变换矩阵。
maximumHeight Number 可选 飞行高峰时的最大高度。
pitchAdjustHeight Number 可选 如果相机的飞行角度高于该值,请在飞行过程中调整俯仰角度以向下看,并将地球保持在视口中。
flyOverLongitude Number 可选 地球上2点之间总是有两种方式。此选项会迫使相机选择战斗方向以在该经度上飞行。
flyOverLongitudeWeight Number 可选 仅在通过flyOverLongitude指定的lon上空飞行,只要该方式的时间不超过flyOverLongitudeWeight的短途时间。
convert Boolean 可选 是否将目的地从世界坐标转换为场景坐标(仅在不使用3D时相关)。默认为 true
easingFunction EasingFunction.Callback 可选 控制在飞行过程中如何插值时间。
Throws:
Example:
// 1. Fly to a position with a top-down view
viewer.camera.flyTo({
    destination : LSGlobe.Cartesian3.fromDegrees(-117.16, 32.71, 15000.0)
});

// 2. Fly to a Rectangle with a top-down view
viewer.camera.flyTo({
    destination : LSGlobe.Rectangle.fromDegrees(west, south, east, north)
});

// 3. Fly to a position with an orientation using unit vectors.
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. Fly to a position with an orientation using heading, pitch and roll.
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
    }
});

flyToBoundingSphere (boundingSphere, options )

将相机移到当前视图包含所提供的包围球的位置。

偏移是在以边界球的中心为中心的局部东-北-上参考系中的航向/俯仰/范围。航向角和俯仰角是在局部的东西向北参考系中定义的。航向是从y轴到x轴的角度。间距是从xy平面开始的旋转。正螺距角度在平面下方。负俯仰角在平面上方。范围是到中心的距离。如果范围是零,则将计算范围以使整个边界球都可见。

在2D和Columbus视图中,必须有一个俯视图。摄像机将被放置在目标上方并向下看。上方的高度目标将是范围。标题将与当地北部对齐。

Name Type Description
boundingSphere BoundingSphere 要查看的边界球,以世界坐标表示。
options Object 可选 具有以下属性的对象:
名称 类型 说明
持续时间 数字 可选 飞行持续时间(以秒为单位)。如果省略,Cesium会尝试根据航班要行驶的距离来计算理想时长。
offset HeadingPitchRange 可选 在局部东北朝上的参考框中,距目标的偏移量为中心。
complete Camera.FlightCompleteCallback 可选 飞行结束后执行的功能。
取消 Camera.FlightCancelledCallback 可选 取消航班后执行的功能。
endTransform Matrix4 可选 表示飞行完成后摄像机将位于的参考帧的变换矩阵。
maximumHeight 数字 可选 飞行高峰时的最大高度。
pitchAdjustHeight 数字 可选 如果相机的飞行角度高于该值,请在飞行过程中调整俯仰角度以向下看,并将地球保持在视口中。
flyOverLongitude 数字 可选 地球上2点之间总是有两种方式。此选项会迫使相机选择战斗方向以在该经度上飞行。
flyOverLongitudeWeight 数字 可选 仅在通过flyOverLongitude指定的lon上空飞行,只要该方式的时间不超过flyOverLongitudeWeight的短途时间。
easingFunction EasingFunction.Callback 可选 控制在飞行过程中如何插值时间。

getMagnitude () Number

获取摄像机位置的大小。在3D中,这是矢量幅度。在2D和哥伦布视图,这是到地图的距离。
Returns:
头寸的大小。

getPickRay (windowPosition, result ) Ray

从相机位置到 windowPosition 处的像素创建光线在世界坐标系中。
Name Type Description
windowPosition Cartesian2 像素的x和y坐标。
result Ray 可选 将结果存储到的对象。
Returns:
返回 笛卡尔3 射线的位置和方向。

getPixelSize (boundingSphere, drawingBufferWidth, drawingBufferHeight) Number

返回以米为单位的像素大小。
Name Type Description
boundingSphere BoundingSphere 世界坐标系中的边界球。
drawingBufferWidth Number 绘图缓冲区的宽度。
drawingBufferHeight Number 绘图缓冲区的高度。
Returns:
像素大小(以米为单位)。

getRectangleCameraCoordinates (rectangle, result ) Cartesian3

获取在椭圆形或地图上查看矩形所需的相机位置
Name Type Description
rectangle Rectangle 要查看的矩形。
result Cartesian3 可选 查看矩形所需的摄像机位置
Returns:
查看矩形所需的相机位置

look (axis, angle )

围绕 axis 旋转每个相机的方向矢量达 angle
Name Type Description
axis Cartesian3 旋转轴。
angle Number 可选 旋转角度(以弧度为单位)。默认为 defaultLookAmount
See:

lookAt (target, offset)

使用目标和偏移量设置摄像机的位置和方向。目标必须在世界坐标。在以目标为中心的局部东北向上参考系中,偏移量可以是笛卡尔或航向/俯仰/范围。如果偏移量是笛卡尔坐标,则它是相对于由转换矩阵定义的参考帧中心的偏移量。如果偏移如果是航向/俯仰/范围,则航向和俯仰角在变换矩阵定义的参考系中定义。航向是从y轴到x轴的角度。间距是从xy平面开始的旋转。正螺距角度在平面下方。负俯仰角在平面上方。范围是到中心的距离。在2D模式下,必须有一个俯视图。摄像机将被放置在目标上方并向下看。上方的高度目标将是偏移量的大小。航向将根据偏移量确定。如果标题不能根据偏移量确定,航向将为北。
Name Type Description
target Cartesian3 世界坐标中的目标位置。
offset Cartesian3 | HeadingPitchRange 在局部东北朝上的参考框中,距目标的偏移量为中心。
Throws:
Example:
// 1. Using a cartesian offset
var center = LSGlobe.Cartesian3.fromDegrees(-98.0, 40.0);
viewer.camera.lookAt(center, new LSGlobe.Cartesian3(0.0, -4790000.0, 3930000.0));

// 2. Using a HeadingPitchRange offset
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));

lookAtTransform (transform, offset )

使用目标和变换矩阵设置相机的位置和方向。偏移量可以是笛卡尔坐标或航向/俯仰/范围。如果偏移量是笛卡尔坐标,则它是相对于由转换矩阵定义的参考帧中心的偏移量。如果偏移如果是航向/俯仰/范围,则航向和俯仰角在变换矩阵定义的参考系中定义。航向是从y轴到x轴的角度。间距是从xy平面开始的旋转。正螺距角度在平面下方。负俯仰角在平面上方。范围是到中心的距离。在2D模式下,必须有一个俯视图。相机将放置在参考框中心上方。上方的高度目标将是偏移量的大小。航向将根据偏移量确定。如果标题不能根据偏移量确定,航向将为北。
Name Type Description
transform Matrix4 定义参考框架的变换矩阵。
offset Cartesian3 | HeadingPitchRange 可选 在以目标为中心的参考帧中与目标的偏移。
Throws:
Example:
// 1. Using a cartesian offset
var transform = LSGlobe.Transforms.eastNorthUpToFixedFrame(LSGlobe.Cartesian3.fromDegrees(-98.0, 40.0));
viewer.camera.lookAtTransform(transform, new LSGlobe.Cartesian3(0.0, -4790000.0, 3930000.0));

// 2. Using a HeadingPitchRange offset
var transform = LSGlobe.Transforms.eastNorthUpToFixedFrame(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.lookAtTransform(transform, new LSGlobe.HeadingPitchRange(heading, pitch, range));

lookDown ( amount )

以弧度为单位,沿相反方向围绕其右向量旋转相机如果不在2D模式下,则其向上向量的坐标。
Name Type Description
amount Number 可选 弧度旋转的量。默认为 defaultLookAmount
See:

lookLeft ( amount )

以弧度为单位,沿相反方向围绕其向上矢量旋转相机如果不在2D模式下,则其右向量的坐标
Name Type Description
amount Number 可选 弧度旋转的量。默认为 defaultLookAmount
See:

lookRight ( amount )

以弧度为单位,以弧度为单位围绕其向上矢量旋转相机如果不在2D模式下,则其右向量的坐标
Name Type Description
amount Number 可选 弧度旋转的量。默认为 defaultLookAmount
See:

lookUp ( amount )

以弧度为单位,以弧度为单位围绕其右向量旋转相机如果不在2D模式下,则其向上向量的坐标。
Name Type Description
amount Number 可选 弧度旋转的量。默认为 defaultLookAmount
See:

move (direction, amount )

沿 方向 amount 转换摄像机的位置。
Name Type Description
direction Cartesian3 移动的方向。
amount Number 可选 移动的量(以米为单位)。默认为 defaultMoveAmount
See:

moveBackward ( amount )

沿相反方向按 amount 转换相机的位置的视角向量。在2D模式下,这将缩小相机而不是平移相机的位置。
Name Type Description
amount Number 可选 移动的量(以米为单位)。默认为 defaultMoveAmount
See:

moveDown ( amount )

沿相反方向按 amount 转换相机的位置相机的向上向量。
Name Type Description
amount Number 可选 移动的量(以米为单位)。默认为 defaultMoveAmount
See:

moveForward ( amount )

沿相机的视图矢量按 amount 转换相机的位置。在2D模式下,这将放大相机而不是平移相机的位置。
Name Type Description
amount Number 可选 移动的量(以米为单位)。默认为 defaultMoveAmount
See:

moveLeft ( amount )

沿相反方向按 amount 转换相机的位置相机的正确向量。
Name Type Description
amount Number 可选 移动的量(以米为单位)。默认为 defaultMoveAmount
See:

moveRight ( amount )

沿相机的右向量按 amount 转换相机的位置。
Name Type Description
amount Number 可选 移动的量(以米为单位)。默认为 defaultMoveAmount
See:

moveUp ( amount )

沿相机的向上矢量按 amount 转换相机的位置。
Name Type Description
amount Number 可选 移动的量(以米为单位)。默认为 defaultMoveAmount
See:

pickEllipsoid (windowPosition, ellipsoid , result ) Cartesian3 |undefined

选择一个椭球或地图。
Name Type Default Description
windowPosition Cartesian2 像素的x和y坐标。
ellipsoid Ellipsoid Ellipsoid.WGS84 可选 要拾取的椭球。
result Cartesian3 可选 将结果存储到的对象。
Returns:
如果选择了椭球或地图,返回世界上椭球或地图表面上的点坐标。如果未选择椭球或地图,则返回undefined。
Example:
var canvas = viewer.scene.canvas;
var center = new LSGlobe.Cartesian2(canvas.clientWidth / 2.0, canvas.clientHeight / 2.0);
var ellipsoid = viewer.scene.globe.ellipsoid;
var result = viewer.camera.pickEllipsoid(center, ellipsoid);

rotate (axis, angle )

将摄像机绕 axis 旋转 angle 。距离相机位置到相机参考框中心的距离保持不变。
Name Type Description
axis Cartesian3 在世界坐标系中给定的旋转轴。
angle Number 可选 旋转角度(以弧度为单位)。默认为 defaultRotateAmount
See:

rotateDown ( angle )

围绕摄像机参考框的中心向下旋转角度。
Name Type Description
angle Number 可选 旋转角度(以弧度为单位)。默认为 defaultRotateAmount
See:

rotateLeft ( angle )

围绕相机参考框的中心向左旋转角度。
Name Type Description
angle Number 可选 旋转角度(以弧度为单位)。默认为 defaultRotateAmount
See:

rotateRight ( angle )

围绕相机参考框的中心向右旋转角度。
Name Type Description
angle Number 可选 旋转角度(以弧度为单位)。默认为 defaultRotateAmount
See:

rotateUp ( angle )

围绕摄像机参考框架的中心向上旋转角度。
Name Type Description
angle Number 可选 旋转角度(以弧度为单位)。默认为 defaultRotateAmount
See:

setView (options)

设置相机的位置,方向和变换。
Name Type Description
options Object 具有以下属性的对象:
名称 类型 说明
目的地 Cartesian3 | 矩形 可选 摄像机在WGS84(世界)坐标中的最终位置或从上向下视图中可见的矩形。
方向 对象 可选 包含方向和向上属性或航向,俯仰和横滚属性的对象。默认情况下,方向将指向在3D中朝向帧中心,在哥伦布视图中沿负z方向。向上方向将指向3D局部正北哥伦布视图中的y方向。在无限滚动模式下,二维不使用方向。
endTransform Matrix4 可选 转换代表摄像机参考帧的矩阵。
转换 布尔值 可选 是否将目的地从世界坐标转换为场景坐标(仅在不使用3D时相关)。默认为 true
Example:
// 1. Set position with a top-down view
viewer.camera.setView({
    destination : LSGlobe.Cartesian3.fromDegrees(-117.16, 32.71, 15000.0)
});

// 2 Set view with heading, pitch and roll
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. Change heading, pitch and roll with the camera position remaining the same.
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. View rectangle with a top-down view
viewer.camera.setView({
    destination : LSGlobe.Rectangle.fromDegrees(west, south, east, north)
});

// 5. Set position with an orientation using unit vectors.
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)
    }
});

switchToOrthographicFrustum ()

将平截头体/投影切换为正交。此功能在2D模式下是无操作的,将始终是正交的。

switchToPerspectiveFrustum ()

将平截头体/投影切换为透视。此功能是2D模式下的无操作项,必须始终正交。

twistLeft ( amount )

围绕其方向矢量逆时针旋转照相机一定量(以弧度为单位)。
Name Type Description
amount Number 可选 弧度旋转的量。默认为 defaultLookAmount
See:

twistRight ( amount )

围绕其方向矢量顺时针旋转照相机一定量(以弧度为单位)。
Name Type Description
amount Number 可选 弧度旋转的量。默认为 defaultLookAmount
See:

viewBoundingSphere (boundingSphere, offset )

设置相机,使当前视图包含提供的边界球。

偏移量是在以边界球中心为中心的局部东北向上参考框中的航向/俯仰/范围。航向角和俯仰角是在局部的东西向北参考系中定义的。航向是从y轴到x轴的角度。间距是从xy平面开始的旋转。正螺距角度在平面下方。负俯仰角在平面上方。范围是到中心的距离。如果范围是零,则将计算范围以使整个边界球都可见。

在2D模式下,必须有一个俯视图。摄像机将被放置在目标上方并向下看。上方的高度目标将是范围。航向将根据偏移量确定。如果标题不能根据偏移量确定,航向将为北。

Name Type Description
boundingSphere BoundingSphere 要查看的边界球,以世界坐标表示。
offset HeadingPitchRange 可选 在局部东北朝上的参考框中,距目标的偏移量为中心。
Throws:

worldToCameraCoordinates (cartesian, result ) Cartesian4

将矢量或点从世界坐标转换为相机的参考系。
Name Type Description
cartesian Cartesian4 要转换的向量或点。
result Cartesian4 可选 将结果存储到的对象。
Returns:
转换后的向量或点。

worldToCameraCoordinatesPoint (cartesian, result ) Cartesian3

将点从世界坐标转换为相机的参考系。
Name Type Description
cartesian Cartesian3 转换点。
result Cartesian3 可选 将结果存储到的对象。
Returns:
转换点。

worldToCameraCoordinatesVector (cartesian, result ) Cartesian3

将矢量从世界坐标转换为相机的参考系。
Name Type Description
cartesian Cartesian3 要转换的向量。
result Cartesian3 可选 将结果存储到的对象。
Returns:
转换后的向量。

zoomIn ( amount )

沿相机的视图矢量缩放 amount
Name Type Description
amount Number 可选 移动量。默认为 defaultZoomAmount
See:

zoomOut ( amount )

沿 amount 的相反方向缩放相机的视角向量。
Name Type Description
amount Number 可选 移动量。默认为 defaultZoomAmount
See:

Type Definitions

LSGlobe.Camera.FlightCancelledCallback ()

取消航班时将执行的功能。

LSGlobe.Camera.FlightCompleteCallback ()

飞行结束后将执行的功能。