new Camera()
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.
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 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:
Members
-
staticCamera.DEFAULT_VIEW_FACTOR :Number
-
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.Source: Scene/Camera.js, line 240 -
staticCamera.DEFAULT_VIEW_RECTANGLE :Rectangle
-
The default extent the camera will view on creation.Source: Scene/Camera.js, line 232
-
constrainedAxis :Cartesian3
-
If set, the camera will not be able to rotate past this axis in either direction.
-
Default Value:
undefined
Source: Scene/Camera.js, line 178 -
defaultLookAmount :Number
-
The default amount to rotate the camera when an argument is not provided to the look methods.
-
Default Value:
Math.PI / 60.0
Source: Scene/Camera.js, line 158 -
defaultMoveAmount :Number
-
The default amount to move the camera when an argument is not provided to the move methods.
-
Default Value:
100000.0;
Source: Scene/Camera.js, line 151 -
defaultRotateAmount :Number
-
The default amount to rotate the camera when an argument is not provided to the rotate methods.
-
Default Value:
Math.PI / 3600.0
Source: Scene/Camera.js, line 165 -
defaultZoomAmount :Number
-
The default amount to move the camera when an argument is not provided to the zoom methods.
-
Default Value:
100000.0;
Source: Scene/Camera.js, line 172 -
direction :Cartesian3
-
The view direction of the camera.Source: Scene/Camera.js, line 109
-
readonlydirectionWC :Cartesian3
-
Gets the view direction of the camera in world coordinates.Source: Scene/Camera.js, line 615
-
frustum :Frustum
-
The region of space in view.
-
Default Value:
PerspectiveFrustum()
See:
Source: Scene/Camera.js, line 141 -
heading :Number
-
Gets the camera heading in radians.Source: Scene/Camera.js, line 656
-
readonlyinverseTransform :Matrix4
-
Gets the inverse camera transform.
-
Default Value:
Matrix4.IDENTITY
Source: Scene/Camera.js, line 539 -
readonlyinverseViewMatrix :Matrix4
-
Gets the inverse view matrix.
See:
Source: Scene/Camera.js, line 571 -
maximumTranslateFactor :Number
-
The factor multiplied by the the map size used to determine where to clamp the camera position when translating across the surface. The default is 1.5. Only valid for 2D and Columbus view.
-
Default Value:
1.5
Source: Scene/Camera.js, line 185 -
maximumZoomFactor :Number
-
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 2.5. Only valid for 2D.
-
Default Value:
2.5
Source: Scene/Camera.js, line 192 -
pitch :Number
-
Gets the camera pitch in radians.Source: Scene/Camera.js, line 691
-
position :Cartesian3
-
The position of the camera.Source: Scene/Camera.js, line 99
-
positionCartographic :Cartographic
-
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.Source: Scene/Camera.js, line 587 -
readonlypositionWC :Cartesian3
-
Gets the position of the camera in world coordinates.Source: Scene/Camera.js, line 601
-
right :Cartesian3
-
The right direction of the camera.Source: Scene/Camera.js, line 127
-
readonlyrightWC :Cartesian3
-
Gets the right direction of the camera in world coordinates.Source: Scene/Camera.js, line 643
-
roll :Number
-
Gets the camera roll in radians.Source: Scene/Camera.js, line 718
-
readonlytransform :Matrix4
-
Gets the camera's reference frame. The inverse of this transformation is appended to the view matrix.
-
Default Value:
Matrix4.IDENTITY
Source: Scene/Camera.js, line 519 -
up :Cartesian3
-
The up direction of the camera.Source: Scene/Camera.js, line 118
-
readonlyupWC :Cartesian3
-
Gets the up direction of the camera in world coordinates.Source: Scene/Camera.js, line 629
-
readonlyviewMatrix :Matrix4
-
Gets the view matrix.
See:
Source: Scene/Camera.js, line 555
Methods
-
cameraToWorldCoordinates(cartesian, result) → Cartesian4
-
Transform a vector or point from the camera's reference frame to world coordinates.
Name Type Description cartesian
Cartesian4 The vector or point to transform. result
Cartesian4 optional The object onto which to store the result. Returns:
The transformed vector or point.Source: Scene/Camera.js, line 987 -
cameraToWorldCoordinatesPoint(cartesian, result) → Cartesian3
-
Transform a point from the camera's reference frame to world coordinates.
Name Type Description cartesian
Cartesian3 The point to transform. result
Cartesian3 optional The object onto which to store the result. Returns:
The transformed point.Source: Scene/Camera.js, line 1008 -
cameraToWorldCoordinatesVector(cartesian, result) → Cartesian3
-
Transform a vector from the camera's reference frame to world coordinates.
Name Type Description cartesian
Cartesian3 The vector to transform. result
Cartesian3 optional The object onto which to store the result. Returns:
The transformed vector.Source: Scene/Camera.js, line 1029 -
clone() → Camera
-
Returns a duplicate of a Camera instance.
Returns:
A new copy of the Camera instance.Source: Scene/Camera.js, line 2550 -
flyTo(options)
-
Flies the camera from its current position to a new position.
Name Type Description options
Object Object with the following properties: Name Type Default Description destination
Cartesian3 | Rectangle The final position of the camera in WGS84 (world) coordinates or a rectangle that would be visible from a top-down view. orientation
Object optional An object that contains either direction and up properties or heading, pith 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 or 2D. The up direction will point towards local north in 3D and in the positive y direction in Columbus view or 2D. duration
Number 3.0
optional The duration of the flight in seconds. complete
Camera~FlightCompleteCallback optional The function to execute when the flight is complete. cancel
Camera~FlightCancelledCallback optional The function to execute if the flight is cancelled. endTransform
Matrix4 optional Transform matrix representing the reference frame the camera will be in when the flight is completed. convert
Boolean true
optional When true
, the destination is converted to the correct coordinate system for each scene mode. Whenfalse
, the destination is expected to be in the correct coordinate system.Throws:
-
DeveloperError : If either direction or up is given, then both are required.
Example:
// 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 } });
Source: Scene/Camera.js, line 2316 -
-
flyToBoundingSphere(boundingSphere, options)
-
Flys 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 above the plane. Negative pitch angles are below 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.
Name Type Description boundingSphere
BoundingSphere The bounding sphere to view, in world coordinates. options
Object optional Object with the following properties: Name Type Default Description duration
Number 3.0
optional The duration of the flight in seconds. offset
HeadingPitchRange optional The offset from the target in the local east-north-up reference frame centered at the target. complete
Camera~FlightCompleteCallback optional The function to execute when the flight is complete. cancel
Camera~FlightCancelledCallback optional The function to execute if the flight is cancelled. endTransform
Matrix4 optional Transform matrix representing the reference frame the camera will be in when the flight is completed. Source: Scene/Camera.js, line 2496 -
flyToRectangle(options, endTransform)
-
Flies the camera from its current position to a position where the entire rectangle is visible.
Name Type Description options
Object Object with the following properties: Name Type Default Description destination
Rectangle The rectangle to view, in WGS84 (world) coordinates, which determines the final position of the camera. duration
Number 3.0
optional The duration of the flight in seconds. complete
Camera~FlightCompleteCallback optional The function to execute when the flight is complete. cancel
Camera~FlightCancelledCallback optional The function to execute if the flight is cancelled. endTransform
Matrix4 optional Transform matrix representing the reference frame the camera will be in when the flight is completed. -
Deprecated:
true
Source: Scene/Camera.js, line 2386 -
getMagnitude() → Number
-
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.
Returns:
The magnitude of the position.Source: Scene/Camera.js, line 1475 -
getPickRay(windowPosition, result) → Object
-
Create a ray from the camera position through the pixel at
windowPosition
in world coordinates.Name Type Description windowPosition
Cartesian2 The x and y coordinates of a pixel. result
Ray optional The object onto which to store the result. Returns:
Returns theCartesian3
position and direction of the ray.Source: Scene/Camera.js, line 2078 -
getRectangleCameraCoordinates(rectangle, result) → Cartesian3
-
Get the camera position needed to view an rectangle on an ellipsoid or map
Name Type Description rectangle
Rectangle The rectangle to view. result
Cartesian3 optional The camera position needed to view the rectangle Returns:
The camera position needed to view the rectangleSource: Scene/Camera.js, line 1895 -
look(axis, angle)
-
Rotate each of the camera's orientation vectors around
axis
byangle
Name Type Description axis
Cartesian3 The axis to rotate around. angle
Number optional The angle, in radians, to rotate by. Defaults to defaultLookAmount
. -
lookAt(target, offset, eye, target, up)
-
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 above the plane. Negative pitch angles are below 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.
Name Type Description 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. The deprecated parameters sets the camera position and orientation with an eye position, target, and up vector. eye
Cartesian3 The position of the camera. This parameter is deprecated. target
Cartesian3 The position to look at. This parameter is deprecated. up
Cartesian3 The up vector. This parameter is deprecated. Throws:
-
DeveloperError : lookAt is not supported while morphing.
Example:
// 1. Using a cartesian offset var 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 var center = Cartesian3.fromDegrees(-72.0, 40.0); var heading = Cesium.Math.toRadians(50.0); var pitch = Cesium.Math.toRadians(-20.0); var range = 5000.0; viewer.camera.lookAt(center, new Cesium.HeadingPitchRange(heading, pitch, range));
Source: Scene/Camera.js, line 1523 -
-
lookAtTransform(transform, offset)
-
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 above the plane. Negative pitch angles are below 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.
Name Type Description 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:
-
DeveloperError : lookAtTransform is not supported while morphing.
Example:
// 1. Using a cartesian offset var 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 var transform = Cesium.Transforms.eastNorthUpToFixedFrame(Cartesian3.fromDegrees(-72.0, 40.0)); var heading = Cesium.Math.toRadians(50.0); var pitch = Cesium.Math.toRadians(-20.0); var range = 5000.0; viewer.camera.lookAtTransform(transform, new Cesium.HeadingPitchRange(heading, pitch, range));
Source: Scene/Camera.js, line 1639 -
-
lookDown(amount)
-
Rotates the camera around its right vector by amount, in radians, in the opposite direction of its up vector.
Name Type Description amount
Number optional The amount, in radians, to rotate by. Defaults to defaultLookAmount
.See:
Source: Scene/Camera.js, line 1213 -
lookLeft(amount)
-
Rotates the camera around its up vector by amount, in radians, in the opposite direction of its right vector.
Name Type Description amount
Number optional The amount, in radians, to rotate by. Defaults to defaultLookAmount
.See:
Source: Scene/Camera.js, line 1174 -
lookRight(amount)
-
Rotates the camera around its up vector by amount, in radians, in the direction of its right vector.
Name Type Description amount
Number optional The amount, in radians, to rotate by. Defaults to defaultLookAmount
.See:
Source: Scene/Camera.js, line 1187 -
lookUp(amount)
-
Rotates the camera around its right vector by amount, in radians, in the direction of its up vector.
Name Type Description amount
Number optional The amount, in radians, to rotate by. Defaults to defaultLookAmount
.See:
Source: Scene/Camera.js, line 1200 -
move(direction, amount)
-
Translates the camera's position by
amount
alongdirection
.Name Type Description direction
Cartesian3 The direction to move. amount
Number optional The amount, in meters, to move. Defaults to defaultMoveAmount
. -
moveBackward(amount)
-
Translates the camera's position by
amount
along the opposite direction of the camera's view vector.Name Type Description amount
Number optional The amount, in meters, to move. Defaults to defaultMoveAmount
.See:
Source: Scene/Camera.js, line 1111 -
moveDown(amount)
-
Translates the camera's position by
amount
along the opposite direction of the camera's up vector.Name Type Description amount
Number optional The amount, in meters, to move. Defaults to defaultMoveAmount
.See:
Source: Scene/Camera.js, line 1136 -
moveForward(amount)
-
Translates the camera's position by
amount
along the camera's view vector.Name Type Description amount
Number optional The amount, in meters, to move. Defaults to defaultMoveAmount
.See:
Source: Scene/Camera.js, line 1098 -
moveLeft(amount)
-
Translates the camera's position by
amount
along the opposite direction of the camera's right vector.Name Type Description amount
Number optional The amount, in meters, to move. Defaults to defaultMoveAmount
.See:
Source: Scene/Camera.js, line 1161 -
moveRight(amount)
-
Translates the camera's position by
amount
along the camera's right vector.Name Type Description amount
Number optional The amount, in meters, to move. Defaults to defaultMoveAmount
.See:
Source: Scene/Camera.js, line 1148 -
moveUp(amount)
-
Translates the camera's position by
amount
along the camera's up vector.Name Type Description amount
Number optional The amount, in meters, to move. Defaults to defaultMoveAmount
.See:
Source: Scene/Camera.js, line 1123 -
pickEllipsoid(windowPosition, ellipsoid, result) → Cartesian3
-
Pick an ellipsoid or map.
Name Type Default Description windowPosition
Cartesian2 The x and y coordinates of a pixel. ellipsoid
Ellipsoid Ellipsoid.WGS84
optional The ellipsoid to pick. result
Cartesian3 optional The object onto which to store the result. Returns:
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.Source: Scene/Camera.js, line 1989 -
rotate(axis, angle)
-
Rotates the camera around
axis
byangle
. The distance of the camera's position to the center of the camera's reference frame remains the same.Name Type Description axis
Cartesian3 The axis to rotate around given in world coordinates. angle
Number optional The angle, in radians, to rotate by. Defaults to defaultRotateAmount
. -
rotateDown(angle)
-
Rotates the camera around the center of the camera's reference frame by angle downwards.
Name Type Description angle
Number optional The angle, in radians, to rotate by. Defaults to defaultRotateAmount
.See:
Source: Scene/Camera.js, line 1314 -
rotateLeft(angle)
-
Rotates the camera around the center of the camera's reference frame by angle to the left.
Name Type Description angle
Number optional The angle, in radians, to rotate by. Defaults to defaultRotateAmount
.See:
Source: Scene/Camera.js, line 1388 -
rotateRight(angle)
-
Rotates the camera around the center of the camera's reference frame by angle to the right.
Name Type Description angle
Number optional The angle, in radians, to rotate by. Defaults to defaultRotateAmount
.See:
Source: Scene/Camera.js, line 1375 -
rotateUp(angle)
-
Rotates the camera around the center of the camera's reference frame by angle upwards.
Name Type Description angle
Number optional The angle, in radians, to rotate by. Defaults to defaultRotateAmount
.See:
Source: Scene/Camera.js, line 1327 -
setTransform(transform)
-
Sets the camera's transform without changing the current view.
Name Type Description transform
Matrix4 The camera transform. -
Deprecated:
true
Source: Scene/Camera.js, line 791 -
setView()
-
Sets the camera position and orientation with heading, pitch and roll angles. The position can be given as either a cartesian or a cartographic. If both are given, then the cartesian will be used. If neither is given, then the current camera position will be used.
Name Type Description options.position
Cartesian3 optional The cartesian position of the camera. options.positionCartographic
Cartographic optional The cartographic position of the camera. options.heading
Number optional The heading in radians or the current heading will be used if undefined. options.pitch
Number optional The pitch in radians or the current pitch will be used if undefined. options.roll
Number optional The roll in radians or the current roll will be used if undefined. Example:
// 1. Set view with heading, pitch and roll camera.setView({ position : cartesianPosition, 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 }); // 2. Set default top-down view with a cartographic position camera.setView({ positionCartographic : cartographic }); // 3. Change heading, pitch and roll with the camera position remaining the same. camera.setView({ 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 });
Source: Scene/Camera.js, line 857 -
twistLeft(amount)
-
Rotate the camera counter-clockwise around its direction vector by amount, in radians.
Name Type Description amount
Number optional The amount, in radians, to rotate by. Defaults to defaultLookAmount
.See:
Source: Scene/Camera.js, line 1258 -
twistRight(amount)
-
Rotate the camera clockwise around its direction vector by amount, in radians.
Name Type Description amount
Number optional The amount, in radians, to rotate by. Defaults to defaultLookAmount
.See:
Source: Scene/Camera.js, line 1270 -
viewBoundingSphere(boundingSphere, offset)
-
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 above the plane. Negative pitch angles are below 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.
Name Type Description boundingSphere
BoundingSphere The bounding sphere to view, in world coordinates. offset
HeadingPitchRange optional The offset from the target in the local east-north-up reference frame centered at the target. Throws:
-
DeveloperError : viewBoundingSphere is not supported while morphing.
Source: Scene/Camera.js, line 2455 -
-
viewRectangle(rectangle, ellipsoid)
-
View an rectangle on an ellipsoid or map.
Name Type Default Description rectangle
Rectangle The rectangle to view. ellipsoid
Ellipsoid Ellipsoid.WGS84
optional The ellipsoid to view. Source: Scene/Camera.js, line 1919 -
worldToCameraCoordinates(cartesian, result) → Cartesian4
-
Transform a vector or point from world coordinates to the camera's reference frame.
Name Type Description cartesian
Cartesian4 The vector or point to transform. result
Cartesian4 optional The object onto which to store the result. Returns:
The transformed vector or point.Source: Scene/Camera.js, line 924 -
worldToCameraCoordinatesPoint(cartesian, result) → Cartesian3
-
Transform a point from world coordinates to the camera's reference frame.
Name Type Description cartesian
Cartesian3 The point to transform. result
Cartesian3 optional The object onto which to store the result. Returns:
The transformed point.Source: Scene/Camera.js, line 945 -
worldToCameraCoordinatesVector(cartesian, result) → Cartesian3
-
Transform a vector from world coordinates to the camera's reference frame.
Name Type Description cartesian
Cartesian3 The vector to transform. result
Cartesian3 optional The object onto which to store the result. Returns:
The transformed vector.Source: Scene/Camera.js, line 966 -
zoomIn(amount)
-
Zooms
amount
along the camera's view vector.Name Type Description amount
Number optional The amount to move. Defaults to defaultZoomAmount
.See:
Source: Scene/Camera.js, line 1443 -
zoomOut(amount)
-
Zooms
amount
along the opposite direction of the camera's view vector.Name Type Description amount
Number optional The amount to move. Defaults to defaultZoomAmount
.See:
Source: Scene/Camera.js, line 1460
Type Definitions
-
FlightCancelledCallback()
-
A function that will execute when a flight is cancelled.Source: Scene/Camera.js, line 2567
-
FlightCompleteCallback()
-
A function that will execute when a flight completes.Source: Scene/Camera.js, line 2562