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
view.center = [-112, 38]; // Sets the center point of the view at a specified lon/lat
view.zoom = 13; // Sets the zoom LOD to 13
// Set the extent on the view
view.extent = new Extent({
xmin: -9177882,
ymin: 4246761,
xmax: -9176720,
ymax: 4247967,
spatialReference: {
wkid: 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).
Property | Overrides |
---|---|
viewpoint | extent, center, scale, zoom |
extent | center, scale, zoom |
scale | zoom |
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.
Action | MapView behavior |
---|---|
Drag | Pan |
Double-click | Zoom in at the cursor |
Shift+Double-click | Zoom out at the cursor |
Scroll forward | Zoom in at the cursor |
Scroll backward | Zoom out at the cursor |
Right-click+Drag | 2D-rotate |
Shift+Left-click+Drag | Zoom to extent of drawn graphic |
Arrow Keys | Nudge the view to left, right, up or down |
N | Adjust the view to point north |
A | Rotate the view counterclockwise |
D | Rotate the view clockwise |
- | Incrementally zoom in at the center of the map |
+ | Incrementally zoom out at the center of the map |
Constructors
new MapView(properties)
properties Object See the properties for a list of all the properties that may be passed into the constructor. |
// Typical usage
var view = new MapView({
// ID of DOM element containing the view
container: "viewDiv",
// Map/WebMap object
map: new Map()
});
Property Overview
Name | Type | Summary | |
---|---|---|---|
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; when setting the center, you may pass a Point instance or an array of numbers representing a longitude/latitude pair ( | more details | |
Object | Specifies constraints to scale, zoom, and rotation that may be applied to the MapView. more details | more details | |
HTMLDivElement | String | The | 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 | 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 bexlarge
.Properties:xsmall NumberSets 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 bexsmall
.
Default Value: 544small NumberSets 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 thexsmall
property, then the value of widthBreakpoint or heightBreakpoint will besmall
.
Default Value: 768medium NumberSets 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 thesmall
property, then the value of widthBreakpoint or heightBreakpoint will bemedium
.
Default Value: 992large NumberSets 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 themedium
property, then the value of widthBreakpoint or heightBreakpoint will belarge
.
Default Value: 1200Represents the view's center point; when setting the center, you may pass a Point instance or an array of numbers representing a longitude/latitude pair (
[-100.4593, 36.9014]
). 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:optionallods LOD[]An array of LODs. If not specified, this value is read from the Map. This property may be autocast.
optionalminScale NumberThe minimum scale the user is allowed to zoom to within the view.
optionalmaxScale NumberThe maximum scale the user is allowed to zoom to within the view. Setting this value to
0
allows the user to overzoom layer tiles.optionalminZoom NumberThe minimum zoom level the user is allowed to zoom to within the view.
optionalmaxZoom NumberThe 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.optionalsnapToZoom BooleanWhen
true
, the view snaps to the next LOD when zooming in or out. Whenfalse
, the zoom is continuous.
Default: trueoptionalrotationEnabled BooleanIndicates whether the user can rotate the map.
Default: trueoptionaleffectiveLODs LOD[]A read-only property that specifies the levels of detail (LODs) read from the Map.
optionaleffectiveMinZoom NumberA read-only property that specifies the minimum zoom level the user is allowed to zoom to within the view.
optionaleffectiveMaxZoom NumberA read-only property that specifies the maximum zoom level the user is allowed to zoom to within the view.
optionaleffectiveMinScale NumberA read-only property that specifies the minimum scale the user is allowed to zoom to within the view.
optionaleffectiveMaxScale NumberA 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 };
containerHTMLDivElement|String
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().
- See also:
Default Value: nullExample: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.
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: 0heightBreakpointString
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 Value Description xsmall The height of the view is smaller than the value set in the xsmall
breakpoint.small The height of the view is between the values set in the xsmall
andsmall
breakpoints.medium The height of the view is between the values set in the small
andmedium
breakpoints.large The height of the view is between the values set in the medium
andlarge
breakpoints.xlarge The 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: falselayerViewsCollection
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 Value Description landscape The width of the view is greater than its height. portrait The 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.
popup autocast
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.- The view has a map. If map is a WebMap or a WebScene, then the map or scene must be loaded.
- The view has a container with a size greater than
0
. - The view has a spatialReference.
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.- See also:
Default Value: falseresizeAlignString
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: centerresizingBooleanreadonly
Indicates if the view is being resized.
Default Value: falserotationNumber
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 therotationEnabled
property in constraints tofalse
. See the code snippet below for an example of this.Default Value: 0Examples:// 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:
- In the case of a SceneView, if the map is a WebScene instance, the WebScene.initialViewProperties.spatialReference is used.
- In all other cases, the spatial reference is derived from the first layer that loads in this order:
When using an Esri basemap, the default spatial reference is Web Mercator Auxiliary Sphere.
Default Value: nullstationaryBooleanreadonly
Indication whether the view is animating, being interacted with or resizing.
Default Value: truesuspendedBooleanreadonly
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 CSSvisibility
ishidden
.Default Value: truetypeStringreadonly
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: falseviewpointViewpoint
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: 0widthBreakpointString
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 Value Description xsmall The width of the view is smaller than the value set in the xsmall
breakpoint.small The width of the view is between the values set in the xsmall
andsmall
breakpoints.medium The width of the view is between the values set in the small
andmedium
breakpoints.large The width of the view is between the values set in the medium
andlarge
breakpoints.xlarge The 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
Name | Return Type | Summary | |
---|---|---|---|
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
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:optionalcallbackOrErrback FunctionThe function to execute when the promise is rejected or resolved.
Returns:Type Description Promise Returns 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
andscale
properties (withtarget
being any of the types listed above). Thecenter
property is provided as a convenience to animate the MapView.center and is equivalent to specifying thetarget
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.
optionalcenter Number[]The MapView.center to go to.
optionalscale NumberThe MapView.scale to go to.
optionalzoom NumberThe MapView.zoom to go to.
optionaloptions ObjectAnimation options. See properties below for object specifications.
Specification:optionalanimate BooleanIndicates if the transition to the new view should be animated.
Default Value: trueoptionalduration NumberThe duration of the animation in milliseconds.
optional The easing function used for the animation.
Default Value: ease
Possible Values: linear | ease | ease-in | ease-out | ease-in-out
Returns:Type Description Promise A 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 });
Indicates whether there is an event listener on the instance that matches the provided event name.
Parameter:type StringThe name of the event.
Returns:Type Description Boolean Returns true if the class supports the input event. hitTest(screenPoint){Promise}
Searches for graphics that intersect the specified screen coordinates.
Parameters:screenPoint ObjectThe screen coordinates of the click on the view.
Specification:x NumberThe horizontal screen coordinate of the click on the view.
y NumberThe vertical screen coordinate of the click on the view.
Returns:Type Description Promise When resolved, returns an object with two properties: screenPoint
, which is the input ScreenPoint, andresults
, which is an array of objects with the specification below.Property Type Description mapPoint Point The location of the input screen point in map coordinates. graphic Graphic The graphic object that intersects the map point. 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); } }); });
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:Type Description Boolean Indicates whether the promise has been fulfilled (either resolved or rejected). 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:Type Description Boolean Indicates whether the promise has been rejected. 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:Type Description Boolean Indicates whether the promise has been resolved. 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.
Additional modifier keys to filter the events by. Alternatively, if no modifiers are required, the function to call when the event is fired.
handler? FunctionThe function to call when the event is fired, if modifiers were specified.
Returns:Type Description Object Returns an event handler with a remove()
method that can be called to stop listening for the event.Property Type Description remove Function When 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); });
An instance of this class is a Promise. Use
otherwise()
to call a function once the promise is rejected.Parameter:optionalerrback FunctionThe function to execute when the promise fails.
Returns:Type Description Promise Returns 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 });
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: acallback
function and anerrback
function. Thecallback
executes when the promise resolves (when the instance of the class loads). Theerrback
executes if the promise fails. See the Working with Promises guide page for additional details.Parameters:optionalcallback FunctionThe function to call when the promise resolves.
optionalerrback FunctionThe function to execute when the promise fails.
optionalprogback FunctionThe function to invoke when the promise emits a progress update.
Returns:Type Description Promise Returns 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){Point}
Converts the given screen point to a map point.
Parameters:screenPoint ObjectThe screen coordinates to convert.
Specification:x NumberThe horizontal screen coordinate to convert.
y NumberThe vertical screen coordinate to convert.
Returns:Type Description Point The map point corresponding to the given screen point. toScreen(point, screenPoint){ScreenPoint}
Converts the given map point to a screen point.
Parameters:point PointA point geometry.
optionalscreenPoint ScreenPointScreenPoint object that will reference the result.
Returns:Type Description ScreenPoint The screen point corresponding to the given map point. 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 LayerThe layer for which to obtain its LayerView.
Returns:Type Description Promise Resolves 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
Name | Type | Summary | |
---|---|---|---|
{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
clickinherited
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.
- See also:
Properties:mapPoint PointThe point location of the click on the view in the spatial reference of the map.
x NumberThe horizontal screen coordinate of the click on the view.
y NumberThe vertical screen coordinate of the click on the view.
button NumberIndicates which mouse button was clicked.
Value Description 0 left click (or touch) 1 middle click 2 right click type StringFor click the type is always
click
.stopPropagation FunctionPrevents event propagation bubbling up the event chain.
By default the
click
event will close the view's popup if the clicked location doesn't intersect a feature containing a PopupTemplate. If calling view.popup.open() to display custom content in the popup, you should callevent.stopPropagation()
on theclick
event object to disable this default behavior. This ensures the popup will remain open or open with new custom content when the user clicks other locations in the view.timestamp NumberTime stamp (in milliseconds) at which the event was emitted.
native ObjectA standard DOM PointerEvent.
Examples:// Set up a click event handler and retrieve the screen point view.on("click", function(event) { // the hitTest() checks to see if any graphics in the view // intersect the given screen x, y coordinates view.hitTest(event) .then(getGraphics); });
view.on("click", function(event) { // you must overwrite default click-for-popup // behavior to display your own popup event.stopPropagation(); // Get the coordinates of the click on the view var lat = Math.round(event.mapPoint.latitude * 1000) / 1000; var lon = Math.round(event.mapPoint.longitude * 1000) / 1000; view.popup.open({ // Set the popup's title to the coordinates of the location title: "Reverse geocode: [" + lon + ", " + lat + "]", location: event.mapPoint // Set the location of the popup to the clicked location content: "This is a point of interest" // content displayed in the popup }); });
double-clickinherited
Fires after double-clicking on the view.
Properties:mapPoint PointThe point location of the click on the view in the spatial reference of the map.
x NumberThe horizontal screen coordinate of the click on the view.
y NumberThe vertical screen coordinate of the click on the view.
button NumberIndicates which mouse button was clicked.
Value Description 0 left click (or touch) 1 middle click 2 right click type StringFor double-click the type is always
double-click
.stopPropagation FunctionPrevents event propagation bubbling up the event chain.
timestamp NumberTime stamp (in milliseconds) at which the event was emitted.
native ObjectA 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); });
draginherited
Fires during a pointer drag on the view.
Properties:action StringIndicates the state of the drag.
Known Values: start | update | end
x NumberThe horizontal screen coordinate of the pointer on the view.
y NumberThe vertical screen coordinate of the pointer on the view.
origin ObjectScreen coordinates of the start of the drag.
Specification:x NumberThe horizontal screen coordinate of the pointer on the view.
y NumberThe vertical screen coordinate of the pointer on the view.
type StringFor drag the type is always
drag
.stopPropagation FunctionPrevents event propagation bubbling up the event chain.
timestamp NumberTime stamp (in milliseconds) at which the event was emitted.
native ObjectA standard DOM MouseEvent.
Example:view.on("drag", function(evt){ // Print out the current state of the // drag event. console.log("drag state", evt.action); });
holdinherited
Fires after holding either a mouse button or a single finger on the view for a short amount of time.
Properties:mapPoint PointThe point location of the click on the view in the spatial reference of the map.
x NumberThe horizontal screen coordinate of the hold on the view.
y NumberThe vertical screen coordinate of the hold on the view.
button NumberIndicates which mouse button was held down.
Value Description 0 left mouse button (or touch) 1 middle mouse button 2 right mouse button type StringFor hold the type is always
hold
.stopPropagation FunctionPrevents event propagation bubbling up the event chain.
timestamp NumberTime stamp (in milliseconds) at which the event was emitted.
native ObjectA 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 BooleanIndicates whether this is the first event emitted due to the key press, or a repeat.
key StringThe key value that was pressed, according to the MDN full list of key values.
type StringFor key-down the type is always
key-down
.stopPropagation FunctionPrevents event propagation bubbling up the event chain.
timestamp NumberTime stamp (in milliseconds) at which the event was emitted.
native ObjectA 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 StringFor key-up the type is always
key-up
.stopPropagation FunctionPrevents event propagation bubbling up the event chain.
timestamp NumberTime stamp (in milliseconds) at which the event was emitted.
native ObjectA standard DOM KeyboardEvent.
layerview-createinherited
Fires after each layer in the map has a corresponding LayerView created and rendered in the view.
- See also:
Properties:layer LayerThe layer in the map for which the
layerView
was created.layerView LayerViewThe LayerView rendered in the view representing the layer in
layer
.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.
mouse-wheelinherited
Fires when a wheel button of a pointing device (typically a mouse) is scrolled on the view.
Properties:x NumberThe horizontal screen coordinate of the click on the view.
y NumberThe vertical screen coordinate of the click on the view.
deltaY NumberNumber representing the vertical scroll amount.
type StringFor mouse-wheel the type is always
mouse-wheel
.stopPropagation FunctionPrevents event propagation bubbling up the event chain.
timestamp NumberTime stamp (in milliseconds) at which the event was emitted.
native ObjectA 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 NumberUniquely identifies a pointer between multiple down, move, and up events. Ids might get reused after a pointer-up event.
pointerType StringIndicates the pointer type.
Known Values: mouse | touch
x NumberThe horizontal screen coordinate of the pointer on the view.
y NumberThe vertical screen coordinate of the pointer on the view.
type StringFor pointer-down the type is always
pointer-down
.stopPropagation FunctionPrevents event propagation bubbling up the event chain.
timestamp NumberTime stamp (in milliseconds) at which the event was emitted.
native ObjectA standard DOM PointerEvent.
pointer-moveinherited
Fires after the mouse or a finger on the display moves.
Properties:pointerId NumberUniquely identifies a pointer between multiple down, move, and up events. Ids might get reused after a pointer-up event.
pointerType StringIndicates the pointer type.
Known Values: mouse | touch
x NumberThe horizontal screen coordinate of the pointer on the view.
y NumberThe vertical screen coordinate of the pointer on the view.
type StringType of the event. It is always "pointer-move" for this event.
stopPropagation FunctionPrevents further propagation of the current event bubbling up the event chain.
timestamp NumberTime stamp (in milliseconds) at which the event was created.
native ObjectA 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 NumberUniquely identifies a pointer between multiple down, move, and up events. Ids might get reused after a pointer-up event.
pointerType StringIndicates the pointer type.
Known Values: mouse | touch
x NumberThe horizontal screen coordinate of the pointer on the view.
y NumberThe vertical screen coordinate of the pointer on the view.
type StringType of the event. It is always "pointer-up" for this event.
stopPropagation FunctionPrevents further propagation of the current event bubbling up the event chain.
timestamp NumberTime stamp (in milliseconds) at which the event was created.
native ObjectA standard DOM PointerEvent.
resizeinherited
Fires when the view's size changes.