Class Camera
Used for defining the perspective of a scene. It is a visual snapshot of an observation of the Earth with various layers displayed in a SceneView.
Namespace: Esri.ArcGISRuntime.Mapping
Assembly: Esri.ArcGISRuntime.dll
Syntax
public class Camera
Remarks
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:
The camera orientation uses a local right-handed XYZ coordinate system aligned to East, North, Up (ENU): X = East, Y = North, Z = Up.
- Location - The 3D point in space where the camera is located. The camera will adopt the spatial reference of
the point at the time of creation. If a spatial reference is not supplied, a spatial reference having a WGS84
horizontal coordinate system is assumed. When no vertical coordinate system is provided, a point's z value is
inferred based on the horizontal coordinate system's unit, interpreted as a height-based value relative to
the horizontal coordinate system's surface:
- Projected coordinate systems use the unit of the horizontal coordinate system.
- Geographic coordinate systems use meters.
- Heading - The angle around the z-axis at which 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, where 0 is looking North and 90 is looking East.
- Pitch - The angle around the x-axis at which the camera is rotated. The value is between 0 and 180, where 0 is looking straight down, 90 is looking towards the horizon, and 180 is looking straight up.
- Roll - The angle around the y-axis (the direction of sight) at which the camera is rotated. Positive values rotate counterclockwise in view space (for example, when looking north, 90 means the top of the screen points west). The value is between 0 and 360, where 0 is horizontal and 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 Esri.ArcGISRuntime.UI.Controls.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 (Esri.ArcGISRuntime.UI.Controls.GlobeCameraController) allows users to freely move and focus the camera anywhere in the scene. Other camera controllers provide specialized behavior, such as:
- The Esri.ArcGISRuntime.UI.Controls.OrbitGeoElementCameraController locks the camera to maintain focus on a (possibly moving) GeoElement.
- The Esri.ArcGISRuntime.UI.Controls.OrbitLocationCameraController locks the camera to orbit and to maintain focus on a fixed location.
Constructors
| Name | Description |
|---|---|
| Camera(MapPoint, double, double, double) | Initializes a new instance of the Camera class with the specified location, heading, pitch, and roll.
The Camera's spatial reference is derived from the |
| Camera(MapPoint, double, double, double, double) | Initializes a new instance of the Camera class based on a point to look at, the distance to this point, heading, pitch, and roll.
The Camera's spatial reference is derived from the |
| Camera(TransformationMatrix) | Initializes a new instance of the Camera class using a transformation matrix. |
| Camera(double, double, double, double, double, double) | Initializes a new instance of the Camera class with the specified latitude, longitude, altitude, heading, pitch, and roll. The Camera's spatial reference will be WGS84. |
Properties
| Name | Description |
|---|---|
| Heading | Gets the heading of the camera. |
| Location | Gets the point geometry containing the 3D location of the camera (x,y,z). |
| Pitch | Gets the pitch of the camera. |
| Roll | Gets the roll of the camera. |
| Transformation | Gets the camera's transformation matrix. |
Methods
| Name | Description |
|---|---|
| Elevate(double) | Returns a new Camera with the specified change in elevation applied. |
| MoveForward(double) | Returns a new Camera with its location moved by the specified distance in the direction the camera is facing. |
| MoveTo(MapPoint) | Returns a new Camera with a new center position. Location is the point in space where the camera is located. Setting the location can be done using this Method or establish the location as part of one of the Camera Constructors. |
| MoveToward(MapPoint, double) | Returns a new Camera moved in the direction of a target point by the specified distance. |
| RotateAround(MapPoint, double, double, double) | Returns a new Camera with the heading and pitch rotated from a specified target point by the delta angles in degrees. |
| RotateTo(double, double, double) | Returns a new Camera with the specified heading, pitch and roll values. |
| ZoomToward(MapPoint, double) | Returns a new Camera with its location moved in the direction of a target point by the specified zoom factor. |
Applies to
| Target | Versions |
|---|---|
| .NET Standard 2.0 | 100.3 - 200.8 |
| .NET | 100.13 - 300.0 |
| .NET Windows | 100.13 - 300.0 |
| .NET Android | 200.0 - 300.0 |
| .NET iOS | 200.0 - 300.0 |
| .NET Framework | 100.0 - 200.8 |
| Xamarin.Android | 100.0 - 100.15 |
| Xamarin.iOS | 100.0 - 100.15 |
| UWP | 100.0 - 200.8 |