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

Overview

A MapView displays a 2D view of a Map instance. An instance of MapView must be created to render a Map (along with its operational and base layers) in 2D. To render a map and its layers in 3D, see the documentation for SceneView. For a general overview of views, see View.

For a map to be visible to the user in the DOM, a MapView must be created and reference a minimum of two objects: a Map instance and a DOM element. Each is set in the map and container properties respectively.

// Create a MapView instance (for 2D viewing)
var view = new MapView({
  map: myMap,  // References a Map instance
  container: "viewDiv"  // References the ID of a DOM element
});

Using the view

In addition to being responsible for the rendering of the Map and its elements, the MapView handles the interaction between the user and the map. For example, the traditional map scale isn't set on the Map; it's set on the MapView.

view.scale = 24000; // Sets a 1:24,0000 scale on the view

You can set the inital extent (or visible portion of the map) by using either a combination of center and zoom, or by setting the extent property.

// Set the center and zoom level on the view
var view = new MapView({
  center: [-112, 38], // Sets the center point of the view at a specified lon/lat
  zoom: 13 // Sets the zoom LOD to 13
});

// Set the extent on the view
view.extent = new Extent({
  xmin: -9177882.740387835,
  ymin: 4246761.27629837,
  xmax: -9176720.658692285,
  ymax: 4247967.548150893,
  spatialReference: 102100
});

An instance of MapView is also a Promise. Call the .then() method on the MapView instance to execute processes that may only run after the map has loaded.

// Create a MapView instance (for 2D viewing)
var view = new MapView({
  map: myMap,  // References a Map instance
  container: "viewDiv"  // References the ID of a DOM element
});

view.then(function(){
 // All the resources in the MapView and the map have loaded. Now execute additional processes
}, function(error){
 // Use the errback function to handle when the view doesn't load properly
 console.log("The view's resources failed to load: ", error);
});

To learn more about Promises, see this article in the Guide. For live examples of view.then(), see the how to Add 2D overview map in SceneView samples.

Programmatic navigation

Because some view properties override one another (e.g. scale and extent), there is a set priority in which these properties are applied during construction of the view (until the view becomes ready). The following table describes which properties have priority during view construction (properties that are overridden will have no effect during construction).

PropertyOverrides
viewpointextent, center, scale, zoom
extentcenter, scale, zoom
scalezoom

Because the View handles user interaction, events such as click are handled on the MapView. Animations are also possible with the goTo() method, which allows you to change or move the MapView from one extent to another.

MapView navigation

The default MapView navigation includes mouse interaction as described in the table below.

ActionMapView behavior
DragPan
Double-clickZoom in at the cursor
Shift+Double-clickZoom out at the cursor
Scroll forwardZoom in at the cursor
Scroll backwardZoom out at the cursor
Right-click+Drag2D-rotate
Shift+Left-click+DragZoom to extent of drawn graphic
Arrow KeysNudge the view to left, right, up or down
NAdjust the view to point north
ARotate the view counterclockwise
DRotate the view clockwise
-Incrementally zoom in at the center of the map
+Incrementally zoom out at the center of the map
See also:

Constructors

new MapView(properties)

Parameter:
properties Object
optional

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

Example:
// Typical usage
var view = new MapView({
  // ID of DOM element containing the view
  container: "viewDiv",
  // Map/WebMap object
  map: new Map()
});

Property Overview

Any properties can be set, retrieved or listened to. See the Working with Properties topic.
NameTypeSummary
Collection

Collection containing a flat list of all the created LayerViews related to the basemap, operational layers, and group layers in this view.

more details
more details
ViewAnimation

Represents an ongoing view animation initialized by goTo().

more details
more details
Object

A convenience property used for defining the breakpoints on the height and width of the view.

more details
more details
Point

Represents the view's center point.

more details
more details
Object

Specifies constraints to scale, zoom, and rotation that may be applied to the MapView.

more details
more details
HTMLDivElement | String

The id or node representing the DOM element containing the view.

more details
more details
String

The name of the class.

more details
more details
Extent

The extent represents the visible portion of a map within the view as an instance of Extent.

more details
more details
Collection

Allows for adding graphics directly to the default graphics in the View.

more details
more details
Number

The height of the view in pixels read from the view container element.

more details
more details
String

A convenience property indicating the general size of the view's height.

more details
more details
Boolean

Indication whether the view is being interacted with (for example when panning).

more details
more details
Collection

A collection containing a hierarchical list of all the created LayerViews of the operational layers in the map.

more details
more details
Map

An instance of a Map object to display in the view.

more details
more details
String

A convenience property indicating the view's orientation.

more details
more details
Object

Use the padding property to make the center, and extent, etc.

more details
more details
Popup

A Popup object that displays general content or attributes from layers in the map.

more details
more details
Boolean

When true, this property indicates whether the view successfully satisfied all dependencies, signaling that the following conditions are met.

more details
more details
String

Defines which anchor stays still while resizing the browser window.

more details
more details
Boolean

Indicates if the view is being resized.

more details
more details
Number

The clockwise rotation of due north in relation to the top of the view in degrees.

more details
more details
Number

Represents the map scale at the center of the view.

more details
more details
Number[]

An array containing the width and height of the view in pixels, e.g.

more details
more details
SpatialReference

The spatial reference of the view.

more details
more details
Boolean

Indication whether the view is animating, being interacted with or resizing.

more details
more details
Boolean

Indicates if the view is visible on the page.

more details
more details
String

The dimension of the view.

more details
more details
DefaultUI

Exposes the default widgets available in the view and allows you to toggle them on and off.

more details
more details
Boolean

Indicates whether the view is being updated by additional data requests to the network, or by processing received data.

more details
more details
Viewpoint

Represents the current view as a Viewpoint or point of observation on the view.

more details
more details
Number

The width of the view in pixels read from the view container element.

more details
more details
String

A convenience property indicating the general size of the view's width.

more details
more details
Number

Represents the level of detail (LOD) at the center of the view.

more details
more details

Property Details

allLayerViewsCollection

Collection containing a flat list of all the created LayerViews related to the basemap, operational layers, and group layers in this view.

See also:

animationViewAnimation

Represents an ongoing view animation initialized by goTo(). You may watch this property to be notified of the animation's state.

See also:
Example:
view.watch("animation", function(response){
  if(response && response.state === "running"){
    console.log("Animation in progress");
  }
  else{
   console.log("No animation");
  }
});

breakpointsObject

A convenience property used for defining the breakpoints on the height and width of the view. The sizes specified here determine the values of the widthBreakpoint and heightBreakpoint properties depending on the view's size.

Note that if the view's height or width is larger than the value you set in the large property, then the value of widthBreakpoint or heightBreakpoint will be xlarge.

Properties:
xsmall Number

Sets the xsmall breakpoint in pixels used by widthBreakpoint and heightBreakpoint. If the view's height or width is smaller than this value, then the value of widthBreakpoint or heightBreakpoint will be xsmall.

Default Value: 544

small Number

Sets the small breakpoint in pixels used by widthBreakpoint and heightBreakpoint. If the view's height or width is between this value and the value of the xsmall property, then the value of widthBreakpoint or heightBreakpoint will be small.

Default Value: 768

medium Number

Sets the medium breakpoint in pixels used by widthBreakpoint and heightBreakpoint. If the view's height or width is between this value and the value of the small property, then the value of widthBreakpoint or heightBreakpoint will be medium.

Default Value: 992

large Number

Sets the large breakpoint in pixels used by widthBreakpoint and heightBreakpoint. If the view's height or width is between this value and the value of the medium property, then the value of widthBreakpoint or heightBreakpoint will be large.

Default Value: 1200

Represents the view's center point. When setting the center, you may pass a Point instance or a longitude/latitude pair (e.g. [long,lat]). Setting the center immediately changes the current view. For animating the view, see goTo().

If set in the constructor, this property will be ignored if the viewpoint or extent properties are also set in the constructor.

The returned Point object is always in the spatial reference of the map and may be modified internally. To persist the returned object, create a clone using Point.clone().

See also:
Examples:
// Sets the initial center point of the view to lon/lat coordinates
var view = new MapView({
  center: [-112, 38]
});
// Updates the view's center point to a pre-determined Point object
var pt = new Point({
  x: 12804.24,
  y: -1894032.09,
  spatialReference: 2027
});
view.center = pt;

constraintsObject

Specifies constraints to scale, zoom, and rotation that may be applied to the MapView. See object specification below.

Properties:
lods LOD[]
optional

An array of LODs. If not specified, this value is read from the Map. This property may be autocast.

minScale Number
optional

The minimum scale the user is allowed to zoom to within the view.

maxScale Number
optional

The maximum scale the user is allowed to zoom to within the view. Setting this value to 0 allows the user to overzoom layer tiles.

minZoom Number
optional

The minimum zoom level the user is allowed to zoom to within the view.

maxZoom Number
optional

The maximum zoom level the user is allowed to zoom to within the view. Setting this value to 0 allows the user to overzoom layer tiles.

snapToZoom Boolean
optional

When true, the view snaps to the next LOD when zooming in or out. When false, the zoom is continuous.
Default: true

rotationEnabled Boolean
optional

Indicates whether the user can rotate the map.
Default: true

effectiveLODs LOD[]
optional

A read-only property that specifies the levels of detail (LODs) read from the Map.

effectiveMinZoom Number
optional

A read-only property that specifies the minimum zoom level the user is allowed to zoom to within the view.

effectiveMaxZoom Number
optional

A read-only property that specifies the maximum zoom level the user is allowed to zoom to within the view.

effectiveMinScale Number
optional

A read-only property that specifies the minimum scale the user is allowed to zoom to within the view.

effectiveMaxScale Number
optional

A read-only property that specifies the maximum scale the user is allowed to zoom to within the view.

Example:
view.constraints = {
  minScale: 500000,  // User cannot zoom out beyond a scale of 1:500,000
  maxScale: 0,  // User can overzoom tiles
  rotationEnabled: false  // Disables map rotation
};

The id or node representing the DOM element containing the view. This is typically set in the view's constructor.

Examples:
// Sets container to the DOM id
var view = new MapView({
  container: "viewDiv"  // ID of the HTML element that holds the view
});
// Sets container to the node
var viewNode = document.getElementById("viewDiv");
var view = new SceneView({
  container: viewNode
});

declaredClassStringreadonly

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

The extent represents the visible portion of a map within the view as an instance of Extent. Setting the extent immediately changes the view without animation. To animate the view, see goTo().

The returned Extent object is an internal reference which may be modified internally. To persist the returned object, create a copy using Extent.clone().

Default Value: null
See also:
Example:
var ext = new Extent({
  xmin: -13056650,
  ymin: 6077558,
  xmax: -13055709,
  ymax: 6077938,
  spatialReference: new SpatialReference({wkid:3857})
});
view.extent = ext;  // Updates the view without animation

graphicsCollection

Allows for adding graphics directly to the default graphics in the View.

See also:
Examples:
// Adds a graphic to the View
view.graphics.add(pointGraphic);
// Removes a graphic from the View
view.graphics.remove(pointGraphic);

heightNumberreadonly

The height of the view in pixels read from the view container element.

The view container needs to have a height greater than 0 to be displayed.

Default Value: 0

heightBreakpointString

A convenience property indicating the general size of the view's height. This value is determined based on where the view's height falls in the ranges defined in the breakpoints property. See the table below for a list of possible values.

Possible ValueDescription
xsmallThe height of the view is smaller than the value set in the xsmall breakpoint.
smallThe height of the view is between the values set in the xsmall and small breakpoints.
mediumThe height of the view is between the values set in the small and medium breakpoints.
largeThe height of the view is between the values set in the medium and large breakpoints.
xlargeThe height of the view is larger than the value set in the large breakpoint.
See also:
Example:
view.watch("heightBreakpoint", function(newVal){
  if (newVal === "xsmall"){
    // clear the view's default UI components if
    // app is used on a mobile device
    view.ui.components = [];
  }
});

interactingBooleanreadonly

Indication whether the view is being interacted with (for example when panning).

Default Value: false

layerViewsCollection

A collection containing a hierarchical list of all the created LayerViews of the operational layers in the map.

See also:

mapMap

An instance of a Map object to display in the view. A view may only display one map at a time. On the other hand, one Map may be viewed by multiple MapViews and/or SceneViews simultaneously.

This property is typically set in the constructor of the MapView or SceneView. See the class description for examples demonstrating the relationship between the map and the view.

orientationStringreadonly

A convenience property indicating the view's orientation. See the table below for a list of possible values.

Possible ValueDescription
landscapeThe width of the view is greater than its height.
portraitThe width of the view is equal to or smaller than its height.

paddingObject

Use the padding property to make the center, and extent, etc. work off a subsection of the full view. This is particularly useful when layering UI elements or semi-transparent content on top of portions of the view. See the view padding sample for an example of how this works.

Properties:
left Number

The left padding (in pixels).

top Number

The top padding (in pixels).

right Number

The right padding (in pixels).

bottom Number

The bottom padding (in pixels).

Default Value: {left: 0, top: 0, right: 0, bottom: 0}
See also:

A Popup object that displays general content or attributes from layers in the map.

The view has a default instance of Popup with predefined styles and a template for defining content. The content in this default instance may be modified directly in the popup's content or in a layer's PopupTemplate.

You may create a new Popup instance and set it to this property to customize the style, positioning, and content of the popup in favor of using the default popup instance on the view.

readyBooleanreadonly

When true, this property indicates whether the view successfully satisfied all dependencies, signaling that the following conditions are met.

When a view becomes ready it will resolve itself and invoke the callback defined in then() where code can execute on a working view. Subsequent changes to a view's readiness would typically be handled by watching view.ready and providing logic for cases where the map or container change.

Default Value: false
See also:

resizeAlignString

Defines which anchor stays still while resizing the browser window. The default, center, ensures the view's center point remains constantly visible as the window size changes. The other options allow the respective portion of the view to remain visible when the window's size is changed.

Possible values: center | left | right | top | bottom | top-left | top-right | bottom-left | bottom-right

Default Value: center

resizingBooleanreadonly

Indicates if the view is being resized.

Default Value: false

rotationNumber

The clockwise rotation of due north in relation to the top of the view in degrees. The view may be rotated by directly setting the rotation or by using the following mouse event: Right-click + Drag. Map rotation may be disabled by setting the rotationEnabled property in constraints to false. See the code snippet below for an example of this.

Default Value: 0
Examples:
// Due north is rotated 90 degrees, pointing to the right side of the view
view.rotation = 90;
// Due north is rotated 180 degrees, pointing to the bottom of the view
view.rotation = 180;
// Due north is rotated 270 degrees, pointing to the left side of the view
view.rotation = 270;
// Due north is rotated 0 degrees, pointing to the top of the view (the default)
view.rotation = 0; // 360 or multiple of 360 (e.g. 720) works here as well.
// Disables map rotation
view.constraints = {
  rotationEnabled: false
};

scaleNumber

Represents the map scale at the center of the view. Setting the scale immediately changes the view. For animating the view, see goTo().

See also:
Example:
view.scale = 24000;  // Sets the map scale in the view's center to 1:24,000

sizeNumber[]readonly

An array containing the width and height of the view in pixels, e.g. [width, height].

spatialReferenceSpatialReference autocast

The spatial reference of the view. This indicates the Projected Coordinate System or the Geographic Coordinate System used to locate geographic features in the map. In a SceneView the following supported coordinate systems are available.

The spatial reference can either be set explicitly or automatically derived from the following:

When using an Esri basemap, the default spatial reference is Web Mercator Auxiliary Sphere.

Default Value: null

stationaryBooleanreadonly

Indication whether the view is animating, being interacted with or resizing.

Default Value: true

suspendedBooleanreadonly

Indicates if the view is visible on the page. Is true if the view has no container, a height or width equal to 0, or the CSS visibility is hidden.

Default Value: true

typeStringreadonly

The dimension of the view. For MapView, this value is always 2d.

Exposes the default widgets available in the view and allows you to toggle them on and off. See DefaultUI for more details.

Examples:
var toggle = new BasemapToggle({
  view: view,
  nextBasemap: "hybrid"
});
// Adds an instance of BasemapToggle widget to the
// top right of the view.
view.ui.add(toggle, "top-right");
// Moves the zoom and BasemapToggle widgets to the
// bottom left of the view.
view.ui.move([ "zoom", toggle ], "bottom-left");
// Removes all the widgets from the bottom left of the view
view.ui.empty("bottom-left");
// Removes the compass widget from the view
view.ui.remove("compass");

updatingBooleanreadonly

Indicates whether the view is being updated by additional data requests to the network, or by processing received data.

Default Value: false

viewpointViewpoint

Represents the current view as a Viewpoint or point of observation on the view. Setting the viewpoint immediately changes the current view. For animating the view, see goTo().

The returned Viewpoint object is an internal reference which may be modified internally. To persist the returned object, create a copy using Viewpoint.clone().

See also:

widthNumberreadonly

The width of the view in pixels read from the view container element.

The view container needs to have a width greater than 0 to be displayed.

Default Value: 0

widthBreakpointString

A convenience property indicating the general size of the view's width. This value is determined based on where the view's width falls in the ranges defined in the breakpoints property. See the table below for a list of possible values.

Possible ValueDescription
xsmallThe width of the view is smaller than the value set in the xsmall breakpoint.
smallThe width of the view is between the values set in the xsmall and small breakpoints.
mediumThe width of the view is between the values set in the small and medium breakpoints.
largeThe width of the view is between the values set in the medium and large breakpoints.
xlargeThe width of the view is larger than the value set in the large breakpoint.
See also:
Example:
view.watch("widthBreakpoint", function(newVal){
  if (newVal === "xsmall"){
    // clear the view's default UI components if
    // app is used on a mobile device
    view.ui.components = [];
  }
});

zoomNumber

Represents the level of detail (LOD) at the center of the view. Setting the zoom immediately changes the current view. For animating the view, see goTo().

Setting this property in conjunction with center is a convenient way to set the initial extent of the view.

See also:
Examples:
view.zoom = 3;  // Sets the LOD to 3 (small map scale)
view.zoom = 18; // Sets the LOD to 18 (large map scale)
// Set the zoom level and center in the constructor
var view = new MapView({
  zoom: 10,
  center: [-120, 34],
  map: map
});

Method Overview

NameReturn TypeSummary
Promise

An instance of this class is a Promise.

more details
more details
Promise

Go the view to a given target.

more details
more details
Boolean

Indicates whether there is an event listener on the instance that matches the provided event name.

more details
more details
Promise

Searches for graphics that intersect the specified screen coordinates.

more details
more details
Boolean

An instance of this class is a Promise.

more details
more details
Boolean

An instance of this class is a Promise.

more details
more details
Boolean

An instance of this class is a Promise.

more details
more details
Object

Registers an event handler on the instance.

more details
more details
Promise

An instance of this class is a Promise.

more details
more details
Promise

An instance of this class is a Promise.

more details
more details
Point

Converts the given screen point to a map point.

more details
more details
ScreenPoint

Converts the given map point to a screen point.

more details
more details
Promise

Gets the LayerView created on the view for the given layer.

more details
more details

Method Details

always(callbackOrErrback){Promise}inherited

An instance of this class is a Promise. Therefore always() may be used to execute a function if the promise is rejected or resolved. The input function will always execute no matter the response. For more information about promises, see the Working with Promises guide page.

Parameter:
callbackOrErrback Function
optional

The function to execute when the promise is rejected or resolved.

Returns:
TypeDescription
PromiseReturns a new promise for the result of callbackOrErrback.
Example:
// Although this example uses MapView, any class instance that is a promise may use always() in the same way
var view = new MapView();
view.always(function(){
  // This function will always execute whether or not the promise is resolved or rejected
});

goTo(target, options){Promise}

Go the view to a given target. The target parameter can be one of the following:

  • [longitude, latitude] pair of coordinates
  • Geometry (or array of Geometry[])
  • Graphic (or array of Graphic[])
  • Viewpoint
  • Object with a combination of target, center and scale properties (with target being any of the types listed above). The center property is provided as a convenience to animate the MapView.center and is equivalent to specifying the target with the center Point

This function returns a promise which resolves as soon as the new view has been set to the target. If an animation is performed, then the returned promise is a ViewAnimation instance which is owned by the view and can be obtained using MapView.animation.

Parameters:

The target location/viewpoint to animate to. When using an object for target, use the properties in the table below.

Specification:
optional

The target of the animation.

center Number[]
optional

The MapView.center to go to.

scale Number
optional

The MapView.scale to go to.

zoom Number
optional

The MapView.zoom to go to.

options Object
optional

Animation options. See properties below for object specifications.

Specification:
animate Boolean
optional

Indicates if the transition to the new view should be animated.

Default Value: true

duration Number
optional

The duration of the animation in milliseconds.

easing String | Function
optional

The easing function used for the animation.

Default Value: ease

Possible Values: linear | ease | ease-in | ease-out | ease-in-out

Returns:
TypeDescription
PromiseA promise which resolves when the view is set to the target. When an animation is performed, then the the returned promise is a ViewAnimation.
Examples:
var pt = new Point({
  latitude: 49,
  longitude: -126
});

// go to the given point
view.goTo(pt);
var opts = {
  duration: 5000  // Duration of animation will be 5 seconds
};

// go to point at LOD 15 with custom duration
view.goTo({
  target: pt,
  zoom: 15
}, opts);
// go to same point using center and zoom
view.goTo({
  center: [-126, 49],
  zoom: 15
});

hasEventListener(type){Boolean}inherited

Indicates whether there is an event listener on the instance that matches the provided event name.

Parameter:
type String

The name of the event.

Returns:
TypeDescription
BooleanReturns true if the class supports the input event.

hitTest(screenPoint){Promise}

Searches for graphics that intersect the specified screen coordinates.

Parameters:
screenPoint Object

The screen coordinates of the click on the view.

Specification:

The horizontal screen coordinate of the click on the view.

The vertical screen coordinate of the click on the view.

Returns:
TypeDescription
PromiseWhen resolved, returns an object with two properties: screenPoint, which is the input ScreenPoint, and results, which is an array of objects with the specification below.
PropertyTypeDescription
mapPointPointThe location of the input screen point in map coordinates.
graphicGraphicThe graphic object that intersects the map point.
See also:
Example:
// Get the screen point from the view's click event
view.on("click", function(event){
 var screenPoint = {
  x: event.x,
  y: event.y
 };

  // Search for graphics at the clicked location
  view.hitTest(screenPoint).then(function(response){
    if(response.results[0].graphic){
      console.log("Top graphic found! Here it is: ", response.results[0].graphic);
    }
  });
});

isFulfilled(){Boolean}inherited

An instance of this class is a Promise. Therefore isFulfilled() may be used to verify if the promise is fulfilled (either resolved or rejected). If it is fulfilled, true will be returned. See the Working with Promises guide page for more information about promises.

Returns:
TypeDescription
BooleanIndicates whether the promise has been fulfilled (either resolved or rejected).

isRejected(){Boolean}inherited

An instance of this class is a Promise. Therefore isRejected() may be used to verify if the promise is rejected. If it is rejected, true will be returned. See the Working with Promises guide page for more information about promises.

Returns:
TypeDescription
BooleanIndicates whether the promise has been rejected.

isResolved(){Boolean}inherited

An instance of this class is a Promise. Therefore isResolved() may be used to verify if the promise is resolved. If it is resolved, true will be returned. See the Working with Promises guide page for more information about promises.

Returns:
TypeDescription
BooleanIndicates whether the promise has been resolved.

on(type, modifiersOrHandler, handler?){Object}inherited

Registers an event handler on the instance. Call this method to hook an event with a listener. See the Events summary table for a list of listened events.

Parameters:

The name of the event or the events to listen for.

modifiersOrHandler String[] | Function

Additional modifier keys to filter the events by. Alternatively, if no modifiers are required, the function to call when the event is fired.

handler? Function

The function to call when the event is fired, if modifiers were specified.

Returns:
TypeDescription
ObjectReturns an event handler with a remove() method that can be called to stop listening for the event.
PropertyTypeDescription
removeFunctionWhen called, removes the listener from the event.
See also:
Example:
view.on("click", function(event){
  // event is the event handle returned after the event fires.
  console.log(event.mapPoint);
});

// Fires `pointer-move` event when user clicks on "Shift"
// key and moves the pointer on the view.
view.on('pointer-move', ["Shift"], function(evt){
  var point = view2d.toMap({x: evt.x, y: evt.y});
  bufferPoint(point);
});

otherwise(errback){Promise}inherited

An instance of this class is a Promise. Use otherwise() to call a function once the promise is rejected.

Parameter:
errback Function
optional

The function to execute when the promise fails.

Returns:
TypeDescription
PromiseReturns a new promise for the result of errback.
Example:
// Although this example uses MapView, any class instance that is a promise may use otherwise() in the same way
var view = new MapView();
view.otherwise(function(error){
  // This function will execute if the promise is rejected due to an error
});

then(callback, errback, progback){Promise}inherited

An instance of this class is a Promise. Therefore then() may be leveraged once an instance of the class is created. This method takes two input parameters: a callback function and an errback function. The callback executes when the promise resolves (when the instance of the class loads). The errback executes if the promise fails. See the Working with Promises guide page for additional details.

Parameters:
callback Function
optional

The function to call when the promise resolves.

errback Function
optional

The function to execute when the promise fails.

progback Function
optional

The function to invoke when the promise emits a progress update.

Returns:
TypeDescription
PromiseReturns a new promise for the result of callback that may be used to chain additional functions.
Example:
// Although this example uses MapView, any class instance that is a promise may use then() in the same way
var view = new MapView();
view.then(function(){
  // This function will execute once the promise is resolved
}, function(error){
  // This function will execute if the promise is rejected due to an error
});

toMap(screenPoint, mapPoint){Point}

Converts the given screen point to a map point.

Parameters:
screenPoint ScreenPoint

The screen point to convert.

mapPoint Point
optional

The point object that will reference the result.

Returns:
TypeDescription
PointThe map point corresponding to the given screen point.

toScreen(point, screenPoint){ScreenPoint}

Converts the given map point to a screen point.

Parameters:
point Point

A point geometry.

screenPoint ScreenPoint
optional

ScreenPoint object that will reference the result.

Returns:
TypeDescription
ScreenPointThe screen point corresponding to the given map point.

whenLayerView(layer){Promise}inherited

Gets the LayerView created on the view for the given layer. The returned promise resolves when the layer view for the given layer has been created, or rejects with an error (for example if the layer is not part of the view, or if the layer type is not supported in this view).

Parameter:
layer Layer

The layer for which to obtain its LayerView.

Returns:
TypeDescription
PromiseResolves to an instance of LayerView for the specified layer.
See also:
Example:
// Create a feature layer from a url pointing to a Feature Service
var layer = new FeatureLayer(url);

map.add(layer);

view.whenLayerView(layer)
    .then(function(layerView) {
      // The layerview for the layer
    })
    .otherwise(function(error) {
      // An error occurred during the layerview creation
    });

Event Overview

NameTypeSummary
{mapPoint: Point,x: Number,y: Number,button: Number,type: String,stopPropagation: Function,timestamp: Number,native: Object}

Fires after a user clicks on the view.

more details
more details
{mapPoint: Point,x: Number,y: Number,button: Number,type: String,stopPropagation: Function,timestamp: Number,native: Object}

Fires after double-clicking on the view.

more details
more details
{action: String,x: Number,y: Number,origin: Object,type: String,stopPropagation: Function,timestamp: Number,native: Object}

Fires during a pointer drag on the view.

more details
more details
{mapPoint: Point,x: Number,y: Number,button: Number,type: String,stopPropagation: Function,timestamp: Number,native: Object}

Fires after holding either a mouse button or a single finger on the view for a short amount of time.

more details
more details
{repeat: Boolean,key: String,type: String,stopPropagation: Function,timestamp: Number,native: Object}

Fires after a keyboard key is pressed.

more details
more details
{type: String,stopPropagation: Function,timestamp: Number,native: Object}

Fires after a keyboard key is released.

more details
more details
{layer: Layer,layerView: LayerView}

Fires after each layer in the map has a corresponding LayerView created and rendered in the view.

more details
more details
{layer: Layer,layerView: LayerView}

Fires after a LayerView is destroyed and is no longer rendered in the view.

more details
more details
{x: Number,y: Number,deltaY: Number,type: String,stopPropagation: Function,timestamp: Number,native: Object}

Fires when a wheel button of a pointing device (typically a mouse) is scrolled on the view.

more details
more details
{pointerId: Number,pointerType: String,x: Number,y: Number,type: String,stopPropagation: Function,timestamp: Number,native: Object}

Fires after a mouse button is pressed, or a finger touches the display.

more details
more details
{pointerId: Number,pointerType: String,x: Number,y: Number,type: String,stopPropagation: Function,timestamp: Number,native: Object}

Fires after the mouse or a finger on the display moves.

more details
more details
{pointerId: Number,pointerType: String,x: Number,y: Number,type: String,stopPropagation: Function,timestamp: Number,native: Object}

Fires after a mouse button is released, or a display touch ends.

more details
more details
{oldWidth: Number,oldHeight: Number,width: Number,height: Number}

Fires when the view's size changes.

more details
more details

Event Details

Fires after a user clicks on the view. This event emits slightly slower than a key-down event to make sure that a double-click event isn't triggered instead.

Properties:
mapPoint Point

The point location of the click on the view in the spatial reference of the map.

The horizontal screen coordinate of the click on the view.

The vertical screen coordinate of the click on the view.

button Number

Indicates which mouse button was clicked.

ValueDescription
0left click (or touch)
1middle click
2right click
type String

For click the type is always click.

stopPropagation Function

Prevents event propagation bubbling up the event chain.

timestamp Number

Time stamp (in milliseconds) at which the event was emitted.

native Object

A standard DOM PointerEvent.

See also:
Example:
// Set up a click event handler and retrieve the screen point
view.on("click", function(evt) {
 // the hitTest() checks to see if any graphics in the view
 // intersect the given screen x, y coordinates
 var screenPoint = {
  x: evt.x,
  y: evt.y
 };
 view.hitTest(screenPoint)
  .then(getGraphics);
});

double-clickinherited

Fires after double-clicking on the view.

Properties:
mapPoint Point

The point location of the click on the view in the spatial reference of the map.

The horizontal screen coordinate of the click on the view.

The vertical screen coordinate of the click on the view.

button Number

Indicates which mouse button was clicked.

ValueDescription
0left click (or touch)
1middle click
2right click
type String

For double-click the type is always double-click.

stopPropagation Function

Prevents event propagation bubbling up the event chain.

timestamp Number

Time stamp (in milliseconds) at which the event was emitted.

native Object

A standard DOM PointerEvent.

Example:
view.on("double-click", function(event) {
  // The event object contains the mapPoint and the screen coordinates of the location
  // that was clicked.
  console.log("screen point", event.x, event.y);
  console.log("map point", event.mapPoint);
});

Fires during a pointer drag on the view.

Properties:
action String

Indicates the state of the drag.

Known Values: start | update | end

The horizontal screen coordinate of the pointer on the view.

The vertical screen coordinate of the pointer on the view.

origin Object

Screen coordinates of the start of the drag.

Specification:

The horizontal screen coordinate of the pointer on the view.

The vertical screen coordinate of the pointer on the view.

type String

For drag the type is always drag.

stopPropagation Function

Prevents event propagation bubbling up the event chain.

timestamp Number

Time stamp (in milliseconds) at which the event was emitted.

native Object

A standard DOM MouseEvent.

Example:
view.on("drag", function(evt){
 // Print out the current state of the
 // drag event.
 console.log("drag state", evt.action);
});

Fires after holding either a mouse button or a single finger on the view for a short amount of time.

Properties:
mapPoint Point

The point location of the click on the view in the spatial reference of the map.

The horizontal screen coordinate of the hold on the view.

The vertical screen coordinate of the hold on the view.

button Number

Indicates which mouse button was held down.

ValueDescription
0left mouse button (or touch)
1middle mouse button
2right mouse button
type String

For hold the type is always hold.

stopPropagation Function

Prevents event propagation bubbling up the event chain.

timestamp Number

Time stamp (in milliseconds) at which the event was emitted.

native Object

A standard DOM PointerEvent.

Example:
view.on("hold", function(event) {
  // The event object contains the mapPoint and the screen coordinates of the location
  // that was clicked.
  console.log("hold at screen point", event.x, event.y);
  console.log("hold at map point", event.mapPoint);
});

key-downinherited

Fires after a keyboard key is pressed.

Properties:
repeat Boolean

Indicates whether this is the first event emitted due to the key press, or a repeat.

key String

The key value that was pressed, according to the MDN full list of key values.

type String

For key-down the type is always key-down.

stopPropagation Function

Prevents event propagation bubbling up the event chain.

timestamp Number

Time stamp (in milliseconds) at which the event was emitted.

native Object

A standard DOM KeyboardEvent.

Example:
// Zoom in when user clicks on "a" button
// Zoom out when user clicks on "s" button
view.on("key-down", function(evt){
 console.log("key-down", evt);

 if (evt.key === "a"){
   var zm = view.zoom + 1;

   view.goTo({
     target: view.center,
     zoom: zm
   });
 }
 else if(evt.key == "s"){
   var zm = view.zoom - 1;

   view.goTo({
     target: view.center,
     zoom: zm
   });
 }
});

key-upinherited

Fires after a keyboard key is released.

Properties:
type String

For key-up the type is always key-up.

stopPropagation Function

Prevents event propagation bubbling up the event chain.

timestamp Number

Time stamp (in milliseconds) at which the event was emitted.

native Object

A standard DOM KeyboardEvent.

layerview-createinherited

Fires after each layer in the map has a corresponding LayerView created and rendered in the view.

Properties:
layer Layer

The layer in the map for which the layerView was created.

layerView LayerView

The LayerView rendered in the view representing the layer in layer.

See also:
Example:
// This function fires each time a layer view is created for a layer in
// the map of the view.
view.on("layerview-create", function(event) {
  // The event contains the layer and its layer view that has just been
  // created. Here we check for the creation of a layer view for a layer with
  // a specific id, and log the layer view
  if (event.layer.id === "satellite") {
    // The LayerView for the desired layer
    console.log(event.layerView);
  }
});

layerview-destroyinherited

Fires after a LayerView is destroyed and is no longer rendered in the view. This happens for example when a layer is removed from the map of the view.

Properties:
layer Layer

The layer in the map for which the layerView was destroyed.

layerView LayerView

The LayerView that was destroyed in the view.

mouse-wheelinherited

Fires when a wheel button of a pointing device (typically a mouse) is scrolled on the view.

Properties:

The horizontal screen coordinate of the click on the view.

The vertical screen coordinate of the click on the view.

deltaY Number

Number representing the vertical scroll amount.

type String

For mouse-wheel the type is always mouse-wheel.

stopPropagation Function

Prevents event propagation bubbling up the event chain.

timestamp Number

Time stamp (in milliseconds) at which the event was emitted.

native Object

A standard DOM WheelEvent.

Example:
view.on("mouse-wheel", function(evt){
 // deltaY value is postive when wheel is scrolled up
 // and it is negative when wheel is scrolled down.
 console.log(evt.deltaY);
});

pointer-downinherited

Fires after a mouse button is pressed, or a finger touches the display.

Properties:
pointerId Number

Uniquely identifies a pointer between multiple down, move, and up events. Ids might get reused after a pointer-up event.

pointerType String

Indicates the pointer type.

Known Values: mouse | touch

The horizontal screen coordinate of the pointer on the view.

The vertical screen coordinate of the pointer on the view.

type String

For pointer-down the type is always pointer-down.

stopPropagation Function

Prevents event propagation bubbling up the event chain.

timestamp Number

Time stamp (in milliseconds) at which the event was emitted.

native Object

A standard DOM PointerEvent.

pointer-moveinherited

Fires after the mouse or a finger on the display moves.

Properties:
pointerId Number

Uniquely identifies a pointer between multiple down, move, and up events. Ids might get reused after a pointer-up event.

pointerType String

Indicates the pointer type.

Known Values: mouse | touch

The horizontal screen coordinate of the pointer on the view.

The vertical screen coordinate of the pointer on the view.

type String

Type of the event. It is always "pointer-move" for this event.

stopPropagation Function

Prevents further propagation of the current event bubbling up the event chain.

timestamp Number

Time stamp (in milliseconds) at which the event was created.

native Object

A standard DOM PointerEvent.

Example:
// Fires `pointer-move` event when user clicks on "Shift"
// key and moves the pointer on the view.
view.on('pointer-move', ["Shift"], function(evt){
  var point = view2d.toMap({x: evt.x, y: evt.y});
  bufferPoint(point);
});

pointer-upinherited

Fires after a mouse button is released, or a display touch ends.

Properties:
pointerId Number

Uniquely identifies a pointer between multiple down, move, and up events. Ids might get reused after a pointer-up event.

pointerType String

Indicates the pointer type.

Known Values: mouse | touch

The horizontal screen coordinate of the pointer on the view.

The vertical screen coordinate of the pointer on the view.

type String

Type of the event. It is always "pointer-up" for this event.

stopPropagation Function

Prevents further propagation of the current event bubbling up the event chain.

timestamp Number

Time stamp (in milliseconds) at which the event was created.

native Object

A standard DOM PointerEvent.

resizeinherited

Fires when the view's size changes.

Properties:
oldWidth Number

The previous view width in pixels

oldHeight Number

The previous view height in pixels

width Number

The new measured view width in pixels

height Number

The new measured view height in pixels

See also:

API Reference search results

NameTypeModule

There were no match results from your search criteria.