Camera

AMD: require(["esri/Camera"], (Camera) => { /* code goes here */ });
ESM: import Camera from "@arcgis/core/Camera";
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
Stringmore details

The name of the class.

more detailsAccessor
Numbermore details

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

more detailsCamera
Numbermore details

The compass heading of the camera in degrees.

more detailsCamera
Pointmore details

The position of the camera defined by a map point.

more detailsCamera
Numbermore details

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

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
Cameramore details

Creates a deep clone of the camera object.

more detailsCamera
*more details

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

more detailsCamera
Objectmore details

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

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 an ArcGIS product. 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.

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.