相机由位置,方向和视锥台定义。
方向与视图形成正交基础,上和右=视图x上单位矢量。
视锥由6个平面定义。每个平面都由
方向与视图形成正交基础,上和右=视图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
相机飞行到包含边界球体的位置时使用的默认航向/俯仰/范围。
设置为查看矩形的标量,可乘以摄像机位置,然后将其重新添加。零值表示相机将查看整个
Camera#DEFAULT_VIEW_RECTANGLE
,该值大于零会使它远离范围,而小于零的值会使它接近范围。
static LSGlobe.Camera.DEFAULT_VIEW_RECTANGLE : Rectangle
相机在创建时将查看的默认矩形。
readonly changed : Event
获取当相机更改
percentageChanged
时将引发的事件。
constrainedAxis : Cartesian3
如果设置,则相机将无法沿任一方向旋转超过该轴。
-
Default Value:
undefined
不带参数时旋转相机的默认量提供给外观方法。
-
Default Value:
Math.PI / 60.0
不带参数时移动相机的默认数量提供给move方法。
-
Default Value:
100000.0;
不带参数时旋转相机的默认量提供给旋转方法。
-
Default Value:
Math.PI / 3600.0
不带参数时移动相机的默认数量提供给缩放方法。
-
Default Value:
100000.0;
direction : Cartesian3
相机的观看方向。
readonly directionWC : Cartesian3
获取以世界坐标表示的摄像机的视图方向。
frustum : PerspectiveFrustum | PerspectiveOffCenterFrustum | OrthographicFrustum
视野中的区域。
-
Default Value:
PerspectiveFrustum()
See:
获取摄像机的弧度方向。
readonly inverseTransform : Matrix4
获取逆相机变换。
-
Default Value:
Matrix4.IDENTITY
readonly inverseViewMatrix : Matrix4
获取逆视图矩阵。
See:
该系数乘以用于确定在哪里固定摄像机位置的地图尺寸从表面缩小时。默认值为1.5。仅对2D有效,并且地图可以旋转。
-
Default Value:
1.5
readonly moveEnd : Event
获取相机停止移动时将引发的事件。
readonly moveStart : Event
获取相机开始移动时将引发的事件。
引发
changed
事件之前,相机必须更改的数量。该值是[0,1]范围内的百分比。
-
Default Value:
0.5
获取相机的弧度(弧度)。
position : Cartesian3
摄像机的位置。
readonly positionCartographic : Cartographic
获取相机的
Cartographic
位置(经度和纬度)以弧度表示,高度以米表示。在2D和Columbus视图中,可以返回的经度和纬度在有效经度范围之外相机在地图外时的纬度和纬度。
readonly positionWC : Cartesian3
获取相机在世界坐标中的位置。
right : Cartesian3
相机的正确方向。
readonly rightWC : Cartesian3
以世界坐标获取相机的正确方向。
获取相机的弧度角。
readonly transform : Matrix4
获取相机的参考框架。此转换的逆过程附加到视图矩阵。
-
Default Value:
Matrix4.IDENTITY
相机的向上方向。
readonly upWC : Cartesian3
获取世界坐标系中相机的向上方向。
readonly viewMatrix : Matrix4
获取视图矩阵。
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:
转换后的向量。
取消当前的相机飞行并将相机留在其当前位置。如果没有进行任何飞行,则此功能不执行任何操作。
完成当前的相机飞行并将相机立即移动到其最终目的地。如果没有进行任何飞行,则此功能不执行任何操作。
computeViewRectangle ( ellipsoid , result ) → Rectangle |undefined
计算椭球上的近似可见矩形。
Name | Type | Default | Description |
---|---|---|---|
ellipsoid
|
Ellipsoid |
Ellipsoid.WGS84
|
可选 您想知道可见区域的椭圆体。 |
result
|
Rectangle | 可选 存储结果的矩形 |
Returns:
可见的矩形;如果椭圆形根本不可见,则为undefined。
返回从相机到边界球的前端的距离。
Name | Type | Description |
---|---|---|
boundingSphere
|
BoundingSphere | 世界坐标系中的边界球。 |
Returns:
到边界球的距离。
将相机飞到主视图。使用
Camera#.DEFAULT_VIEW_RECTANGLE
进行设置3D场景的默认视图。二维和哥伦布视图的主视图显示了整个地图。
Name | Type | Description |
---|---|---|
duration
|
Number |
可选
飞行持续时间(以秒为单位)。如果省略,Cesium会尝试根据航班要行驶的距离来计算理想持续时间。请参见
Camera#flyTo
|
将相机从当前位置移动到新位置。
Name | Type | Description | |||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options
|
Object |
Object with the following properties:
|
Throws:
-
DeveloperError :如果给出方向或向上,则都需要。
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
}
});
将相机移到当前视图包含所提供的包围球的位置。
偏移是在以边界球的中心为中心的局部东-北-上参考系中的航向/俯仰/范围。航向角和俯仰角是在局部的东西向北参考系中定义的。航向是从y轴到x轴的角度。间距是从xy平面开始的旋转。正螺距角度在平面下方。负俯仰角在平面上方。范围是到中心的距离。如果范围是零,则将计算范围以使整个边界球都可见。
在2D和Columbus视图中,必须有一个俯视图。摄像机将被放置在目标上方并向下看。上方的高度目标将是范围。标题将与当地北部对齐。
Name | Type | Description | |||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
boundingSphere
|
BoundingSphere | 要查看的边界球,以世界坐标表示。 | |||||||||||||||||||||||||||||||||
options
|
Object |
可选
具有以下属性的对象:
|
获取摄像机位置的大小。在3D中,这是矢量幅度。在2D和哥伦布视图,这是到地图的距离。
Returns:
头寸的大小。
getPickRay (windowPosition, result ) → Ray
从相机位置到
windowPosition
处的像素创建光线在世界坐标系中。
Name | Type | Description |
---|---|---|
windowPosition
|
Cartesian2 | 像素的x和y坐标。 |
result
|
Ray | 可选 将结果存储到的对象。 |
Returns:
返回
笛卡尔3
射线的位置和方向。
返回以米为单位的像素大小。
Name | Type | Description |
---|---|---|
boundingSphere
|
BoundingSphere | 世界坐标系中的边界球。 |
drawingBufferWidth
|
Number | 绘图缓冲区的宽度。 |
drawingBufferHeight
|
Number | 绘图缓冲区的高度。 |
Returns:
像素大小(以米为单位)。
getRectangleCameraCoordinates (rectangle, result ) → Cartesian3
获取在椭圆形或地图上查看矩形所需的相机位置
Name | Type | Description |
---|---|---|
rectangle
|
Rectangle | 要查看的矩形。 |
result
|
Cartesian3 | 可选 查看矩形所需的摄像机位置 |
Returns:
查看矩形所需的相机位置
围绕
axis
旋转每个相机的方向矢量达
angle
Name | Type | Description |
---|---|---|
axis
|
Cartesian3 | 旋转轴。 |
angle
|
Number |
可选
旋转角度(以弧度为单位)。默认为
defaultLookAmount
。
|
使用目标和偏移量设置摄像机的位置和方向。目标必须在世界坐标。在以目标为中心的局部东北向上参考系中,偏移量可以是笛卡尔或航向/俯仰/范围。如果偏移量是笛卡尔坐标,则它是相对于由转换矩阵定义的参考帧中心的偏移量。如果偏移如果是航向/俯仰/范围,则航向和俯仰角在变换矩阵定义的参考系中定义。航向是从y轴到x轴的角度。间距是从xy平面开始的旋转。正螺距角度在平面下方。负俯仰角在平面上方。范围是到中心的距离。在2D模式下,必须有一个俯视图。摄像机将被放置在目标上方并向下看。上方的高度目标将是偏移量的大小。航向将根据偏移量确定。如果标题不能根据偏移量确定,航向将为北。
Name | Type | Description |
---|---|---|
target
|
Cartesian3 | 世界坐标中的目标位置。 |
offset
|
Cartesian3 | HeadingPitchRange | 在局部东北朝上的参考框中,距目标的偏移量为中心。 |
Throws:
-
DeveloperError :变形时不支持lookAt。
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));
使用目标和变换矩阵设置相机的位置和方向。偏移量可以是笛卡尔坐标或航向/俯仰/范围。如果偏移量是笛卡尔坐标,则它是相对于由转换矩阵定义的参考帧中心的偏移量。如果偏移如果是航向/俯仰/范围,则航向和俯仰角在变换矩阵定义的参考系中定义。航向是从y轴到x轴的角度。间距是从xy平面开始的旋转。正螺距角度在平面下方。负俯仰角在平面上方。范围是到中心的距离。在2D模式下,必须有一个俯视图。相机将放置在参考框中心上方。上方的高度目标将是偏移量的大小。航向将根据偏移量确定。如果标题不能根据偏移量确定,航向将为北。
Name | Type | Description |
---|---|---|
transform
|
Matrix4 | 定义参考框架的变换矩阵。 |
offset
|
Cartesian3 | HeadingPitchRange | 可选 在以目标为中心的参考帧中与目标的偏移。 |
Throws:
-
DeveloperError :变形时不支持lookAtTransform。
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));
以弧度为单位,沿相反方向围绕其右向量旋转相机如果不在2D模式下,则其向上向量的坐标。
Name | Type | Description |
---|---|---|
amount
|
Number |
可选
弧度旋转的量。默认为
defaultLookAmount
。
|
See:
以弧度为单位,沿相反方向围绕其向上矢量旋转相机如果不在2D模式下,则其右向量的坐标
Name | Type | Description |
---|---|---|
amount
|
Number |
可选
弧度旋转的量。默认为
defaultLookAmount
。
|
See:
以弧度为单位,以弧度为单位围绕其向上矢量旋转相机如果不在2D模式下,则其右向量的坐标
Name | Type | Description |
---|---|---|
amount
|
Number |
可选
弧度旋转的量。默认为
defaultLookAmount
。
|
See:
以弧度为单位,以弧度为单位围绕其右向量旋转相机如果不在2D模式下,则其向上向量的坐标。
Name | Type | Description |
---|---|---|
amount
|
Number |
可选
弧度旋转的量。默认为
defaultLookAmount
。
|
See:
沿
方向
按
amount
转换摄像机的位置。
Name | Type | Description |
---|---|---|
direction
|
Cartesian3 | 移动的方向。 |
amount
|
Number |
可选
移动的量(以米为单位)。默认为
defaultMoveAmount
。
|
See:
沿相反方向按
amount
转换相机的位置的视角向量。在2D模式下,这将缩小相机而不是平移相机的位置。
Name | Type | Description |
---|---|---|
amount
|
Number |
可选
移动的量(以米为单位)。默认为
defaultMoveAmount
。
|
See:
沿相反方向按
amount
转换相机的位置相机的向上向量。
Name | Type | Description |
---|---|---|
amount
|
Number |
可选
移动的量(以米为单位)。默认为
defaultMoveAmount
。
|
See:
沿相机的视图矢量按
amount
转换相机的位置。在2D模式下,这将放大相机而不是平移相机的位置。
Name | Type | Description |
---|---|---|
amount
|
Number |
可选
移动的量(以米为单位)。默认为
defaultMoveAmount
。
|
See:
沿相反方向按
amount
转换相机的位置相机的正确向量。
Name | Type | Description |
---|---|---|
amount
|
Number |
可选
移动的量(以米为单位)。默认为
defaultMoveAmount
。
|
See:
沿相机的右向量按
amount
转换相机的位置。
Name | Type | Description |
---|---|---|
amount
|
Number |
可选
移动的量(以米为单位)。默认为
defaultMoveAmount
。
|
See:
沿相机的向上矢量按
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);
将摄像机绕
axis
旋转
angle
。距离相机位置到相机参考框中心的距离保持不变。
Name | Type | Description |
---|---|---|
axis
|
Cartesian3 | 在世界坐标系中给定的旋转轴。 |
angle
|
Number |
可选
旋转角度(以弧度为单位)。默认为
defaultRotateAmount
。
|
围绕摄像机参考框的中心向下旋转角度。
Name | Type | Description |
---|---|---|
angle
|
Number |
可选
旋转角度(以弧度为单位)。默认为
defaultRotateAmount
。
|
围绕相机参考框的中心向左旋转角度。
Name | Type | Description |
---|---|---|
angle
|
Number |
可选
旋转角度(以弧度为单位)。默认为
defaultRotateAmount
。
|
围绕相机参考框的中心向右旋转角度。
Name | Type | Description |
---|---|---|
angle
|
Number |
可选
旋转角度(以弧度为单位)。默认为
defaultRotateAmount
。
|
围绕摄像机参考框架的中心向上旋转角度。
Name | Type | Description |
---|---|---|
angle
|
Number |
可选
旋转角度(以弧度为单位)。默认为
defaultRotateAmount
。
|
设置相机的位置,方向和变换。
Name | Type | Description | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options
|
Object |
具有以下属性的对象:
|
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)
}
});
将平截头体/投影切换为正交。此功能在2D模式下是无操作的,将始终是正交的。
将平截头体/投影切换为透视。此功能是2D模式下的无操作项,必须始终正交。
围绕其方向矢量逆时针旋转照相机一定量(以弧度为单位)。
Name | Type | Description |
---|---|---|
amount
|
Number |
可选
弧度旋转的量。默认为
defaultLookAmount
。
|
See:
围绕其方向矢量顺时针旋转照相机一定量(以弧度为单位)。
Name | Type | Description |
---|---|---|
amount
|
Number |
可选
弧度旋转的量。默认为
defaultLookAmount
。
|
See:
设置相机,使当前视图包含提供的边界球。
偏移量是在以边界球中心为中心的局部东北向上参考框中的航向/俯仰/范围。航向角和俯仰角是在局部的东西向北参考系中定义的。航向是从y轴到x轴的角度。间距是从xy平面开始的旋转。正螺距角度在平面下方。负俯仰角在平面上方。范围是到中心的距离。如果范围是零,则将计算范围以使整个边界球都可见。
在2D模式下,必须有一个俯视图。摄像机将被放置在目标上方并向下看。上方的高度目标将是范围。航向将根据偏移量确定。如果标题不能根据偏移量确定,航向将为北。
Name | Type | Description |
---|---|---|
boundingSphere
|
BoundingSphere | 要查看的边界球,以世界坐标表示。 |
offset
|
HeadingPitchRange | 可选 在局部东北朝上的参考框中,距目标的偏移量为中心。 |
Throws:
-
DeveloperError :变形时不支持viewBoundingSphere。
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:
转换后的向量。
沿相机的视图矢量缩放
amount
。
Name | Type | Description |
---|---|---|
amount
|
Number |
可选
移动量。默认为
defaultZoomAmount
。
|
See:
沿
amount
的相反方向缩放相机的视角向量。
Name | Type | Description |
---|---|---|
amount
|
Number |
可选
移动量。默认为
defaultZoomAmount
。
|
See:
Type Definitions
取消航班时将执行的功能。
飞行结束后将执行的功能。