Name | Type | Description |
---|---|---|
scene |
Scene | scene object |
Example:
//create object of camera.
var camera = new SuperMap3D.Camera(scene);
camera.position = new SuperMap3D.Cartesian3();
camera.direction = SuperMap3D.Cartesian3.negate(SuperMap3D.Cartesian3.UNIT_Z, new SuperMap3D.Cartesian3());
camera.up = SuperMap3D.Cartesian3.clone(SuperMap3D.Cartesian3.UNIT_Y);
camera.frustum.fov = SuperMap3D.Math.PI_OVER_THREE;
camera.frustum.near = 1.0;
camera.frustum.far = 2.0;
Members
-
staticSuperMap3D.Camera.DEFAULT_OFFSET : HeadingPitchRange
-
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. -
staticSuperMap3D.Camera.DEFAULT_VIEW_RECTANGLE : Rectangle
-
The default rectangle the camera will view on creation.
-
readonlychanged : Event
-
Gets the event that will be raised when the camera has changed by
percentageChanged
. -
constrainedAxis : Cartesian3
-
If set, the camera will not be able to rotate past this axis in either direction.
-
Default Value:
undefined
-
The default amount to rotate the camera when an argument is not provided to the look methods.
-
Default Value:
Math.PI / 60.0
-
The default amount to move the camera when an argument is not provided to the move methods.
-
Default Value:
100000.0;
-
The default amount to rotate the camera when an argument is not provided to the rotate methods.
-
Default Value:
Math.PI / 3600.0
-
The default amount to move the camera when an argument is not provided to the zoom methods.
-
Default Value:
100000.0;
-
direction : Cartesian3
-
The camera view direction.
-
readonlydirectionWC : Cartesian3
-
Gets the view direction of the camera in world coordinates.
-
Set whether to enable the loop mode when the camera rotates around the point.
Example:
var scene = viewer.scene; var camera = scene.camera; //设置相机循环模式 camera.flyCircleLoop = true;
-
Set whether to fly close to the ground. The default is flase. When set to true, the terrain will always fly above the terrain and will not drill into the terrain.
-
The area of space in the field of view, known as the viewing frustum.
-
Default Value:
PerspectiveFrustum()
See:
-
Get the camera azimuth, in radians.
-
readonlyinverseTransform : Matrix4
-
Gets the inverse camera transform.
-
Default Value:
Matrix4.IDENTITY
-
readonlyinverseViewMatrix : Matrix4
-
Gets the inverse view matrix.
See:
-
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.
-
Default Value:
1.5
-
readonlymoveEnd : Event
-
Gets the event that will be raised when the camera has stopped moving.
-
readonlymoveStart : Event
-
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.-
Default Value:
0.5
-
Get the pitch angle of the camera in radians.
-
position : Cartesian3
-
The position of the camera object.
-
readonlypositionCartographic : 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. -
readonlypositionWC : Cartesian3
-
Gets the position of the camera in world coordinates.
-
right : Cartesian3
-
The correct orientation of the camera.
-
readonlyrightWC : Cartesian3
-
Gets the right direction of the camera in world coordinates.
-
Get the camera rotation angle in radians.
-
Get or set the terrain sensitive point ratio, the range is between 0-1.
-
Sets the rotation rate around the point.
-
readonlytransform : Matrix4
-
Gets the camera's reference frame. The inverse of this transformation is appended to the view matrix.
-
Default Value:
Matrix4.IDENTITY
-
up : Cartesian3
-
The up direction of the camera.
-
readonlyupWC : Cartesian3
-
Gets the up direction of the camera in world coordinates.
-
readonlyviewMatrix : Matrix4
-
Gets the view matrix.
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. -
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. -
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. -
Cancels the current camera flight if one is in progress. The camera is left at it's current location.
-
computeViewRectangle(ellipsoid, result) → Rectangle|undefined
-
Computes the approximate visible rectangle on the ellipsoid.
Name Type Default Description ellipsoid
Ellipsoid Ellipsoid.WGS84
optional The ellipsoid that you want to know the visible region. result
Rectangle optional The rectangle in which to store the result Returns:
The visible rectangle or undefined if the ellipsoid isn't visible at all. -
Disables reflection modification previously turned on with enableReflection.
-
Return the distance from the camera to the front of the bounding sphere.
Name Type Description boundingSphere
BoundingSphere The bounding sphere in world coordinates. Returns:
The distance to the bounding sphere. -
Modifies this frustum so it always renders from the reflection of itself through the plane specified.
Name Type Description plane
Plane optional the reflection of plane -
The camera rotates arround the center point.
Name Type Description center
Number The 3D space coordinate value of the point drawn in the scene. Example:
var scene = viewer.scene; var camera = scene.camera; var handlerPoint = new SuperMap3D.DrawHandler(viewer,SuperMap3D.DrawMode.Point); handlerPoint.drawEvt.addEventListener(function(result){ center = result.object.position; //The camera rotates arround the center point. camera.flyCircle(center); });
-
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.Name Type Description duration
Number optional The duration of the flight in seconds. If omitted, SuperMap3D attempts to calculate an ideal duration based on the distance to be traveled by the flight. See Camera#flyTo
-
The camera flies from its current position to a new spatial position.
Name Type Description options
Object Objects have the following properties: Name Type Description destination
Cartesian3 | Rectangle The final position of the camera in the WGS84 world coordinate system, or the rectangular area visible in a top-down view. orientation
Object optional An object containing the attributes of direction, up, heading, pitch, and roll. By default, the orientation points to the center of the frame in 3D and to the negative z direction in Columbus views. The up direction (up) points in the local north direction in 3D and in the positive y direction in the Columbus view. In infinite scroll mode, the 2D view does not use orientation. duration
Number optional Flight duration in seconds. If omitted, a reasonable duration is calculated from the flight distance. complete
Camera~FlightCompleteCallback optional The function to execute when the flight is complete. cancel
Camera~FlightCancelledCallback optional Function to execute when flight is cancelled. endTransform
Matrix4 optional The transformation matrix of the frame of reference the camera will be in when the flight is complete. maximumHeight
Number optional Maximum altitude in flight. easingFunction
EasingFunction | EasingFunction~Callback optional Function called when released. pitchAdjustHeight
Number optional If camera flyes higher than that value, adjust pitch duiring the flight to look down, and keep Earth in viewport. flyOverLongitude
Number optional 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 optional Fly over the lon specifyed via flyOverLongitude only if that way is not longer than short way times flyOverLongitudeWeight. Throws:
-
DeveloperError : If one of direction and up is provided, both need to be provided
Example:
// 1. Fly to the position represented by the top-down view viewer.camera.flyTo({ destination : SuperMap3D.Cartesian3.fromDegrees(-117.16, 32.71, 15000.0) }); // 2. Fly to the rectangle represented by the top-down view viewer.camera.flyTo({ destination : SuperMap3D.Rectangle.fromDegrees(west, south, east, north) }); // 3. Fly to a position using a unit vector for orientation (orientatin) viewer.camera.flyTo({ destination : SuperMap3D.Cartesian3.fromDegrees(-122.19, 46.25, 5000.0), orientation : { direction : new SuperMap3D.Cartesian3(-0.04231243104240401, -0.20123236049443421, -0.97862924300734), up : new SuperMap3D.Cartesian3(-0.47934589305293746, -0.8553216253114552, 0.1966022179118339) } }); // 4. Fly to the position where the direction (orientatin) is represented by the azimuth (heading), pitch angle (pitch), and roll angle (roll) viewer.camera.flyTo({ destination : SuperMap3D.Cartesian3.fromDegrees(-122.19, 46.25, 5000.0), orientation : { heading : SuperMap3D.Math.toRadians(175.0), pitch : SuperMap3D.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.
Name Type Description boundingSphere
BoundingSphere The bounding sphere to view, in world coordinates. options
Object optional Object with the following properties: Name Type Description duration
Number optional The duration of the flight in seconds. If omitted, SuperMap3D attempts to calculate an ideal duration based on the distance to be traveled by the flight. 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. maximumHeight
Number optional The maximum height at the peak of the flight. pitchAdjustHeight
Number optional If camera flyes higher than that value, adjust pitch duiring the flight to look down, and keep Earth in viewport. flyOverLongitude
Number optional 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 optional Fly over the lon specifyed via flyOverLongitude only if that way is not longer than short way times flyOverLongitudeWeight. easingFunction
EasingFunction | EasingFunction~Callback optional 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.
Returns:
The magnitude of the position. -
getPickRay(windowPosition, result) → Ray
-
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. -
Return the pixel size in meters.
Name Type Description boundingSphere
BoundingSphere The bounding sphere in world coordinates. drawingBufferWidth
Number The drawing buffer width. drawingBufferHeight
Number The drawing buffer height. Returns:
The pixel size in meters. -
getRectangleCameraCoordinates(rectangle, result) → Cartesian3
-
Get the camera position needed to view a 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 rectangle -
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
. -
Set the camera position and direction through the target (target) and offset (offset). The target is expressed in world coordinates; the offset is the Cartesian coordinate or "azimuth/pitch/range" in the local "east-north-up" reference frame centered on the target. /range)". If the offset is expressed in Cartesian coordinates, it represents the offset from the center of the reference frame defined by the transformation matrix. If the offset is represented by "heading/pitch/range", the angles of the azimuth (heading) and pitch angle (pitch) are determined by the reference frame defined according to the transformation matrix, and the azimuth (heading) starts from the y-axis towards the x-axis The axis increases, the pitch angle (pitch) is the rotation angle from the xy plane, the positive pitch angle is below the plane, and the negative pitch angle is above the plane. The range is the distance from the center point. In 2D, it must be a top-down view, the camera is located above the target, and the height value above the target is the size of the offset. The azimuth is determined from the offset, and if the azimuth cannot be determined from the offset, the azimuth is north.
Name Type Description target
Cartesian3 The spatial position of the target in world coordinates. offset
Cartesian3 | HeadingPitchRange Offset from the local "East-North-Up" frame of reference centered on the target. Throws:
-
DeveloperError : The lookAt method is not supported when deforming.
Example:
// 1. Set Offset Using Cartesian Coordinates var center = SuperMap3D.Cartesian3.fromDegrees(-98.0, 40.0); viewer.camera.lookAt(center, new SuperMap3D.Cartesian3(0.0, -4790000.0, 3930000.0)); // 2. Use HeadingPitchRange to set the offset var center = SuperMap3D.Cartesian3.fromDegrees(-72.0, 40.0); var heading = SuperMap3D.Math.toRadians(50.0); var pitch = SuperMap3D.Math.toRadians(-20.0); var range = 5000.0; viewer.camera.lookAt(center, new SuperMap3D.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.
Name Type Description transform
Matrix4 The transformation matrix defining the reference frame. offset
Cartesian3 | HeadingPitchRange optional 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 = SuperMap3D.Transforms.eastNorthUpToFixedFrame(SuperMap3D.Cartesian3.fromDegrees(-98.0, 40.0)); viewer.camera.lookAtTransform(transform, new SuperMap3D.Cartesian3(0.0, -4790000.0, 3930000.0)); // 2. Using a HeadingPitchRange offset var transform = SuperMap3D.Transforms.eastNorthUpToFixedFrame(SuperMap3D.Cartesian3.fromDegrees(-72.0, 40.0)); var heading = SuperMap3D.Math.toRadians(50.0); var pitch = SuperMap3D.Math.toRadians(-20.0); var range = 5000.0; viewer.camera.lookAtTransform(transform, new SuperMap3D.HeadingPitchRange(heading, pitch, range));
-
-
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:
-
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:
-
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:
-
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:
-
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
. -
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:
-
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:
-
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:
-
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:
-
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:
-
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:
-
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. -
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
. -
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
. -
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
. -
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
. -
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
. -
Set camera position, orientation and transform.
Name Type Description options
Object Objects have the following properties: Name Type Description destination
Cartesian3 | Rectangle optional The final position of the camera in the WGS84 world coordinate system, or the rectangular area visible in a top-down view. orientation
Object optional An object containing the attributes of direction, up, heading, pitch, and roll. By default, the orientation points to the center of the frame in 3D and to the negative z direction in Columbus views. The up direction (up) points in the local north direction in 3D and in the positive y direction in the Columbus view. In infinite scroll mode, the 2D view does not use orientation. endTransform
Matrix4 optional Represents the transformation matrix of the camera's reference coordinate system. convert
Boolean optional Whether to convert the camera's final position from world coordinates to scene coordinates, the default value is True. Example:
// 1. Set position by top-down view. viewer.camera.setView({ destination : SuperMap3D.Cartesian3.fromDegrees(-117.16, 32.71, 15000.0) }); // 2 Set the view by azimuth, pitch, and roll. viewer.camera.setView({ destination : cartesianPosition, orientation: { heading : SuperMap3D.Math.toRadians(90.0), // east, default value is 0.0 (north) pitch : SuperMap3D.Math.toRadians(-90), // default value (looking down) roll : 0.0 // default value } }); // 3. The camera space position remains unchanged, but the azimuth, pitch and roll angles are changed. viewer.camera.setView({ orientation: { heading : SuperMap3D.Math.toRadians(90.0), // east, default value is 0.0 (north) pitch : SuperMap3D.Math.toRadians(-90), // default value (looking down) roll : 0.0 // default value } }); // 4. Look at the rectangle with a top-down view. viewer.camera.setView({ destination : SuperMap3D.Rectangle.fromDegrees(west, south, east, north) }); // 5. Set the camera position by using the orientation of the unit vector. viewer.camera.setView({ destination : SuperMap3D.Cartesian3.fromDegrees(-122.19, 46.25, 5000.0), orientation : { direction : new SuperMap3D.Cartesian3(-0.04231243104240401, -0.20123236049443421, -0.97862924300734), up : new SuperMap3D.Cartesian3(-0.47934589305293746, -0.8553216253114552, 0.1966022179118339) } });
-
Stop the camera from rotating around the center point.
-
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.
Name Type Description amount
Number optional The amount, in radians, to rotate by. Defaults to defaultLookAmount
.See:
-
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:
-
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.
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.
-
-
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. -
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. -
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. -
Zooms
amount
along the camera's view vector.Name Type Description amount
Number optional The amount to move. Defaults to defaultZoomAmount
.See:
-
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:
Type Definitions
-
A function that will execute when a flight is cancelled.
-
A function that will execute when a flight completes.