import LinkChartView from "@arcgis/core/views/LinkChartView.js";const LinkChartView = await $arcgis.import("@arcgis/core/views/LinkChartView.js");- Since
- ArcGIS Maps SDK for JavaScript 4.31
LinkChartView is a 2D view that displays a WebLinkChart. A LinkChartView instance must be created to render a WebLinkChart. For a map to be visible to the user in the DOM, a LinkChartView must be created and reference a minimum of two objects: a WebLinkChart instance and a DOM element. Each is set in the map and container properties respectively.
- See also
Example
// Create a new LinkChartViewconst view = new LinkChartView({ container: "viewDiv", map: new WebLinkChart({ portalItem: { id: "e62b3b3c9e37400d91648fb0a8801e8a", } })});Constructors
Constructor
Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| properties | | |
Properties
| Property | Type | Class |
|---|---|---|
views readonly inherited static | ||
allLayerViews readonly inherited | ||
analyses inherited | ||
animation inherited | ||
animationsEnabled inherited | ||
aria inherited | ||
attributionHeight readonly inherited | ||
attributionItems readonly inherited | ReadonlyArray<AttributionItem> | |
attributionMode inherited | ||
attributionVisible inherited | ||
| | ||
basemapView inherited | ||
breakpoints inherited | ||
canZoomIn readonly inherited | ||
canZoomOut readonly inherited | ||
center inherited | ||
constraints inherited | ||
container inherited | ||
declaredClass readonly inherited | ||
displayFilterEnabled inherited | ||
extent inherited | ||
fatalError inherited | ||
floors inherited | ||
focused readonly inherited | ||
graphics inherited | ||
height readonly inherited | ||
heightBreakpoint inherited | ||
highlights inherited | ||
input readonly inherited | ||
interacting readonly inherited | ||
layerViews readonly inherited | ||
magnifier readonly inherited | ||
| | ||
navigating readonly inherited | ||
navigation inherited | ||
orientation readonly inherited | ||
padding inherited | ||
popup inherited | ||
popupEnabled inherited | ||
ready readonly inherited | ||
readyState readonly inherited | "loading" | "missing-map" | "missing-container" | "empty-map" | "map-content-error" | "rendering-error" | "ready" | |
resizeAlign inherited | ||
resizing readonly inherited | ||
resolution readonly inherited | ||
rotation inherited | ||
scale inherited | ||
selectionManager readonly inherited | ||
size readonly inherited | ||
spatialReference inherited | ||
spatialReferenceLocked inherited | ||
stationary readonly inherited | ||
suspended readonly inherited | ||
theme inherited | ||
tileInfo readonly inherited | ||
timeExtent inherited | TimeExtent | null | undefined | |
timeZone inherited | ||
type readonly inherited | "2d" | |
ui inherited | ||
updating readonly inherited | ||
viewpoint inherited | ||
visibleArea readonly inherited | ||
width readonly inherited | ||
widthBreakpoint inherited | ||
zoom inherited |
views
- Type
- Collection<View<any>>
Contains the collection of active views on the page. Only views that are ready appear in the collection.
allLayerViews
- Type
- ReadonlyCollection
Collection containing a flat list of all the created LayerViews related to the basemap, operational layers, and group layers in this view.
- See also
analyses
- Type
- Collection<Analysis>
- Since
- ArcGIS Maps SDK for JavaScript 4.34
A collection of analyses associated with the view.
Examples
// Adds an analysis to the Viewview.analyses.add(elevationProfileAnalysis);// Removes an analysis from the Viewview.analyses.remove(elevationProfileAnalysis); animation
- Type
- ViewAnimation | null | undefined
Represents an ongoing view animation initialized by goTo(). You may watch() this property to be notified of the animation's state.
- See also
Example
reactiveUtils.watch( () => view.animation, (response) => { if(response?.state === "running"){ console.log("Animation in progress"); } else{ console.log("No animation"); } }); animationsEnabled
- Type
- boolean
- Since
- ArcGIS Maps SDK for JavaScript 4.34
Indicates whether animations are enabled in the view. This includes animated symbols (animated
CIMSymbol, PictureMarkerSymbol from a GIF/animated PNG),
animated renderers (FlowRenderer), animated layers
(MediaLayer, VideoLayer), and animations triggered by view
navigation (for example, MapView.goTo()). Setting this property to false disables
all animations in the view.
- Default value
- true
aria
- Type
- DOMContainerAria
- Since
- ArcGIS Maps SDK for JavaScript 4.34
The ARIA attributes for the view container.
attributionHeight
- Type
- number
- Since
- ArcGIS Maps SDK for JavaScript 5.0
The height of the attribution in pixels. The value is practical to adjust the bottom padding of other UI elements. The value changes when the attribution is expanded or collapsed.
attributionItems
- Type
- ReadonlyArray<AttributionItem>
- Since
- ArcGIS Maps SDK for JavaScript 5.0
The array of attribution items to be displayed in the view's attribution. This property is populated once the view has finished updating. Items are ordered based on descending score with higher scored items appearing first in the attribution.

Example
// Access the attributionItems property after the view is finished updating to get the array of attribution items to be displayed in the view's attributionreactiveUtils.when( () => !view.updating, () => { const attributionText = view.attributionItems .map((item) => item.text) .join(" | "); console.log(attributionText); }); attributionMode
- Since
- ArcGIS Maps SDK for JavaScript 5.0
The light or dark mode used to display the attribution. By default, the mode is inherited from the Calcite's mode. You can override the value to style the attribution alongside the map or scene content.
attributionVisible
- Type
- boolean
- Since
- ArcGIS Maps SDK for JavaScript 5.0
Indicates whether the attribution is visible in the view.
Esri requires that when you use an ArcGIS Online basemap in your app, the map must include Esri attribution and you must be licensed to use the content. For detailed guidelines on working with attribution, please visit the official attribution in your app documentation. For information, see the Terms of Use documentation.
- Default value
- true
background
- Type
- ColorBackground | null | undefined
The background color of the LinkChartView. If the view's map changes, the view's background is reset to the map's background,
even if the user set it previously. If no value is set on the WebLinkChart or the view, the default is white.
- Default value
- new ColorBackground({ color: [255, 255, 255, 1] })
Examples
let view = new LinkChartView({ container: "viewDiv", map: map, background: { // autocasts new ColorBackground() color: "magenta" // autocasts as new Color() }});let view = new MapView({ container: "viewDiv", map: map, background: { // autocasts new ColorBackground() color: "magenta" // autocasts as new Color() }}); basemapView
- Type
- BasemapView
Represents the view for a single basemap after it has been added to the map.
breakpoints
- Type
- Breakpoints
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.
Setting up breakpoints can aid in responsive app design. It does this
by watching width and height breakpoints. This is helpful as it removes
the need for multiple @media calls.
Instead of listening for the view's size and/or resizes property,
you can set up a watch handler for either the widthBreakpoint or
heightBreakpoint properties of the view.
Please refer to the styling guide for additional information on working with this.
Example
// Instead of watching the size or resizing propertiesreactiveUtils.watch(() => view.size, () => {});reactiveUtils.watch(() => view.resizing, () => {});
// Set up a watch handle for breakpointreactiveUtils.watch( () => view.widthBreakpoint, (breakpoint) => { switch (breakpoint) { case "xsmall": // do something break; case "small": case "medium": case "large": case "xlarge": // do something else break; default: } }); center
- Type
- 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 ([-100.4593, 36.9014]).
Setting the center immediately changes the current view. For animating
the view, see MapView.goTo().
The returned Point object is always in the spatial reference of the view and may be modified internally. To persist the returned object, create a clone using Point.clone().
Notes
- If the spatial reference of
centerset in the constructor does not match the spatialReference of the view, then projectOperator will be loaded dynamically. - At runtime, the projectOperator must be loaded when
setting the
centerto a spatial reference that doesn't match the view spatial reference. You can check if the projectOperator is loaded prior to setting the center by calling isLoaded(). If it is not yet loaded, you can call load().
- See also
Examples
// Sets the initial center point of the view to lon/lat coordinates// lon/lat will be projected to match the spatial reference of the viewlet view = new MapView({ center: [-112, 38]});// Updates the view's center point to a pre-determined Point objectlet pt = new Point({ x: 12804.24, y: -1894032.09, spatialReference: { wkid: view.spatialReference // wkid 2027 }});view.center = pt;const centerPoint = new Point({ x: -8746995, y: 4352308, spatialReference: { wkid: 8857 }});if (!projectOperator.isLoaded()) { await projectOperator.load();}view.center = centerPoint; constraints
- Type
- MapViewConstraints
Specifies constraints to scale, zoom, and rotation that may be applied to the MapView.
The constraints.lods should be set in the MapView constructor, if the map does not have a basemap or when the basemap does not have TileInfo.
- See also
Examples
view.constraints = { geometry: { // Constrain lateral movement to Lower Manhattan type: "extent", xmin: -74.020, ymin: 40.700, xmax: -73.971, ymax: 40.73 }, minScale: 500000, // User cannot zoom out beyond a scale of 1:500,000 maxScale: 0, // User can overzoom tiles rotationEnabled: false // Disables map rotation// This snippet shows how to set the MapView scale 1:1 while generating additional LODs for the MapView.constraints. const spatialReference = new SpatialReference({ wkid: 2154 }); const center = new Point({ x: 0, y: 0, spatialReference });
// Create LODs from level 0 to 31 const tileInfo = TileInfo.create({ spatialReference, numLODs: 32 }); const lods = tileInfo.lods;
let view = new MapView({ container: "viewDiv", map, scale: 1, center, spatialReference, constraints: { lods: lods, snapToZoom: false } }); container
- Type
- HTMLDivElement | null | undefined
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 idlet view = new MapView({ container: "viewDiv" // ID of the HTML element that holds the view});// Sets container to the nodelet viewNode = document.getElementById("viewDiv");let view = new SceneView({ container: viewNode}); displayFilterEnabled
- Type
- boolean
- Since
- ArcGIS Maps SDK for JavaScript 4.32
Indicates whether displayFilters are honored across all layers
in the view. If false, display filters are ignored on all layers and all features are rendered. To ignore display
filters on a per-layer basis, set the layer's displayFilterEnabled property to false.
- Default value
- true
extent
- Type
- Extent
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 MapView.goTo(). When the view is rotated, the extent does not update to include the newly visible portions of the map.
The returned Extent object is an internal reference which may be modified internally. To persist the returned object, create a copy using Extent.clone().
Notes
- If the spatial reference of
extentset in the constructor does not match the spatialReference of the view, then projectOperator will be loaded dynamically. - At runtime, the projectOperator must be loaded when
setting the
extentto a spatial reference that doesn't match the view spatial reference. You can check if the projectOperator is loaded prior to setting the extent by calling isLoaded(). If it is not yet loaded, you can call load().
- See also
Example
// the projectOperator must be loaded in the app if the spatial reference// of the view does not match the spatial reference of the extentconst extent = new Extent({ xmin: -13056650, ymin: 6077558, xmax: -13055709, ymax: 6077938, spatialReference: new SpatialReference({wkid:3857})});view.extent = extent; // Updates the view without animation fatalError
A fatal Error returned when the view loses its WebGL context. watch() this property to properly handle the error and attempt to recover the WebGL context.
- See also
Example
reactiveUtils.when( () => view.fatalError, () => { console.error("Fatal Error! View has lost its WebGL context. Attempting to recover..."); view.tryFatalErrorRecovery(); }); floors
- Type
- Collection<string>
Applies a display filter on the view for a specific set of floor levels. It can filter the map display on floor-aware layers by zero or more level IDs.
focused
- Type
- boolean
Indicates if the browser focus is on the view.
graphics
- Type
- Collection<Graphic>
Allows for adding graphics directly to the default graphics in the View.
Examples
// Adds a graphic to the Viewview.graphics.add(pointGraphic);// Removes a graphic from the Viewview.graphics.remove(pointGraphic); height
- Type
- number
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
heightBreakpoint
- Type
- BreakpointSize
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. Use the breakpoints property to override the default thresholds.
Please refer to the styling guide for additional information on working with this.
| Possible Value | Description | Default thresholds (pixels) |
|---|---|---|
| xsmall | The height of the view is smaller than the value set in the xsmall breakpoint. | < 545 |
| small | The height of the view is between the values set in the xsmall and small breakpoints. | 545 - 768 |
| medium | The height of the view is between the values set in the small and medium breakpoints. | 769 - 992 |
| large | The height of the view is between the values set in the medium and large breakpoints. | 993 - 1200 |
| xlarge | The height of the view is larger than the value set in the large breakpoint. | > 1200 |
Example
reactiveUtils.watch( () => view.heightBreakpoint === "xsmall", () => { // clear the view's default UI components if // the app is used on a mobile device view.ui.components = []; }); highlights
- Type
- Collection<HighlightOptions>
- Since
- ArcGIS Maps SDK for JavaScript 4.32
Represents a collection of HighlightOptions objects which can be used to highlight features throughout an application. Highlighting works by applying highlight options to one or more features. You can configure these options (such as color or opacity) to define how a feature will be visually emphasized.
A maximum of six HighlightOptions objects are supported in the collection, and they can be added, removed, and reordered freely. Their order in the collection determines priority, with the last object having the highest priority. If you apply more than one highlight to a feature, the one that is last within the collection will be applied. The HighlightOptions object must be part of this collection in order to be applied to features.
To highlight a feature, use the highlight method on
the relevant LayerView instance. To apply specific
HighlightOptions, include the
name in the highlight() method's options parameter. If
no name is provided, the feature will use the default highlight options.
The table below shows the default highlight options in the View's highlights collection if the collection has not been modified:
| Highlight options name | Description | Default settings |
|---|---|---|
| default | The default highlight options. Used when layerView.highlight() is called without specifying any particular highlight options. | { name: "default", color: "cyan", haloOpacity: 1, fillOpacity: 0.25, shadowColor: "black", shadowOpacity: 0.4, shadowDifference: 0.2} |
| temporary | The temporary highlight options, pre-configured for common use cases such as hovering over a feature in the view. | { name: "temporary", color: "yellow", haloOpacity: 1, fillOpacity: 0.25, shadowColor: "black", shadowOpacity: 0.4, shadowDifference: 0.2 } |
Examples
// Use the default highlights collection to apply a highlight to features when you hover over them
// A handler can be used to remove any previous highlight when applying a new onelet hoverHighlight;
view.on("pointer-move", (event) => { // Search for the first feature in the featureLayer at the hovered location view.hitTest(event, { include: featureLayer }).then((response) => { if (response.results[0]) { const graphic = response.results[0].graphic; view.whenLayerView(graphic.layer).then((layerView) => { // Remove any previous highlight, if it exists hoverHighlight?.remove(); // Highlight the hit features with the temporary highlight options, which are pre-configured for this use case hoverHighlight = layerView.highlight(graphic, { name: "temporary"}); }); } });});// Override the default highlights collection
const view = new MapView({ map: map, container: "viewDiv",
// Set the highlight options to be used in the view highlights: [ { name: "default", color: "orange" }, { name: "temporary", color: "magenta" }, { name: "table", color: "cyan", fillOpacity: 0.5, haloOpacity: 0} ]});// Add highlight options to the collection after initialization
const selectionHighlightOptions = { name: "selection", color: "#ff00ff", // bright fuchsia haloOpacity: 0.8, fillOpacity: 0.2};
// Add the options to the highlights collection at the first positionview.highlights.add(selectionGroup, 0); layerViews
- Type
- Collection
A collection containing a hierarchical list of all the created LayerViews of the operational layers in the map.
- See also
navigation
- Type
- Navigation
Options to configure the navigation behavior of the View.
Example
// Disable the gamepad usage, single touch panning, panning momentum and mouse wheel zooming.const view = new MapView({ container: "viewDiv", map: new Map({ basemap: "satellite" }), center: [176.185, -37.643], zoom: 13, navigation: { gamepad: { enabled: false }, actionMap: { dragSecondary: "none", // Disable rotating the view with the right mouse button mouseWheel: "none" // Disable zooming with the mouse wheel }, browserTouchPanEnabled: false, momentumEnabled: false, }}); orientation
A convenience property indicating the view's orientation. See the table below for a list of possible values.
Please refer to the styling guide for additional information on working with this.
| 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. |
padding
- Type
- ViewPadding
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.
- Default value
- {left: 0, top: 0, right: 0, bottom: 0}
popup
A Popup object that displays general content or attributes from layers in the map.
By default, the popup property is an empty object that allows you to set the popup options.
A Popup instance is automatically created and assigned to the view's popup
when the user clicks on the view and popupEnabled is true, when the openPopup method is called,
or when some widgets need the popup, such as Search. If popup is null, the popup instance will not be created.
Examples
// Set the view's popup to a new Popup instance.// The popup will show anytime a popup is called such as when selecting features or displaying a Search result.view.popup = new Popup();// Set the popup to a PopupOptions object with popup properties set such as the dock options.// The popup will show anytime a popup is called.view.popup = { dockEnabled: true, dockOptions: { position: "top-left", breakpoint: false }};// Set the popup to null. This disables the popup so it will never show up.view.popup = null; popupEnabled
- Type
- boolean
Controls whether the popup opens when users click on the view.
When true, a Popup instance is created
and assigned to popup the first time the user clicks on the view,
unless popup is null. The popup then processes the click event.
When false, the click event is ignored and popup is not created for features but will open for other
scenarios that use a popup, such as displaying Search results.
- See also
- Default value
- true
Example
// Disable the popup from automatically appearing and// open the popup manually using a click event.view.popupEnabled = false;view.on("click", (event)=> { view.openPopup({ // Set properties for the manually opened popup ... });}); ready
- Type
- boolean
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, a
center, and ascale. These also can be inferred by setting anextent.
When a view becomes ready it will resolve itself and invoke
the callback defined in when() 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
- false
readyState
- Type
- "loading" | "missing-map" | "missing-container" | "empty-map" | "map-content-error" | "rendering-error" | "ready"
- Since
- ArcGIS Maps SDK for JavaScript 4.32
Provides more granular information about the view's process of becoming ready. This property helps manage view properties when the view fails to become ready, such as when the basemap fails to load.
The following are the possible expected values and their descriptions:
| Value | Description |
|---|---|
loading | The view is currently loading information from the map. |
ready | The view is ready. This is similar to the ready property. |
missing-map | The view is missing a map. Set the view's map property. |
missing-container | The view is missing a container. Set the view's container property. |
empty-map | The view's map has no layers. Add layers to the map. |
rendering-error | The view failed to render. This is similar to the fatalError property. |
map-content-error | The view failed to find information from the map and couldn't derive the spatialReference. Verify that the map correctly loaded with the loadError property, as well as its basemap, and the first layer in the map's layers collection. Alternatively, set a valid center, scale, and spatialReference. |
- Default value
- "loading"
Examples
// Watch the view's readyState immediately after its initialization.reactiveUtils.watch( () => view.readyState, (state) => { switch (state) { case "missing-map": // Map is missing. Set a default map. view.map = new Map({ basemap: "streets" }); break; } }, { initial: true // fire the callback immediately after initialization. });const view = new MapView({ container: "viewDiv",
map: new Map({ basemap: { baseLayers: [ new TileLayer({ url: "my-failing-tiled-service" }) ] }});
reactiveUtils.watch(() => view.readyState, (state) => { switch (state) { case "map-content-error": // Defaults to a different map in case of failure view.map = new Map({ basemap: "streets" }); break; case "rendering-error": view.tryFatalErrorRecovery(); break; default: console.log("View is not ready:", state); }}); resizeAlign
- Type
- ResizeAlign
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.
- Default value
- "center"
resizing
- Type
- boolean
Indicates whether the view is being resized.
- Default value
- false
rotation
- Type
- number
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 viewview.rotation = 90;// Due north is rotated 180 degrees, pointing to the bottom of the viewview.rotation = 180;// Due north is rotated 270 degrees, pointing to the left side of the viewview.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 rotationview.constraints = { rotationEnabled: false}; scale
- Type
- number
Represents the map scale at the center of the view. Setting the scale immediately changes the view. For animating the view, see MapView.goTo().
- See also
Example
view.scale = 24000; // Sets the map scale in the view's center to 1:24,000 selectionManager
- Type
- SelectionManager
- Since
- ArcGIS Maps SDK for JavaScript 5.0
The default SelectionManager for this view. Used to manage selections of features across layers.
size
An array containing the width and height of the view in pixels, e.g. [width, height].
spatialReference
- Type
- SpatialReference
The spatial reference of the view. This indicates the projected or geographic coordinate system used to locate geographic features in the map.
Starting at version 4.23, you can change the spatialReference of the MapView after it is initialized by either directly changing
this property, or by changing the basemap from the BasemapGallery or BasemapToggle widgets.
Set MapView's spatialReferenceLocked property to true to prevent users from changing the view's spatial reference at runtime.
Prior to changing the spatial reference, check if the projectOperator is loaded by calling
isLoaded().
If it is not yet loaded, call load() method.
If the projectOperator is not loaded, the view's center will default to [0, 0]
in the new spatial reference of the view and a console error will be thrown.
Notes
-
LayerViews not compatible with the view's spatial reference are not displayed. In such case, the layer view's suspended property is
trueand spatialReferenceSupported property isfalse. -
When setting view's spatial reference, the center, extent or viewpoint.targetGeometry properties are projected to the new spatial reference. The scale and rotation properties are adjusted to keep the content of the map at the same size and orientation on screen.
-
To ensure TileLayers and VectorTileLayers are displayed in a basemap correctly, the spatialReference of the MapView must be set match their tileInfo's spatial reference.
-
Switching spatial reference with an imageCoordinateSystem is not supported.
- See also
Examples
// check if the projectOperator is loadedif (!projectOperator.isLoaded()) { projectOperator.load().then(() => { // change the spatial reference of the view to equal earth projection view.spatialReference = new SpatialReference({ wkid: 54035 //equal earth projection }); });} else { // the projectOperator is already loaded. // change the spatial reference of the view to equal earth projection view.spatialReference = new SpatialReference({ wkid: 54035 //equal earth projection });}const basemap = await changeBasemap();const spatialReference = await findSpatialReference(basemap);
// check if basemap has the same spatial reference as the view if they are not equal// then check if the projectOperator is loaded, and load the projectOperator if it is not loaded.// If loaded, then simply change view.spatialReference to match the basemap spatialReferenceif (spatialReference && !view.spatialReference.equals(spatialReference)) { if (!projectOperator.isLoaded()) { await projectOperator.load(); } view.spatialReference = spatialReference;}
// change the basemapmap.basemap = basemap;
async function changeBasemap() { let basemap; if (map.basemap.title === "OpenStreetMap Vector Basemap (Blueprint - WGS84)"){ basemap = new Basemap({ portalItem: { // Spilhaus - one ocean basemap id: "5639ccf22d4c4830ab815c4f9c9319bb" } }); } else { basemap = osm84; } return basemap;}
async function findSpatialReference(basemap) { await basemap.load();
if (basemap.spatialReference) { return basemap.spatialReference; }
const layer = basemap.baseLayers.at(0);
if (!layer) { return null; }
await layer.load();
return layer.spatialReference;} spatialReferenceLocked
- Type
- boolean
Indicates if the MapView's spatialReference can be changed after it is ready. The default is false indicating
the view's spatialReference can be changed at runtime. When true, basemaps
with spatial references that do not match the MapView's spatial reference will be disabled in BasemapGallery
and BasemapToggle widgets and the view spatialReference cannot be changed at runtime.
- See also
- Default value
- false
suspended
- Type
- boolean
Indicates if the view is visible on the page. When true, the view is not visible and it stops rendering and updating data.
Set to true when one of the following conditions are met:
- if the view does not have a container,
- if the view's height or width equal to 0,
- if the view container's css style
displayis set tonone(display:none).
When the view container's css style visibility is set to hidden, this property is set to false, and
the view is hidden but it stills renders and updates data.
- Default value
- true
theme
This property specifies the base colors used by some widgets and components to render graphics and labels. This only affects those components that would otherwise use the default orange pattern.
Example
// Update the theme to use purple graphics// and slightly transparent green textview.theme = new Theme({ accentColor: "purple", textColor: [125, 255, 13, 0.9]}); timeExtent
- Type
- TimeExtent | null | undefined
The view's time extent. Time-aware layers display their temporal data that falls within the view's time extent. Setting the view's time extent is similar to setting the spatial extent because once the time extent is set, the view updates automatically to conform to the change.
Example
// Create a csv layer from an online spreadsheet.let csvLayer = new CSVLayer({ url: "http://test.com/daily-magazines-sold-in-new-york.csv", timeInfo: { startField: "SaleDate" // The csv field contains date information. }});
// Create a mapview showing sales for the last week of March 2019 only.const view = new MapView({ map: map, container: "viewDiv", timeExtent: { start: new Date("2019, 2, 24"), end: new Date("2019, 2, 31") }}); timeZone
- Type
- TimeZone
Defines the time zone of the view. The time zone property determines how dates and times are represented to the user, but the underlying data is unchanged. Changing the time zone will have the following effect:
- Arcade: Arcade expressions referencing date values in labels, renderers, and forms
will represent dates by default in the time zone of the view. When the view time zone
is changed, the output of Arcade expressions working with dates may change to match the time zone of the view.
The user can use the ChangeTimeZone Arcade function (e.g.
ChangeTimeZone($feature.dateField, "system")) to display dates in another time zone regardless of web map time zone. Alternatively they can construct Date values in the context of a specific time zone (e.g.Date(2013, 1, 1, 10, 00, 00, 00, "UTC")). - Components/widgets: Date values, including values from
dateandtimestamp-offsetfields, will be displayed in the view's time zone by default in the following components/widgets: Bookmarks, Editor, Feature, FeatureForm, Features, FeatureTable, Legend, Popup and TimeSlider.
The time zone can be set to one of the following values:
Possible Values
| Value | Description |
|---|---|
| system | Dates and times will be displayed in the time zone of the device or browser. |
| unknown | Dates and times will be displayed based on the time zone that has been defined for the layer. No adjustments are made to the display of date info. TimeSlider is disabled. |
| Specified IANA time zone | Dates and times will be displayed in the specified IANA time zone. See wikipedia - List of tz database time zones. |
If the timeZone is set to unknown and a layer’s date/time field includes time information, set the DateTimeFieldFormat.timeStyle property to either long or full on the corresponding date/time field.
- Default value
- "system"
Example
// Date and time will be displayed in Pacific/Auckland (NZ) time zoneconst view = new MapView({ map: map, container: "viewDiv", timeZone: "Pacific/Auckland"}); ui
- Type
- DefaultUI
Exposes the default widgets available in the view and allows you to toggle them on and off. See DefaultUI for more details.
Examples
let 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 viewview.ui.empty("bottom-left");// Removes the compass widget from the viewview.ui.remove("compass");// Removes all default UI components, except Attribution.// Passing an empty array will remove all components.view.ui.components = [ "attribution" ]; viewpoint
- Type
- Viewpoint
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 MapView.goTo().
The returned Viewpoint object is an internal reference which may be modified internally. To persist the returned object, create a copy using clone() method.
Notes
-
If the spatial reference of
viewpointset in the constructor does not match the spatialReference of the view, then projectOperator will be loaded dynamically. -
At runtime, the projectOperator must be loaded when setting the
viewPointto a spatial reference that doesn't match the view spatial reference. You can check if the projectOperator is loaded prior to setting the center by calling isLoaded(). If it is not yet loaded, you can call load().
- See also
visibleArea
The visibleArea represents the visible portion of a Map within the view as an instance of a Polygon. This is similar to the view MapView.extent but is a more accurate representation of the visible area especially when the view is rotated. An example use of the visible area is to spatially filter visible features in a layer view query.
- See also
width
- Type
- number
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
widthBreakpoint
- Type
- BreakpointSize
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. Use the breakpoints property to override the default thresholds.
Please refer to the styling guide for additional information on working with this.
| Possible Value | Description | Default thresholds (pixels) |
|---|---|---|
| xsmall | The width of the view is smaller than the value set in the xsmall breakpoint. | < 545 |
| small | The width of the view is between the values set in the xsmall and small breakpoints. | 545 - 768 |
| medium | The width of the view is between the values set in the small and medium breakpoints. | 769 - 992 |
| large | The width of the view is between the values set in the medium and large breakpoints. | 993 - 1200 |
| xlarge | The width of the view is larger than the value set in the large breakpoint. | > 1200 |
Example
reactiveUtils.when( () => view.widthBreakpoint === "xsmall", () => { // clear the view's default UI components if // the app is used on a mobile device view.ui.components = []; }); zoom
- Type
- number
Represents the level of detail (LOD) at the center of the view. A zoom level or scale is a number that defines how large or small the contents of a map appear in a map view. Zoom level is a number usually between 0 (global view) and 23 (very detailed view) and is used as a shorthand for predetermined scale values. A value of -1 means the view has no LODs. When setting the zoom value, map view converts it to the corresponding scale, or interpolates it if the zoom is a fractional number. MapView can display maps with different spatialReference projections at a full range of scales, and so use scale rather than zoom level.
Setting the zoom immediately changes the current view. For animating the view, see MapView.goTo(). Setting this property in conjunction with center is a convenient way to set the initial extent of the view.
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 constructorlet view = new MapView({ zoom: 10, center: [-120, 34], map: map});Methods
| Method | Signature | Class |
|---|---|---|
closePopup inherited | closePopup(): void | |
destroy inherited | destroy(): void | |
emit inherited | emit<Type extends EventNames<this>>(type: Type, event?: this["@eventTypes"][Type]): boolean | |
focus inherited | focus(): void | |
goTo inherited | goTo(target: GoToTarget2D, options?: GoToOptions2D): Promise<void> | |
hasEventListener inherited | hasEventListener<Type extends EventNames<this>>(type: Type): boolean | |
hitTest(screenPoint: ScreenPoint | MouseEvent, options?: HitTestOptions): Promise<ViewHitTestResult> | | |
isFulfilled inherited | isFulfilled(): boolean | |
isRejected inherited | isRejected(): boolean | |
isResolved inherited | isResolved(): boolean | |
on inherited | on<Type extends EventNames<this>>(type: Type, listener: (event: this["@eventTypes"][Type]) => void): ResourceHandle | |
on inherited | on<Type extends EventNames<this>>(type: Type, modifiers: string[], listener: (event: this["@eventTypes"][Type]) => void): ResourceHandle | |
openPopup inherited | openPopup(options?: ViewPopupOpenOptions): Promise<void> | |
toMap inherited | toMap(screenPoint: ScreenPoint | MouseEvent): Point | |
toScreen inherited | toScreen(point: Point, options?: ToScreenOptions2D): ScreenPoint | null | undefined | |
tryFatalErrorRecovery inherited | tryFatalErrorRecovery(): void | |
when inherited | when<TResult1 = this, TResult2 = never>(onFulfilled?: OnFulfilledCallback<this, TResult1> | null | undefined, onRejected?: OnRejectedCallback<TResult2> | null | undefined): Promise<TResult1 | TResult2> | |
whenAnalysisView inherited | whenAnalysisView(analysis: ElevationProfileAnalysis): Promise<ElevationProfileAnalysisView2D> | |
whenAnalysisView inherited | whenAnalysisView(analysis: Analysis): Promise<AnalysisView2DUnion> | |
whenLayerView inherited | whenLayerView<TLayer extends Layer>(layer: TLayer): Promise<LayerView2DFor<TLayer>> | |
zoomIn inherited | zoomIn(): Promise<void> | |
zoomOut inherited | zoomOut(): Promise<void> |
destroy
- Signature
-
destroy (): void
Destroys the view, and any associated resources, including its map, popup, and ui elements.
These can no longer be used once the view has been destroyed. To prevent these components from being destroyed,
remove them from the view before calling destroy().
// remove popup and legend from the view so that they are not destroyedconst popup = view.popup;view.popup = null;view.ui.remove(legend);
// unset map from the view so that it is not destroyedconst map = view.map;view.map = null;
// destroy the view and any remaining associated resourcesview.destroy();- Returns
- void
emit
- Signature
-
emit <Type extends EventNames<this>>(type: Type, event?: this["@eventTypes"][Type]): boolean
- Type parameters
- <Type extends EventNames<this>>
Emits an event on the instance. This method should only be used when creating subclasses of this class.
focus
- Signature
-
focus (): void
Sets the focus on the view.
- Returns
- void
goTo
- Signature
-
goTo (target: GoToTarget2D, options?: GoToOptions2D): Promise<void>
Sets 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,scaleandrotationproperties (withtargetbeing any of the types listed above). Thecenterproperty is provided as a convenience to animate the MapView.center and is equivalent to specifying thetargetwith the center Point.
This function returns a promise which resolves as soon as the new view has been set to the target. If the transition is animated, then the ongoing animation can be obtained using MapView.animation. If setting the view to the new target fails, the promise returned by the goTo() method rejects with an error. Use a catch statement, to handle the error:
view.goTo({ center: [-126, 49]}).catch(function(error) { if (error.name != "AbortError") { console.error(error); }});If a tiled map service is used as the basemap and snapToZoom property is set to true in constraints,
the goTo method will zoom in to fit the defined target.
If snapToZoom property is set to false, the goTo method will zoom to the exact target.
The goTo method now respects the user's preference for reduced motion.
By default, goTo() will animate, but when the user expresses a preference for reduced motion, goTo() will navigate to the specified target without animation.
It is possible to override the user's preference for reduced motion by configuring esriConfig.respectPrefersReducedMotion
or on a per-call basis by specifying the animate property.
However, if you override the user's preference for reduced motion, you should consider slowing down animations by adjusting the speedFactor or duration in the options parameter, or provide users with a way to slow down or stop the animation.
Refer to implementing reduced motion in your applications for more information.
Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| target | The target location/viewpoint to animate to. When using an object for | | |
| options | Animation options for controlling the duration and easing of the animation. See the properties defined in GoToOptions2D for object specifications. | |
Examples
let pt = new Point({ latitude: 49, longitude: -126});
// go to the given pointview.goTo(pt);let opts = { duration: 5000 // Duration of animation will be 5 seconds};
// go to point at LOD 15 with custom durationview.goTo({ target: pt, zoom: 15}, opts);// go to same point using center and zoomview.goTo({ center: [-126, 49], zoom: 15}); hasEventListener
- Signature
-
hasEventListener <Type extends EventNames<this>>(type: Type): boolean
- Type parameters
- <Type extends EventNames<this>>
Indicates whether there is an event listener on the instance that matches the provided event name.
Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| type | Type | The name of the event. | |
- Returns
- boolean
Returns true if the class supports the input event.
hitTest
- Signature
-
hitTest (screenPoint: ScreenPoint | MouseEvent, options?: HitTestOptions): Promise<ViewHitTestResult>
Returns hit test results from each layer that intersects the specified screen coordinates. The results are organized as an array of objects containing different result types.
Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| screenPoint | The screen coordinates (or native mouse event) of the click on the view. | | |
| options | Options to specify what is included in or excluded from the hitTest. Supported since 4.16. | |
- Returns
- Promise<ViewHitTestResult>
When resolved, returns an array of objects containing different result types.
isFulfilled
- Signature
-
isFulfilled (): boolean
isFulfilled() may be used to verify if creating an instance of the class is fulfilled (either resolved or rejected).
If it is fulfilled, true will be returned.
- Returns
- boolean
Indicates whether creating an instance of the class has been fulfilled (either resolved or rejected).
isRejected
- Signature
-
isRejected (): boolean
isRejected() may be used to verify if creating an instance of the class is rejected.
If it is rejected, true will be returned.
- Returns
- boolean
Indicates whether creating an instance of the class has been rejected.
isResolved
- Signature
-
isResolved (): boolean
isResolved() may be used to verify if creating an instance of the class is resolved.
If it is resolved, true will be returned.
- Returns
- boolean
Indicates whether creating an instance of the class has been resolved.
on
- Signature
-
on <Type extends EventNames<this>>(type: Type, listener: (event: this["@eventTypes"][Type]) => void): ResourceHandle
- Type parameters
- <Type extends EventNames<this>>
- Since
- ArcGIS Maps SDK for JavaScript 5.0
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
- Returns
- ResourceHandle
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.
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(event){ let point = view2d.toMap({x: event.x, y: event.y}); bufferPoint(point);}); on
- Signature
-
on <Type extends EventNames<this>>(type: Type, modifiers: string[], listener: (event: this["@eventTypes"][Type]) => void): ResourceHandle
- Type parameters
- <Type extends EventNames<this>>
- Since
- ArcGIS Maps SDK for JavaScript 5.0
Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| type | Type | The name of the event or events to listen for. | |
| modifiers | string[] | Additional modifier keys to filter events. Please see Key Values for possible values. All the standard key values are supported. Alternatively, if no modifiers are required, the function will call when the event fires. The following events don't support modifier keys: | |
| listener | The function to call when the event is fired, if modifiers were specified. | |
- Returns
- ResourceHandle
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.
openPopup
- Signature
-
openPopup (options?: ViewPopupOpenOptions): Promise<void>
Opens the popup at the given location with content defined either explicitly with content
or driven from the PopupTemplate of input features. This method sets
the popup's visible property to true. Users can alternatively open the popup
by directly setting the visible property to true.
A Popup instance is created
and assigned to popup the first time openPopup() is called,
unless popup is null.
The popup then processes the click event.
When calling this method, to prevent the popup from opening when clicking on the view, set popupEnabled to false to stop event propagation on the view.
The popup will only display if the view's size constraints in dockOptions are met or the location property is set to a geometry.
Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| options | Defines the location and content of the popup when opened. | |
Examples
// Opens a popup manually depending on where the user clicks with specified title and content.view.on("click", (event)=>{ view.openPopup({ location: event.mapPoint, title: "You clicked here", content: "This is a point of interest" });});// Opens popup at the location of the click event and displays// content for the selected features if a popupTemplate is defined. view.on("click", (event)=>{ view.openPopup({ location: event.mapPoint, fetchFeatures: true }); });// Opens popup with the properties specified at the location of the click event// and updates the popup location based on the selected feature's geometry.view.openPopup({ title: "You clicked here", content: "This is a point of interest", location: event.mapPoint, updateLocationEnabled: true});// Opens popup with the specified array of graphics and displays the// features in a list (feature menu) at the location of the first graphic in the array.view.openPopup({ features: graphics, featureMenuOpen: true, location: graphics[0].geometry}); toMap
- Signature
-
toMap (screenPoint: ScreenPoint | MouseEvent): Point
Converts the given screen point to a map point. The screen point represents a point in terms of pixels relative to the top-left corner of the view.
Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| screenPoint | The location on the screen (or native mouse event) to convert. | |
- Returns
- Point
The map point corresponding to the given screen point.
toScreen
- Signature
-
toScreen (point: Point, options?: ToScreenOptions2D): ScreenPoint | null | undefined
Converts the given map point to a screen point. The screen point represents a point in terms of pixels relative to the top-left corner of the view.
Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| point | A point geometry. | | |
| options | Options for controlling the toScreen() calculation. See the properties defined in ToScreenOptions2D for object specifications. | |
- Returns
- ScreenPoint | null | undefined
The screen point corresponding to the given map point.
Example
// get the screen point for the specified map point.const mapPoint = { x: -49.97, y: 41.73, spatialReference:{ wkid: 4326 }};const screenPoint = mapView.toScreen(mapPoint); tryFatalErrorRecovery
- Signature
-
tryFatalErrorRecovery (): void
Call this method to clear any fatal errors resulting from a lost WebGL context.
- See also
- Returns
- void
Example
reactiveUtils.when( () => view.fatalError, () => view.tryFatalErrorRecovery()); when
- Signature
-
when <TResult1 = this, TResult2 = never>(onFulfilled?: OnFulfilledCallback<this, TResult1> | null | undefined, onRejected?: OnRejectedCallback<TResult2> | null | undefined): Promise<TResult1 | TResult2>
when() may be leveraged once an instance of the class is created. This method takes two input parameters: an onFulfilled function and an onRejected function.
The onFulfilled executes when the instance of the class loads. The
onRejected executes if the instance of the class fails to load.
Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| onFulfilled | OnFulfilledCallback<this, TResult1> | null | undefined | The function to call when the promise resolves. | |
| onRejected | The function to execute when the promise fails. | |
- Returns
- Promise<TResult1 | TResult2>
Returns a new promise for the result of
onFulfilledthat may be used to chain additional functions.
Example
// Although this example uses MapView, any class instance that is a promise may use when() in the same waylet view = new MapView();view.when(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}); whenAnalysisView
- Signature
-
whenAnalysisView (analysis: ElevationProfileAnalysis): Promise<ElevationProfileAnalysisView2D>
Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| analysis | | |
- Returns
- Promise<ElevationProfileAnalysisView2D>
whenAnalysisView
- Signature
-
whenAnalysisView (analysis: Analysis): Promise<AnalysisView2DUnion>
- Since
- ArcGIS Maps SDK for JavaScript 4.34
Gets the analysis view created for the given analysis object. The returned promise resolves when the view for the given analysis has been created, or rejects with an error (for example if the analysis does not belong in MapView.analyses.
Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| analysis | The analysis for which to obtain the analysis view. | |
- Returns
- Promise<AnalysisView2DUnion>
Resolves to an instance of the analysis view for the provided analysis.
Example
// Create a slice analysislet analysis = new ElevationProfileAnalysis();
// add to the viewview.analyses.add(analysis);
view.whenAnalysisView(analysis) .then((analysisView) => { // The analysis view for the analysis }) .catch((error) => { // An error occurred during the analysis view creation }); whenLayerView
- Signature
-
whenLayerView <TLayer extends Layer>(layer: TLayer): Promise<LayerView2DFor<TLayer>>
- Type parameters
- <TLayer extends Layer>
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).
- See also
Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| layer | TLayer | The layer for which to obtain its LayerView. | |
- Returns
- Promise<LayerView2DFor>
Resolves to an instance of LayerView for the specified layer.
Examples
// Create a feature layer from a url pointing to a Feature Servicelet layer = new FeatureLayer(url);
map.add(layer);
view.whenLayerView(layer) .then(function(layerView) { // The layerview for the layer }) .catch(function(error) { // An error occurred during the layerview creation });// Create a feature layer from a url pointing to a Feature Servicelet layer = new FeatureLayer(url);
map.add(layer);
view.whenLayerView(layer) .then(function(layerView) { // The layerview for the layer }) .catch(function(error) { // An error occurred during the layerview creation });Events
| Name | Type |
|---|---|
analysis-view-create inherited | |
analysis-view-create-error inherited | |
analysis-view-destroy inherited | |
blur inherited | |
click inherited | |
double-click inherited | |
double-tap-drag inherited | |
drag inherited | |
focus inherited | |
hold inherited | |
immediate-click inherited | |
immediate-double-click inherited | |
key-down inherited | |
key-up inherited | |
layerview-create inherited | |
layerview-create-error inherited | |
layerview-destroy inherited | |
mouse-wheel inherited | |
pointer-down inherited | |
pointer-enter inherited | |
pointer-leave inherited | |
pointer-move inherited | |
pointer-up inherited | |
resize inherited | |
vertical-two-finger-drag inherited |
analysis-view-create
analysis-view-create: CustomEvent<AnalysisViewCreateEvent> - Since
- ArcGIS Maps SDK for JavaScript 5.0
Fires when the view for an Analysis is created.
analysis-view-create-error
analysis-view-create-error: CustomEvent<AnalysisViewCreateErrorEvent> - Since
- ArcGIS Maps SDK for JavaScript 5.0
Fires when an error occurs during the creation of an Analysis after an analysis is added to the view.
analysis-view-destroy
analysis-view-destroy: CustomEvent<AnalysisViewDestroyEvent> - Since
- ArcGIS Maps SDK for JavaScript 5.0
Fires after an analysis view is destroyed.
blur
blur: CustomEvent<ViewBlurEvent> Fires when browser focus is moved away from the view.
click
click: CustomEvent<ClickEvent> - Since
- ArcGIS Maps SDK for JavaScript 5.0
Fires after a user clicks on the view. This event emits slightly slower than an View.@immediate-click event to make sure that a View.@double-click event isn't triggered instead. The View.@immediate-click event can be used for responding to a click event without delay.
Examples
view.on("click", function(event){ // event is the event object returned after the event fires
// Prints the map coordinates of the clicked location console.log(event.mapPoint);});// Set up a click event handler and retrieve the screen pointview.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 view.popupEnabled = false;
// Get the coordinates of the click on the view let lat = Math.round(event.mapPoint.latitude * 1000) / 1000; let 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-click
double-click: CustomEvent<DoubleClickEvent> - Since
- ArcGIS Maps SDK for JavaScript 5.0
Fires after double-clicking on the view.
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);}); double-tap-drag
double-tap-drag: CustomEvent<DoubleTapDragEvent> - Since
- ArcGIS Maps SDK for JavaScript 5.0
Fires while the pointer is drag following a double-tap gesture on the view.
Example
view.on("double-tap-drag", (event) => { // Display the distance moved from the drag origin. console.log("x distance:", event.x, "y distance:", event.y);}); drag
drag: CustomEvent<DragEvent> - Since
- ArcGIS Maps SDK for JavaScript 5.0
Fires during a pointer drag on the view.
Example
view.on("drag", function(event){ // Print out the current state of the // drag event. console.log("drag state", event.action);}); focus
focus: CustomEvent<ViewFocusEvent> Fires when browser focus is on the view.
hold
hold: CustomEvent<HoldEvent> - Since
- ArcGIS Maps SDK for JavaScript 5.0
Fires after holding either a mouse button or a single finger on the view for a short amount of time.
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);}); immediate-click
immediate-click: CustomEvent<ImmediateClickEvent> Fires right after a user clicks on the view. In contrast to the View.@click event,
the immediate-click event is emitted as soon as the user clicks on
the view, and is not inhibited by a View.@double-click event. This event
is useful for interactive experiences that require feedback without delay.
Example
// Set up an immediate-click event handler and retrieve the screen pointview.on("immediate-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);}); immediate-double-click
immediate-double-click: CustomEvent<ImmediateDoubleClickEvent> Is emitted after two consecutive View.@immediate-click events.
In contrast to View.@double-click, an immediate-double-click cannot
be prevented by use of stopPropagation on the View.@immediate-click
event and can therefore be used to react to double-clicking independently of usage of the
View.@immediate-click event.
key-down
key-down: CustomEvent<KeyDownEvent> - Since
- ArcGIS Maps SDK for JavaScript 5.0
Fires after a keyboard key is pressed.
Example
// Zoom in when user clicks on "a" button// Zoom out when user clicks on "s" buttonview.on("key-down", function(event){ console.log("key-down", event);
if (event.key === "a"){ let zm = view.zoom + 1;
view.goTo({ target: view.center, zoom: zm }); } else if(event.key == "s"){ let zm = view.zoom - 1;
view.goTo({ target: view.center, zoom: zm }); }}); key-up
key-up: CustomEvent<KeyUpEvent> - Since
- ArcGIS Maps SDK for JavaScript 5.0
Fires after a keyboard key is released.
layerview-create
layerview-create: CustomEvent<LayerViewCreateEvent> - Since
- ArcGIS Maps SDK for JavaScript 5.0
Fires after each layer in the map has a corresponding LayerView created and rendered in the view.
- 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-create-error
layerview-create-error: CustomEvent<LayerViewCreateErrorEvent> - Since
- ArcGIS Maps SDK for JavaScript 5.0
Fires when an error occurs during the creation of a LayerView after a layer has been added to the map.
- See also
Example
// This function fires each time an error occurs during the creation of a layerviewview.on("layerview-create-error", function(event) { console.error("LayerView failed to create for layer with the id: ", event.layer.id);}); layerview-destroy
layerview-destroy: CustomEvent<LayerViewDestroyEvent> - Since
- ArcGIS Maps SDK for JavaScript 5.0
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-wheel
mouse-wheel: CustomEvent<ViewMouseWheelEvent> - Since
- ArcGIS Maps SDK for JavaScript 5.0
Fires when a wheel button of a pointing device (typically a mouse) is scrolled on the view.
Example
view.on("mouse-wheel", function(event){ // deltaY value is positive when wheel is scrolled up // and it is negative when wheel is scrolled down. console.log(event.deltaY);}); pointer-down
pointer-down: CustomEvent<PointerDownEvent> - Since
- ArcGIS Maps SDK for JavaScript 5.0
Fires after a mouse button is pressed, or a finger touches the display.
pointer-enter
pointer-enter: CustomEvent<PointerEnterEvent> - Since
- ArcGIS Maps SDK for JavaScript 5.0
Fires after a mouse cursor enters the view, or a display touch begins.
pointer-leave
pointer-leave: CustomEvent<PointerLeaveEvent> - Since
- ArcGIS Maps SDK for JavaScript 5.0
Fires after a mouse cursor leaves the view, or a display touch ends.
pointer-move
pointer-move: CustomEvent<PointerMoveEvent> - Since
- ArcGIS Maps SDK for JavaScript 5.0
Fires after the mouse or a finger on the display moves.
Example
// Fires `pointer-move` event when user clicks on "Shift"// key and moves the pointer on the view.view.on('pointer-move', ["Shift"], function(event){ let point = view.toMap({x: event.x, y: event.y}); bufferPoint(point);}); pointer-up
pointer-up: CustomEvent<PointerUpEvent> - Since
- ArcGIS Maps SDK for JavaScript 5.0
Fires after a mouse button is released, or a display touch ends.
resize
resize: CustomEvent<ViewResizeEvent> - Since
- ArcGIS Maps SDK for JavaScript 5.0
Fires when the view's size changes.
vertical-two-finger-drag
vertical-two-finger-drag: CustomEvent<VerticalTwoFingerDragEvent> - Since
- ArcGIS Maps SDK for JavaScript 5.0
Fires while the two pointers are dragged on the view.
Example
view.on("vertical-two-finger-drag", (event) => { // Display the distance moved vertically from the drag origin. console.log("y distance:", event.y);});