Camera

require(["esri/Camera"], function(Camera) { /* code goes here */ });
Class: esri/Camera
Inheritance: Camera Accessor
Since: ArcGIS API for JavaScript 4.0

The camera defines the position, tilt, and heading of the point from which the SceneView's visible extent is observed. It is not associated with device hardware. This class only applies to 3D SceneViews.

When a SceneView is created, it contains a camera property.

See also:

Constructors

new Camera(properties)
Parameter:
properties Object
optional

See the properties for a list of all the properties that may be passed into the constructor.

Property Overview

Any properties can be set, retrieved or listened to. See the Working with Properties topic.
Show inherited properties Hide inherited properties
Name Type Summary Class
String

The name of the class.

more details
more detailsAccessor
Number

The diagonal field of view (fov) angle for the camera.

more details
more detailsCamera
Number

The compass heading of the camera in degrees.

more details
more detailsCamera
Point

The position of the camera defined by a map point.

more details
more detailsCamera
Number

The tilt of the camera in degrees with respect to the surface as projected down from the camera position.

more details
more detailsCamera

Property Details

declaredClass Stringreadonly inherited
Since: ArcGIS API for JavaScript 4.7

The name of the class. The declared class name is formatted as esri.folder.className.

fov Number

The diagonal field of view (fov) angle for the camera. The range of angles must be between 1 and 170 degrees, where smaller fov angles mimic a telephoto lens zooming in, and larger fov angles mimic a fish-eye lens zooming out. The default angle is 55 degrees. This property is not persisted in webscene presentation slides.

camera field of view examples

Default Value:55
heading Number

The compass heading of the camera in degrees. Heading is zero when north is the top of the screen. It increases as the view rotates clockwise. The angles are always normalized between 0 and 360 degrees.

Default Value:0
Examples:
// Initialize the view with a specific camera
const cam = new Camera({
  heading: 90, // face due east
  tilt: 45, // looking from a bird's eye view
  position: [ -122, 38, 20000 ]  // creates a point instance (x,y,z)
});
// Initialize the view with a specific camera
const cam = new Camera({
  heading: 90, // face due east
  tilt: 45, // looking from a bird's eye view
  position: {
    latitude: 38,
    longitude: -122,
    z: 20000,
    spatialReference: { wkid: 3857 }
  }
});

view.camera = cam;
// Set the heading of the view's camera to 180 degrees
const newCam = view.camera.clone();
newCam.heading = 180;
view.camera = newCam;
// go to the pt geometry facing due south
view.goTo({ target: pt, heading: 180 });
position Pointautocast

The position of the camera defined by a map point.

Z-values defined in a geographic or metric coordinate system are expressed in meters. However, in local scenes that use a projected coordinate system, vertical units are assumed to be the same as the horizontal units specified by the service.

Example:
const cam = view.camera.clone();
// the position is autocast as new Point()
cam.position = {
  latitude: 38,
  longitude: -122,
  z: 50000  // altitude in meters
}
// go to the new camera
view.goTo(cam);
tilt Number

The tilt of the camera in degrees with respect to the surface as projected down from the camera position. Tilt is zero when looking straight down at the surface and 90 degrees when the camera is looking parallel to the surface.

Default Value:0
Examples:
// Initialize the view with a specific camera
const cam = new Camera({
  heading: 90, // face due east
  tilt: 45, // looking from a bird's eye view
  position: {
    latitude: 38,
    longitude: -122,
    spatialReference: { wkid: 3857 }
  }
});

view.camera = cam;
// go to the pt geometry facing directly down
view.goTo({ target: pt, tilt: 0 });

Method Overview

Name Return Type Summary Class
Camera

Creates a deep clone of the camera object.

more details
more detailsCamera
*

Creates a new instance of this class and initializes it with values from a JSON object generated from a product in the ArcGIS platform.

more details
more detailsCamera
Object

Converts an instance of this class to its ArcGIS portal JSON representation.

more details
more detailsCamera

Method Details

clone(){Camera}

Creates a deep clone of the camera object.

Returns:
Type Description
Camera A deep clone of the Camera instance that invoked this method.
Example:
// clone the view's camera since its geometry cannot be directly modified
const cam = view.camera.clone();
// the position is autocast as new Point()
cam.position = {
  latitude: 38,
  longitude: -122,
  spatialReference: { wkid: 3857 }
}
// set the view to the new camera
view.camera = cam;
fromJSON(json){*}static

Creates a new instance of this class and initializes it with values from a JSON object generated from a product in the ArcGIS platform. The object passed into the input json parameter often comes from a response to a query operation in the REST API or a toJSON() method from another ArcGIS product. See the Using fromJSON() topic in the Guide for details and examples of when and how to use this function.

Parameter:
json Object

A JSON representation of the instance in the ArcGIS format. See the ArcGIS REST API documentation for examples of the structure of various input JSON objects.

Returns:
Type Description
* Returns a new instance of this class.
toJSON(){Object}

Converts an instance of this class to its ArcGIS portal JSON representation. See the Using fromJSON() guide topic for more information.

Returns:
Type Description
Object The ArcGIS portal JSON representation of an instance of this class.