ArcGISScene
within a SceneView
.
A Camera object can be thought of as a camera that you look through to see a viewable area of a scene. What
you see depends on how you orientate the camera and how far it is above the Surface
.
A camera has four main configurable properties:
 Location  The 3D point in space where the camera is located.
 Heading  The angle around the zaxis the camera is rotated. The angle is clockwise from north in the East, North, Up (ENU) ground reference frame. The value is between 0 and 360. 0 is looking North and 90 is looking East.
 Pitch  The angle around the yaxis the camera is rotated. The value is between 0 to 180. 0 is looking straight down, 180 is looking straight up.
 Roll  The angle around the xaxis the camera is rotated. The value is between 0 and 360. 0 is horizontal, 180 is upside down.
You can construct a Camera based on these values or you can obtain it from the scene view's current
viewpoint using SceneView.getCurrentViewpointCamera()
. The Camera is immutable which means that
once it is created it you cannot modify it.
You can define the user's camera interactions using the scene view's camera controller. The default camera
controller (GlobeCameraController
) allows users to freely move and focus the camera anywhere in the scene.
Other camera controllers provide specialized behavior, such as:
 The
OrbitGeoElementCameraController
locks the camera to maintain focus on a (possibly moving)GeoElement
.  The
OrbitLocationCameraController
locks the camera to orbit and to maintain focus on a fixed location.
 Since:
 100.0.0

Constructor Summary
ConstructorDescriptionCamera
(double latitude, double longitude, double altitude, double heading, double pitch, double roll) Creates a camera with the specified latitude, longitude, altitude, heading, pitch, and roll.Creates a camera with the specified location, heading, pitch, and roll.Creates a camera based on a point to look at, the distance to this point, heading, pitch, and roll.Camera
(TransformationMatrix transformationMatrix) Creates a camera from a transformation matrix. 
Method Summary
Modifier and TypeMethodDescriptionelevate
(double deltaAltitude) Creates a copy of the camera with the change in altitude applied.double
Gets the heading of the camera.Gets the point geometry containing the location and altitude of the camera.double
getPitch()
Gets the pitch of the camera.double
getRoll()
Gets the roll of the camera.Gets the camera'sTransformationMatrix
.moveForward
(double distance) Creates a copy of the camera with its location moved by the specified distance in the direction the camera is facing.Creates a copy of the camera with a new location.moveToward
(Point targetPoint, double distance) Creates a copy of the camera with the camera moved in the direction of a target point by the specified distance.rotateAround
(Point targetPoint, double deltaHeading, double deltaPitch, double deltaRoll) Creates a copy of the camera with the heading and pitch rotated from a specified target point by the delta angles in degrees.rotateTo
(double heading, double pitch, double roll) Creates a copy of the camera with the specified heading, pitch and roll values.zoomToward
(Point targetPoint, double factor) Creates a copy of the camera with its location moved in the direction of a target point by the specified zoom factor.

Constructor Details

Camera
public Camera(double latitude, double longitude, double altitude, double heading, double pitch, double roll) Creates a camera with the specified latitude, longitude, altitude, heading, pitch, and roll. Parameters:
latitude
 the latitude of the camera position in degreeslongitude
 the longitude of the camera position in degreesaltitude
 the altitude of the camera position in meters. If the altitude is below theArcGISScene.getBaseSurface()
and theSurface.getNavigationConstraint()
is set toNavigationConstraint.STAY_ABOVE
, the camera will be located at theSurface
. Note: that the default isNavigationConstraint.STAY_ABOVE
.heading
 the angle around the zaxis the camera is rotated. The angle is clockwise from north in the East, North, Up (ENU) ground reference frame. The value is between 0 and 360. 0 is looking North and 90 is looking East. Values are wrapped around so that they fall within 0 to 360.pitch
 the angle around the yaxis the camera is rotated in the East, North, Up (ENU) ground reference frame. The value is between 0 and 180. 0 is looking straight down and 180 is looking straight up. A negative value defaults to 0 and a value greater than 180 defaults to 180. If the behavior of a negative pitch is required, then the corresponding transformation with positive pitch can be set instead. For example, if heading:0 pitch:20 roll:0 is required then heading:180 pitch:20 roll:180 can be used instead.roll
 the angle around the xaxis the camera is rotated in the East, North, Up (ENU) ground reference frame. The value is between 0 and 360. 0 is horizontal, 180 is upside down. Values are wrapped so that they fall within 0 to 360. Since:
 100.0.0

Camera
Creates a camera with the specified location, heading, pitch, and roll. Parameters:
location
 a point geometry containing the location and altitude at which to place the camera. If the altitude is below theArcGISScene.getBaseSurface()
and theSurface.getNavigationConstraint()
is set toNavigationConstraint.STAY_ABOVE
, the camera will be located at theSurface
. Note: that the default isNavigationConstraint.STAY_ABOVE
. If the point has a spatial reference, the point projects to WGS84. Otherwise, a point spatial reference of WGS84 is assumed.heading
 the angle around the zaxis the camera is rotated. The angle is clockwise from north in the East, North, Up (ENU) ground reference frame. The value is between 0 and 360. 0 is looking North and 90 is looking East. Values are wrapped around so that they fall within 0 to 360.pitch
 the angle around the yaxis the camera is rotated in the East, North, Up (ENU) ground reference frame. The value is between 0 and 180. 0 is looking straight down and 180 is looking straight up. A negative value defaults to 0 and a value greater than 180 defaults to 180. If the behavior of a negative pitch is required, then the corresponding transformation with positive pitch can be set instead. For example, if heading:0 pitch:20 roll:0 is required then heading:180 pitch:20 roll:180 can be used instead.roll
 the angle around the xaxis the camera is rotated in the East, North, Up (ENU) ground reference frame. The value is between 0 and 360. 0 is horizontal, 180 is upside down. Values are wrapped so that they fall within 0 to 360. Throws:
IllegalArgumentException
 if location is null Since:
 100.0.0

Camera
Creates a camera based on a point to look at, the distance to this point, heading, pitch, and roll.Note: the given values may mean that the point is not visible on screen. You can check its visibility using
SceneView.locationToScreen(Point)
. Parameters:
lookAtPoint
 the point in space the camera will be pointing atdistance
 the distance in meters between the lookAtPoint and the camera locationheading
 the angle around the zaxis the camera is rotated. The angle is clockwise from north in the East, North, Up (ENU) ground reference frame. The value is between 0 and 360. 0 is looking North and 90 is looking East. Values are wrapped around so that they fall within 0 to 360.pitch
 the angle around the yaxis the camera is rotated in the East, North, Up (ENU) ground reference frame. The value is between 0 and 180. 0 is looking straight down and 180 is looking straight up. A negative value defaults to 0 and a value greater than 180 defaults to 180. If the behavior of a negative pitch is required, then the corresponding transformation with positive pitch can be set instead. For example, if heading:0 pitch:20 roll:0 is required then heading:180 pitch:20 roll:180 can be used instead.roll
 the angle around the xaxis the camera is rotated in the East, North, Up (ENU) ground reference frame. The value is between 0 and 360. 0 is horizontal, 180 is upside down. Values are wrapped so that they fall within 0 to 360. Since:
 100.0.0

Camera
Creates a camera from a transformation matrix. TheTransformationMatrix
describes the camera's location and direction it is looking. Parameters:
transformationMatrix
 theTransformationMatrix
used to create the camera. TheTransformationMatrix
describes the camera's location and the direction it is looking. Using this constructor with the location provided by ARKit/ARCore is necessary for enabling augmented reality. Throws:
NullPointerException
 if transformationMatrix is null Since:
 100.6.0


Method Details

getLocation
Gets the point geometry containing the location and altitude of the camera. Returns:
 the location of the camera
 Since:
 100.0.0

getPitch
public double getPitch()Gets the pitch of the camera.The angle around the yaxis the camera is rotated in the East, North, Up (ENU) ground reference frame. The value is between 0 and 180. 0 is looking straight down and 180 is looking straight up.
 Returns:
 the pitch in degrees
 Since:
 100.0.0

getHeading
public double getHeading()Gets the heading of the camera.The angle around the zaxis the camera is rotated. The angle is clockwise from north in the East, North, Up (ENU) ground reference frame. The value is between 0 and 360. 0 is looking North and 90 is looking East.
 Returns:
 the heading
 Since:
 100.0.0

getRoll
public double getRoll()Gets the roll of the camera.The angle around the xaxis the camera is rotated in the East, North, Up (ENU) ground reference frame. The value is between 0 and 360. 0 is horizontal, 180 is upside down.
 Returns:
 the roll
 Since:
 100.0.0

getTransformationMatrix
Gets the camera'sTransformationMatrix
. It does not matter if the camera was created with aTransformationMatrix
, the camera's location and orientation will always be converted into aTransformationMatrix
. Returns:
 the TransformationMatrix representation of the camera's location and rotation
 Since:
 100.6.0

elevate
Creates a copy of the camera with the change in altitude applied. Parameters:
deltaAltitude
 the altitude delta to apply to the output camera Returns:
 a copy of the camera with an elevation delta adjusted by the parameter deltaAltitude
 Since:
 100.0.0
 See Also:

moveForward
Creates a copy of the camera with its location moved by the specified distance in the direction the camera is facing. Parameters:
distance
 the distance in meters Returns:
 a new Camera
 Since:
 100.0.0

moveToward
Creates a copy of the camera with the camera moved in the direction of a target point by the specified distance. Parameters:
targetPoint
 the point location towards which the camera will movedistance
 the distance in meters the output camera will be moved Returns:
 a copy of the camera with the position moved
 Throws:
IllegalArgumentException
 if targetPoint is null Since:
 100.0.0
 See Also:

rotateAround
public Camera rotateAround(Point targetPoint, double deltaHeading, double deltaPitch, double deltaRoll) Creates a copy of the camera with the heading and pitch rotated from a specified target point by the delta angles in degrees. Parameters:
targetPoint
 the point location around which the camera will movedeltaHeading
 the delta angle in degrees by which the output camera heading will be rotated around the target pointdeltaPitch
 the delta angle in degrees by which the output camera pitch will be rotated around the target pointdeltaRoll
 the delta angle in degrees by which the output camera roll will be rotated around the target point Returns:
 a copy of the camera with the position moved
 Throws:
IllegalArgumentException
 if targetPoint is null Since:
 100.0.0
 See Also:

rotateTo
Creates a copy of the camera with the specified heading, pitch and roll values. Parameters:
heading
 the angle around the zaxis the new camera is rotated. The angle is clockwise from north in the East, North, Up (ENU) ground reference frame. The value is between 0 and 360. 0 is looking North and 90 is looking East. Values are wrapped around so that they fall within 0 to 360.pitch
 the angle around the yaxis the camera is rotated in the East, North, Up (ENU) ground reference frame. The value is between 0 and 180. 0 is looking straight down and 180 is looking straight up. A negative value defaults to 0 and a value greater than 180 defaults to 180. If the behavior of a negative pitch is required, then the corresponding transformation with positive pitch can be set instead. For example, if heading:0 pitch:20 roll:0 is required then heading:180 pitch:20 roll:180 can be used instead.roll
 the angle around the xaxis the new camera is rotated in the East, North, Up (ENU) ground reference frame. The value is between 0 and 360. 0 is horizontal, 180 is upside down. Values are wrapped so that they fall within 0 to 360. Returns:
 a copy of the camera with the position moved
 Since:
 100.0.0
 See Also:

moveTo
Creates a copy of the camera with a new location. Parameters:
location
 the location to move the output camera to Returns:
 a copy of the camera with the location changed
 Throws:
NullPointerException
 if location is null Since:
 100.0.0
 See Also:

zoomToward
Creates a copy of the camera with its location moved in the direction of a target point by the specified zoom factor. Parameters:
targetPoint
 the point location the new camera zooms towardsfactor
 the zoom factor the camera will be moved by based on the distance between the current camera location and the target point. For example, a factor of 2 will divide the distance in half for the new camera. Negative values will have no effect. Returns:
 a copy of the camera with the position moved
 Throws:
IllegalArgumentException
 if targetPoint is null Since:
 100.0.0
 See Also:
