The camera is defined by a position, orientation, and view frustum.
The orientation forms an orthonormal basis with a view, up and right = view x up unit vectors.
The viewing frustum is defined by 6 planes.
Each plane is represented by a
Cartesian4
object, where the x, y, and z components
define the unit vector normal to the plane, and the w component is the distance of the
plane from the origin/camera position.
参数名称 |
类型 |
描述信息 |
scene |
Scene
|
The scene. |
使用示例:
// 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.
const camera = new Cesium.Camera(scene);
camera.position = new Cesium.Cartesian3();
camera.direction = Cesium.Cartesian3.negate(Cesium.Cartesian3.UNIT_Z, new Cesium.Cartesian3());
camera.up = Cesium.Cartesian3.clone(Cesium.Cartesian3.UNIT_Y);
camera.frustum.fov = Cesium.Math.PI_OVER_THREE;
camera.frustum.near = 1.0;
camera.frustum.far = 2.0;
Demo:
成员(属性)
The default heading/pitch/range that is used when the camera flies to a location that contains a bounding sphere.
A scalar to multiply to the camera position and add it back after setting the camera to view the rectangle.
A value of zero means the camera will view the entire Camera#DEFAULT_VIEW_RECTANGLE
, a value greater than zero
will move it further away from the extent, and a value less than zero will move it close to the extent.
The default rectangle the camera will view on creation.
Gets the event that will be raised when the camera has changed by percentageChanged
.
If set, the camera will not be able to rotate past this axis in either direction.
undefined
The default amount to rotate the camera when an argument is not
provided to the look methods.
Math.PI / 60.0
The default amount to move the camera when an argument is not
provided to the move methods.
100000.0;
The default amount to rotate the camera when an argument is not
provided to the rotate methods.
Math.PI / 3600.0
The default amount to move the camera when an argument is not
provided to the zoom methods.
100000.0;
The view direction of the camera.
Gets the view direction of the camera in world coordinates.
The region of space in view.
PerspectiveFrustum()
参考:
Gets the camera heading in radians.
Gets the inverse camera transform.
Matrix4.IDENTITY
Gets the inverse view matrix.
参考:
The factor multiplied by the the map size used to determine where to clamp the camera position
when zooming out from the surface. The default is 1.5. Only valid for 2D and the map is rotatable.
1.5
Gets the event that will be raised when the camera has stopped moving.
Gets the event that will be raised at when the camera starts to move.
The amount the camera has to change before the changed
event is raised. The value is a percentage in the [0, 1] range.
0.5
Gets the camera pitch in radians.
The position of the camera.
Gets the
Cartographic
position of the camera, with longitude and latitude
expressed in radians and height in meters. In 2D and Columbus View, it is possible
for the returned longitude and latitude to be outside the range of valid longitudes
and latitudes when the camera is outside the map.
Gets the position of the camera in world coordinates.
The right direction of the camera.
Gets the right direction of the camera in world coordinates.
Gets the camera roll in radians.
Gets the camera's reference frame. The inverse of this transformation is appended to the view matrix.
Matrix4.IDENTITY
The up direction of the camera.
Gets the up direction of the camera in world coordinates.
Gets the view matrix.
参考:
方法
Transform a vector or point from the camera's reference frame to world coordinates.
参数名称 |
类型 |
描述信息 |
cartesian |
Cartesian4
|
The vector or point to transform. |
result |
Cartesian4
|
可选
The object onto which to store the result. |
返回值:
The transformed vector or point.
Transform a point from the camera's reference frame to world coordinates.
参数名称 |
类型 |
描述信息 |
cartesian |
Cartesian3
|
The point to transform. |
result |
Cartesian3
|
可选
The object onto which to store the result. |
返回值:
The transformed point.
Transform a vector from the camera's reference frame to world coordinates.
参数名称 |
类型 |
描述信息 |
cartesian |
Cartesian3
|
The vector to transform. |
result |
Cartesian3
|
可选
The object onto which to store the result. |
返回值:
The transformed vector.
Cancels the current camera flight and leaves the camera at its current location.
If no flight is in progress, this this function does nothing.
Completes the current camera flight and moves the camera immediately to its final destination.
If no flight is in progress, this this function does nothing.
Computes the approximate visible rectangle on the ellipsoid.
参数名称 |
类型 |
默认值 |
描述信息 |
ellipsoid |
Ellipsoid
|
Ellipsoid.default
|
可选
The ellipsoid that you want to know the visible region. |
result |
Rectangle
|
|
可选
The rectangle in which to store the result |
返回值:
The visible rectangle or undefined if the ellipsoid isn't visible at all.
Return the distance from the camera to the front of the bounding sphere.
参数名称 |
类型 |
描述信息 |
boundingSphere |
BoundingSphere
|
The bounding sphere in world coordinates. |
返回值:
The distance to the bounding sphere.
Fly the camera to the home view. Use Camera#.DEFAULT_VIEW_RECTANGLE
to set
the default view for the 3D scene. The home view for 2D and columbus view shows the
entire map.
参数名称 |
类型 |
描述信息 |
duration |
number
|
可选
The duration of the flight in seconds. If omitted, Cesium attempts to calculate an ideal duration based on the distance to be traveled by the flight. See Camera#flyTo |
Flies the camera from its current position to a new position.
参数名称 |
类型 |
描述信息 |
options |
object
|
Object with the following properties:
参数名称 |
类型 |
描述信息 |
destination |
Cartesian3
|
Rectangle
|
The final position of the camera in world coordinates or a rectangle that would be visible from a top-down view. |
orientation |
object
|
可选
An object that contains either direction and up properties or heading, pitch and roll properties. By default, the direction will point
towards the center of the frame in 3D and in the negative z direction in Columbus view. The up direction will point towards local north in 3D and in the positive
y direction in Columbus view. Orientation is not used in 2D when in infinite scrolling mode. |
duration |
number
|
可选
The duration of the flight in seconds. If omitted, Cesium attempts to calculate an ideal duration based on the distance to be traveled by the flight. |
complete |
Camera.FlightCompleteCallback
|
可选
The function to execute when the flight is complete. |
cancel |
Camera.FlightCancelledCallback
|
可选
The function to execute if the flight is cancelled. |
endTransform |
Matrix4
|
可选
Transform matrix representing the reference frame the camera will be in when the flight is completed. |
maximumHeight |
number
|
可选
The maximum height at the peak of the flight. |
pitchAdjustHeight |
number
|
可选
If camera flyes higher than that value, adjust pitch duiring the flight to look down, and keep Earth in viewport. |
flyOverLongitude |
number
|
可选
There are always two ways between 2 points on globe. This option force camera to choose fight direction to fly over that longitude. |
flyOverLongitudeWeight |
number
|
可选
Fly over the lon specifyed via flyOverLongitude only if that way is not longer than short way times flyOverLongitudeWeight. |
convert |
boolean
|
可选
Whether to convert the destination from world coordinates to scene coordinates (only relevant when not using 3D). Defaults to true . |
easingFunction |
EasingFunction.Callback
|
可选
Controls how the time is interpolated over the duration of the flight. |
|
Throws:
-
DeveloperError
: If either direction or up is given, then both are required.
使用示例:
// 1. Fly to a position with a top-down view
viewer.camera.flyTo({
destination : Cesium.Cartesian3.fromDegrees(-117.16, 32.71, 15000.0)
});
// 2. Fly to a Rectangle with a top-down view
viewer.camera.flyTo({
destination : Cesium.Rectangle.fromDegrees(west, south, east, north)
});
// 3. Fly to a position with an orientation using unit vectors.
viewer.camera.flyTo({
destination : Cesium.Cartesian3.fromDegrees(-122.19, 46.25, 5000.0),
orientation : {
direction : new Cesium.Cartesian3(-0.04231243104240401, -0.20123236049443421, -0.97862924300734),
up : new Cesium.Cartesian3(-0.47934589305293746, -0.8553216253114552, 0.1966022179118339)
}
});
// 4. Fly to a position with an orientation using heading, pitch and roll.
viewer.camera.flyTo({
destination : Cesium.Cartesian3.fromDegrees(-122.19, 46.25, 5000.0),
orientation : {
heading : Cesium.Math.toRadians(175.0),
pitch : Cesium.Math.toRadians(-35.0),
roll : 0.0
}
});
Flies the camera to a location where the current view contains the provided bounding sphere.
The offset is heading/pitch/range in the local east-north-up reference frame centered at the center of the bounding sphere.
The heading and the pitch angles are defined in the local east-north-up reference frame.
The heading is the angle from y axis and increasing towards the x axis. Pitch is the rotation from the xy-plane. Positive pitch
angles are below the plane. Negative pitch angles are above the plane. The range is the distance from the center. If the range is
zero, a range will be computed such that the whole bounding sphere is visible.
In 2D and Columbus View, there must be a top down view. The camera will be placed above the target looking down. The height above the
target will be the range. The heading will be aligned to local north.
参数名称 |
类型 |
描述信息 |
boundingSphere |
BoundingSphere
|
The bounding sphere to view, in world coordinates. |
options |
object
|
可选
Object with the following properties:
参数名称 |
类型 |
描述信息 |
duration |
number
|
可选
The duration of the flight in seconds. If omitted, Cesium attempts to calculate an ideal duration based on the distance to be traveled by the flight. |
offset |
HeadingPitchRange
|
可选
The offset from the target in the local east-north-up reference frame centered at the target. |
complete |
Camera.FlightCompleteCallback
|
可选
The function to execute when the flight is complete. |
cancel |
Camera.FlightCancelledCallback
|
可选
The function to execute if the flight is cancelled. |
endTransform |
Matrix4
|
可选
Transform matrix representing the reference frame the camera will be in when the flight is completed. |
maximumHeight |
number
|
可选
The maximum height at the peak of the flight. |
pitchAdjustHeight |
number
|
可选
If camera flyes higher than that value, adjust pitch duiring the flight to look down, and keep Earth in viewport. |
flyOverLongitude |
number
|
可选
There are always two ways between 2 points on globe. This option force camera to choose fight direction to fly over that longitude. |
flyOverLongitudeWeight |
number
|
可选
Fly over the lon specifyed via flyOverLongitude only if that way is not longer than short way times flyOverLongitudeWeight. |
easingFunction |
EasingFunction.Callback
|
可选
Controls how the time is interpolated over the duration of the flight. |
|
Gets the magnitude of the camera position. In 3D, this is the vector magnitude. In 2D and
Columbus view, this is the distance to the map.
返回值:
The magnitude of the position.
Create a ray from the camera position through the pixel at windowPosition
in world coordinates.
参数名称 |
类型 |
描述信息 |
windowPosition |
Cartesian2
|
The x and y coordinates of a pixel. |
result |
Ray
|
可选
The object onto which to store the result. |
返回值:
Returns the
Cartesian3
position and direction of the ray, or undefined if the pick ray cannot be determined.
getPixelSize(boundingSphere, drawingBufferWidth, drawingBufferHeight) → number
Return the pixel size in meters.
参数名称 |
类型 |
描述信息 |
boundingSphere |
BoundingSphere
|
The bounding sphere in world coordinates. |
drawingBufferWidth |
number
|
The drawing buffer width. |
drawingBufferHeight |
number
|
The drawing buffer height. |
返回值:
The pixel size in meters.
Get the camera position needed to view a rectangle on an ellipsoid or map
参数名称 |
类型 |
描述信息 |
rectangle |
Rectangle
|
The rectangle to view. |
result |
Cartesian3
|
可选
The camera position needed to view the rectangle |
返回值:
The camera position needed to view the rectangle
Rotate each of the camera's orientation vectors around axis
by angle
参数名称 |
类型 |
描述信息 |
axis |
Cartesian3
|
The axis to rotate around. |
angle |
number
|
可选
The angle, in radians, to rotate by. Defaults to defaultLookAmount . |
参考:
Sets the camera position and orientation using a target and offset. The target must be given in
world coordinates. The offset can be either a cartesian or heading/pitch/range in the local east-north-up reference frame centered at the target.
If the offset is a cartesian, then it is an offset from the center of the reference frame defined by the transformation matrix. If the offset
is heading/pitch/range, then the heading and the pitch angles are defined in the reference frame defined by the transformation matrix.
The heading is the angle from y axis and increasing towards the x axis. Pitch is the rotation from the xy-plane. Positive pitch
angles are below the plane. Negative pitch angles are above the plane. The range is the distance from the center.
In 2D, there must be a top down view. The camera will be placed above the target looking down. The height above the
target will be the magnitude of the offset. The heading will be determined from the offset. If the heading cannot be
determined from the offset, the heading will be north.
参数名称 |
类型 |
描述信息 |
target |
Cartesian3
|
The target position in world coordinates. |
offset |
Cartesian3
|
HeadingPitchRange
|
The offset from the target in the local east-north-up reference frame centered at the target. |
Throws:
使用示例:
// 1. Using a cartesian offset
const center = Cesium.Cartesian3.fromDegrees(-98.0, 40.0);
viewer.camera.lookAt(center, new Cesium.Cartesian3(0.0, -4790000.0, 3930000.0));
// 2. Using a HeadingPitchRange offset
const center = Cesium.Cartesian3.fromDegrees(-72.0, 40.0);
const heading = Cesium.Math.toRadians(50.0);
const pitch = Cesium.Math.toRadians(-20.0);
const range = 5000.0;
viewer.camera.lookAt(center, new Cesium.HeadingPitchRange(heading, pitch, range));
Sets the camera position and orientation using a target and transformation matrix. The offset can be either a cartesian or heading/pitch/range.
If the offset is a cartesian, then it is an offset from the center of the reference frame defined by the transformation matrix. If the offset
is heading/pitch/range, then the heading and the pitch angles are defined in the reference frame defined by the transformation matrix.
The heading is the angle from y axis and increasing towards the x axis. Pitch is the rotation from the xy-plane. Positive pitch
angles are below the plane. Negative pitch angles are above the plane. The range is the distance from the center.
In 2D, there must be a top down view. The camera will be placed above the center of the reference frame. The height above the
target will be the magnitude of the offset. The heading will be determined from the offset. If the heading cannot be
determined from the offset, the heading will be north.
参数名称 |
类型 |
描述信息 |
transform |
Matrix4
|
The transformation matrix defining the reference frame. |
offset |
Cartesian3
|
HeadingPitchRange
|
可选
The offset from the target in a reference frame centered at the target. |
Throws:
使用示例:
// 1. Using a cartesian offset
const transform = Cesium.Transforms.eastNorthUpToFixedFrame(Cesium.Cartesian3.fromDegrees(-98.0, 40.0));
viewer.camera.lookAtTransform(transform, new Cesium.Cartesian3(0.0, -4790000.0, 3930000.0));
// 2. Using a HeadingPitchRange offset
const transform = Cesium.Transforms.eastNorthUpToFixedFrame(Cesium.Cartesian3.fromDegrees(-72.0, 40.0));
const heading = Cesium.Math.toRadians(50.0);
const pitch = Cesium.Math.toRadians(-20.0);
const range = 5000.0;
viewer.camera.lookAtTransform(transform, new Cesium.HeadingPitchRange(heading, pitch, range));
Rotates the camera around its right vector by amount, in radians, in the opposite direction
of its up vector if not in 2D mode.
参数名称 |
类型 |
描述信息 |
amount |
number
|
可选
The amount, in radians, to rotate by. Defaults to defaultLookAmount . |
参考:
Rotates the camera around its up vector by amount, in radians, in the opposite direction
of its right vector if not in 2D mode.
参数名称 |
类型 |
描述信息 |
amount |
number
|
可选
The amount, in radians, to rotate by. Defaults to defaultLookAmount . |
参考:
Rotates the camera around its up vector by amount, in radians, in the direction
of its right vector if not in 2D mode.
参数名称 |
类型 |
描述信息 |
amount |
number
|
可选
The amount, in radians, to rotate by. Defaults to defaultLookAmount . |
参考:
Rotates the camera around its right vector by amount, in radians, in the direction
of its up vector if not in 2D mode.
参数名称 |
类型 |
描述信息 |
amount |
number
|
可选
The amount, in radians, to rotate by. Defaults to defaultLookAmount . |
参考:
Translates the camera's position by amount
along direction
.
参数名称 |
类型 |
描述信息 |
direction |
Cartesian3
|
The direction to move. |
amount |
number
|
可选
The amount, in meters, to move. Defaults to defaultMoveAmount . |
参考:
Translates the camera's position by amount
along the opposite direction
of the camera's view vector.
When in 2D mode, this will zoom out the camera instead of translating the camera's position.
参数名称 |
类型 |
描述信息 |
amount |
number
|
可选
The amount, in meters, to move. Defaults to defaultMoveAmount . |
参考:
Translates the camera's position by amount
along the opposite direction
of the camera's up vector.
参数名称 |
类型 |
描述信息 |
amount |
number
|
可选
The amount, in meters, to move. Defaults to defaultMoveAmount . |
参考:
Translates the camera's position by amount
along the camera's view vector.
When in 2D mode, this will zoom in the camera instead of translating the camera's position.
参数名称 |
类型 |
描述信息 |
amount |
number
|
可选
The amount, in meters, to move. Defaults to defaultMoveAmount . |
参考:
Translates the camera's position by amount
along the opposite direction
of the camera's right vector.
参数名称 |
类型 |
描述信息 |
amount |
number
|
可选
The amount, in meters, to move. Defaults to defaultMoveAmount . |
参考:
Translates the camera's position by amount
along the camera's right vector.
参数名称 |
类型 |
描述信息 |
amount |
number
|
可选
The amount, in meters, to move. Defaults to defaultMoveAmount . |
参考:
Translates the camera's position by amount
along the camera's up vector.
参数名称 |
类型 |
描述信息 |
amount |
number
|
可选
The amount, in meters, to move. Defaults to defaultMoveAmount . |
参考:
Pick an ellipsoid or map.
参数名称 |
类型 |
默认值 |
描述信息 |
windowPosition |
Cartesian2
|
|
The x and y coordinates of a pixel. |
ellipsoid |
Ellipsoid
|
Ellipsoid.default
|
可选
The ellipsoid to pick. |
result |
Cartesian3
|
|
可选
The object onto which to store the result. |
返回值:
If the ellipsoid or map was picked,
returns the point on the surface of the ellipsoid or map in world
coordinates. If the ellipsoid or map was not picked, returns undefined.
使用示例:
const canvas = viewer.scene.canvas;
const center = new Cesium.Cartesian2(canvas.clientWidth / 2.0, canvas.clientHeight / 2.0);
const ellipsoid = viewer.scene.ellipsoid;
const result = viewer.camera.pickEllipsoid(center, ellipsoid);
Rotates the camera around axis
by angle
. The distance
of the camera's position to the center of the camera's reference frame remains the same.
参数名称 |
类型 |
描述信息 |
axis |
Cartesian3
|
The axis to rotate around given in world coordinates. |
angle |
number
|
可选
The angle, in radians, to rotate by. Defaults to defaultRotateAmount . |
参考:
Rotates the camera around the center of the camera's reference frame by angle downwards.
参数名称 |
类型 |
描述信息 |
angle |
number
|
可选
The angle, in radians, to rotate by. Defaults to defaultRotateAmount . |
参考:
Rotates the camera around the center of the camera's reference frame by angle to the left.
参数名称 |
类型 |
描述信息 |
angle |
number
|
可选
The angle, in radians, to rotate by. Defaults to defaultRotateAmount . |
参考:
Rotates the camera around the center of the camera's reference frame by angle to the right.
参数名称 |
类型 |
描述信息 |
angle |
number
|
可选
The angle, in radians, to rotate by. Defaults to defaultRotateAmount . |
参考:
Rotates the camera around the center of the camera's reference frame by angle upwards.
参数名称 |
类型 |
描述信息 |
angle |
number
|
可选
The angle, in radians, to rotate by. Defaults to defaultRotateAmount . |
参考:
Sets the camera position, orientation and transform.
参数名称 |
类型 |
描述信息 |
options |
object
|
Object with the following properties:
参数名称 |
类型 |
描述信息 |
destination |
Cartesian3
|
Rectangle
|
可选
The final position of the camera in world coordinates or a rectangle that would be visible from a top-down view. |
orientation |
HeadingPitchRollValues
|
DirectionUp
|
可选
An object that contains either direction and up properties or heading, pitch and roll properties. By default, the direction will point
towards the center of the frame in 3D and in the negative z direction in Columbus view. The up direction will point towards local north in 3D and in the positive
y direction in Columbus view. Orientation is not used in 2D when in infinite scrolling mode. |
endTransform |
Matrix4
|
可选
Transform matrix representing the reference frame of the camera. |
convert |
boolean
|
可选
Whether to convert the destination from world coordinates to scene coordinates (only relevant when not using 3D). Defaults to true . |
|
使用示例:
// 1. Set position with a top-down view
viewer.camera.setView({
destination : Cesium.Cartesian3.fromDegrees(-117.16, 32.71, 15000.0)
});
// 2 Set view with heading, pitch and roll
viewer.camera.setView({
destination : cartesianPosition,
orientation: {
heading : Cesium.Math.toRadians(90.0), // east, default value is 0.0 (north)
pitch : Cesium.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 : Cesium.Math.toRadians(90.0), // east, default value is 0.0 (north)
pitch : Cesium.Math.toRadians(-90), // default value (looking down)
roll : 0.0 // default value
}
});
// 4. View rectangle with a top-down view
viewer.camera.setView({
destination : Cesium.Rectangle.fromDegrees(west, south, east, north)
});
// 5. Set position with an orientation using unit vectors.
viewer.camera.setView({
destination : Cesium.Cartesian3.fromDegrees(-122.19, 46.25, 5000.0),
orientation : {
direction : new Cesium.Cartesian3(-0.04231243104240401, -0.20123236049443421, -0.97862924300734),
up : new Cesium.Cartesian3(-0.47934589305293746, -0.8553216253114552, 0.1966022179118339)
}
});
Switches the frustum/projection to orthographic.
This function is a no-op in 2D which will always be orthographic.
Switches the frustum/projection to perspective.
This function is a no-op in 2D which must always be orthographic.
Rotate the camera counter-clockwise around its direction vector by amount, in radians.
参数名称 |
类型 |
描述信息 |
amount |
number
|
可选
The amount, in radians, to rotate by. Defaults to defaultLookAmount . |
参考:
Rotate the camera clockwise around its direction vector by amount, in radians.
参数名称 |
类型 |
描述信息 |
amount |
number
|
可选
The amount, in radians, to rotate by. Defaults to defaultLookAmount . |
参考:
Sets the camera so that the current view contains the provided bounding sphere.
The offset is heading/pitch/range in the local east-north-up reference frame centered at the center of the bounding sphere.
The heading and the pitch angles are defined in the local east-north-up reference frame.
The heading is the angle from y axis and increasing towards the x axis. Pitch is the rotation from the xy-plane. Positive pitch
angles are below the plane. Negative pitch angles are above the plane. The range is the distance from the center. If the range is
zero, a range will be computed such that the whole bounding sphere is visible.
In 2D, there must be a top down view. The camera will be placed above the target looking down. The height above the
target will be the range. The heading will be determined from the offset. If the heading cannot be
determined from the offset, the heading will be north.
参数名称 |
类型 |
描述信息 |
boundingSphere |
BoundingSphere
|
The bounding sphere to view, in world coordinates. |
offset |
HeadingPitchRange
|
可选
The offset from the target in the local east-north-up reference frame centered at the target. |
Throws:
Transform a vector or point from world coordinates to the camera's reference frame.
参数名称 |
类型 |
描述信息 |
cartesian |
Cartesian4
|
The vector or point to transform. |
result |
Cartesian4
|
可选
The object onto which to store the result. |
返回值:
The transformed vector or point.
Transform a point from world coordinates to the camera's reference frame.
参数名称 |
类型 |
描述信息 |
cartesian |
Cartesian3
|
The point to transform. |
result |
Cartesian3
|
可选
The object onto which to store the result. |
返回值:
The transformed point.
Transform a vector from world coordinates to the camera's reference frame.
参数名称 |
类型 |
描述信息 |
cartesian |
Cartesian3
|
The vector to transform. |
result |
Cartesian3
|
可选
The object onto which to store the result. |
返回值:
The transformed vector.
Zooms amount
along the camera's view vector.
参数名称 |
类型 |
描述信息 |
amount |
number
|
可选
The amount to move. Defaults to defaultZoomAmount . |
参考:
Zooms amount
along the opposite direction of
the camera's view vector.
参数名称 |
类型 |
描述信息 |
amount |
number
|
可选
The amount to move. Defaults to defaultZoomAmount . |
参考:
定义的类型
A function that will execute when a flight is cancelled.
A function that will execute when a flight completes.