import "@arcgis/map-components/components/arcgis-map";The ArcGIS Map component is used to add 2D maps to web applications. For 3D maps, use the ArcGIS Scene component.
The Map component creates a MapView and loads a WebMap from either ArcGIS Online or ArcGIS Enterprise portal.
<arcgis-map item-id="05e015c5f0314db9a487a9b46cb37eca"></arcgis-map>Alternatively, the Map component can be initialized without a WebMap item.
<arcgis-map basemap="satellite" center="-154.88, 19.46" zoom="15"></arcgis-map>Other components can be added and connected to the Map component.
<arcgis-map item-id="05e015c5f0314db9a487a9b46cb37eca">
<arcgis-zoom slot="top-left"></arcgis-zoom>
<arcgis-legend slot="bottom-left"></arcgis-legend>
</arcgis-map>The Map component can be customized further using any of the core API functionalities of the ArcGIS Maps SDK for JavaScript.
const viewElement = document.querySelector("arcgis-map");
viewElement.addEventListener("arcgisViewReadyChange", () => {
const layer = new GraphicsLayer({ title: "My Layer" });
viewElement.map.add(layer);
});See also:
Demo
Properties
allLayerViews
allLayerViews: ReadonlyCollection<LayerView>Collection containing a flat list of all the created LayerViews related to the basemap, operational layers, and group layers in this view.
analyses
analyses: Collection<Analysis>A collection of analyses associated with the view.
animationsDisabled
animationsDisabled: booleanIndicates whether animations are disabled 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,
goTo()).
Setting this property to true disables all animations in the view.
- Attribute
- animations-disabled
- Default value
- false
aria
aria: DOMContainerAriaThe ARIA attributes for the view container. Provides accessibility information to assistive technologies such as screen readers. Supports the following properties: label, description, describedByElements, and labelledByElements.
autoDestroyDisabled
autoDestroyDisabled: booleanIf true, the component will not be destroyed automatically when it is disconnected from the document. This is useful when you want to move the component to a different place on the page, or temporarily hide it. If this is set, make sure to call the destroy method when you are done to prevent memory leaks.
- Attribute
- auto-destroy-disabled
- Default value
- false
background
background: ColorBackgroundThe background color of the Map component.
- Default value
- null
basemap
basemap: Basemap | stringSpecifies a basemap for the map. The basemap is a set of layers that give geographic context to the view and the other operational layers in the map. It can either be set using a basemap ID string (see values), Basemap or BasemapStyle.
- Attribute
- basemap
basemapView
basemapView: BasemapViewRepresents the view for a single basemap after it has been added to the map.
center
center: Array<number> | Point | stringRepresents the view's center point; when setting the center, you may pass a
Point instance or a string representing
a longitude/latitude pair ("-100.4593, 36.9014").
Setting the center immediately changes the current view.
For animating the view, see this component's goTo() method.
- Attribute
- center
constraints
constraints: View2DConstraintsSpecifies constraints to scale, zoom, and rotation that may be applied to the map.
displayFilterDisabled
displayFilterDisabled: booleanIndicates whether a layer's displayFilter is honored when rendering layers in the view.
If false, display filters are ignored and all features are rendered.
- Attribute
- display-filter-disabled
- Default value
- false
extent
extent: ExtentThe 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 this component's goTo() method. When the view is rotated, the extent does not update to include the newly visible portions of the map.
fatalError
fatalError: ErrorA rejected view indicates a fatal error making it unable to display.
floors
floors: 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.
graphics
graphics: Collection<Graphic>Allows for adding graphics directly to the default graphics in the View.
Examples
// Adds a graphic to the View
graphics.add(pointGraphic);// Removes a graphic from the View
graphics.remove(pointGraphic);highlightOptions
highlightOptions: HighlightOptionsUse the highlights property instead.
Options for configuring the highlight.
highlights
highlights: Collection<HighlightOptions>The highlights property is a collection of HighlightOptions objects that allow you to visually emphasize specific features on the map. See MapView.highlights for more information.
interacting
interacting: booleanIndicates whether the view is being interacted with (for example, when panning or via an interactive tool).
- Default value
- false
itemId
itemId: stringThe ID of a WebMap from ArcGIS Online or ArcGIS Enterprise portal.
To configure the portal url you must set the portalUrl property on config before the Map component loads.
- Attribute
- item-id
layerViews
layerViews: Collection<LayerView>A collection containing a hierarchical list of all the created LayerViews of the operational layers in the map.
loadErrorSources
An array of objects that encountered an error while loading the component or any of its dependencies (e.g., basemap, ground, layers, tables). You may inspect the errors by accessing each object's loadError property.
magnifier
magnifier: MagnifierThe magnifier allows for showing a portion of the view as a magnifier image on top of the view.
navigating
navigating: booleanIndication whether the view is being navigated (for example when panning).
- Default value
- false
padding
padding: ViewPaddingPadding to make the map's center and extent work off a subsection of the full map. This is particularly useful when layering UI elements or semi-transparent content on top of portions of the map.
- See also
- Default value
- {left: 0, top: 0, right: 0, bottom: 0}
popup
popup: PopupA Popup object that displays general content or attributes from layers in the map.
popupDisabled
popupDisabled: booleanControls whether the popup opens automatically when users click on the view.
- Attribute
- popup-disabled
- Default value
- false
ready
ready: booleanWhen true, this property indicates whether the view has successfully satisfied all dependencies, signaling that the following conditions are met:
- The view has a map. If map is a WebMap, then the map must be loaded.
- The view has a spatialReference, a center, and a scale. These also can be inferred by setting an extent.
When a view becomes ready it will resolve itself and invoke the callback defined in viewOnReady() where code can execute on a working view.
- Default value
- false
resizeAlign
resizeAlign: "bottom" | "bottom-left" | "bottom-right" | "center" | "left" | "right" | "top" | "top-left" | "top-right"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.
- Attribute
- resize-align
- Default value
- "center"
resolution
resolution: numberRepresents the current value of one pixel in the unit of the view's spatialReference. The value of resolution is calculated by dividing the view's extent width by its width.
rotation
rotation: numberThe 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.
- Attribute
- rotation
- Default value
- 0
scale
scale: numberRepresents the map scale at the center of the view. Setting the scale immediately changes the view. For animating the view, see this component's goTo() method.
- Attribute
- scale
spatialReference
spatialReference: SpatialReferenceThe spatial reference of the view. This indicates the projected or geographic coordinate system used to locate geographic features in the map.
- Default value
- null
spatialReferenceLocked
spatialReferenceLocked: booleanIndicates if the map's spatialReference can be changed after it is ready.
The default is false, indicating the map's spatialReference can be changed at runtime.
When true, basemaps with spatial references that do not match the map's spatial reference
will be disabled in arcgis-basemap-gallery and arcgis-basemap-toggle components and the map's spatialReference cannot be changed at runtime.
- Attribute
- spatial-reference-locked
- Default value
- false
stationary
stationary: booleanIndication whether the view is animating, being navigated with or resizing.
- Default value
- false
suspended
suspended: booleanIndicates if the view is visible on the page.
- Attribute
- suspended
- Default value
- true
theme
theme: ThemeThis property specifies the base colors used by some components to render graphics and labels.
- Default value
- null
timeExtent
timeExtent: TimeExtentThe 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.
- Default value
- null
timeZone
timeZone: stringDefines 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.
- Attribute
- time-zone
- Default value
- "system"
updating
updating: booleanIndicates whether the view is being updated by additional data requests to the network, or by processing received data.
- Default value
- false
view
view: MapViewThe MapView instance created and managed by the component. Accessible once the component is fully loaded.
viewpoint
viewpoint: ViewpointRepresents 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 this component's goTo() method.
visibleArea
visibleArea: PolygonThe visibleArea represents the visible portion of a map within the view as an instance of a Polygon.
zoom
zoom: numberRepresents the level of detail (LOD) at the center of the map. A zoom level (or scale) is a number that defines how large or small the contents of a map appear in a Map component. 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 map has no LODs. When setting the zoom value, the component converts it to the corresponding scale, or interpolates it if the zoom is a fractional number.
Setting the zoom immediately changes the current view. For animating the view, see this component's goTo() method.
Setting this property in conjunction with center is a convenient way to set the initial extent of the view.
- Attribute
- zoom
Methods
| Method | Signature |
|---|---|
addLayerdeprecated | addLayer(layer: __esri.Layer | Promise<any>, index?: number): Promise<void> |
addLayersdeprecated | addLayers(layers: __esri.Layer[], index?: number): Promise<void> |
addTabledeprecated | addTable(table: __esri.FeatureLayer): Promise<void> |
addTablesdeprecated | addTables(tables: __esri.FeatureLayer[], index?: number): Promise<void> |
closePopup | closePopup(): Promise<void> |
componentOnReady | componentOnReady(): Promise<void> |
destroy | destroy(): Promise<void> |
goTo | goTo(target: __esri.GoToTarget2D, options?: __esri.GoToOptions2D): Promise<unknown> |
hitTest | hitTest(screenPoint: __esri.MapViewScreenPoint | MouseEvent, options?: __esri.MapViewHitTestOptions): Promise<__esri.HitTestResult> |
openPopup | openPopup(options?: __esri.PopupViewOpenPopupOptions): Promise<void> |
takeScreenshot | takeScreenshot(options?: __esri.MapViewTakeScreenshotOptions): Promise<__esri.Screenshot> |
toMap | toMap(screenPoint: __esri.MapViewScreenPoint | MouseEvent): __esri.Point |
toScreen | toScreen(point: __esri.Point, options?: __esri.ToScreenOptions2D): __esri.MapViewScreenPoint | nullish |
tryFatalErrorRecovery | tryFatalErrorRecovery(): Promise<void> |
viewOnReady | viewOnReady(callback?: (): void, errback?: (error: Error) => void): Promise<void> |
whenAnalysisView | whenAnalysisView(analysis: __esri.Analysis): Promise<__esri.AnalysisView2DUnion> |
whenLayerView | whenLayerView(layer: __esri.Layer): Promise<__esri.LayerView> |
addLayer
addLayer(layer: __esri.Layer | Promise<any>, index?: number): Promise<void>element.map.add(layer) instead.Adds a layer to the map layers collection.
Parameters
| Parameter | Type | Optional? |
|---|---|---|
| layer | Layer | Promise<any> | |
| index | number | undefined |
- Returns
- Promise<void>
addLayers
addLayers(layers: __esri.Layer[], index?: number): Promise<void>element.map.addMany([layer]) instead.Adds a layer or array of layers to the map layers collection.
Parameters
| Parameter | Type | Optional? |
|---|---|---|
| layers | Array<Layer> | |
| index | number | undefined |
- Returns
- Promise<void>
addTable
addTable(table: __esri.FeatureLayer): Promise<void>element.map.tables.add(table) instead.Adds a table to the map tables collection.
Parameters
| Parameter | Type | Optional? |
|---|---|---|
| table | FeatureLayer |
- Returns
- Promise<void>
addTables
addTables(tables: __esri.FeatureLayer[], index?: number): Promise<void>element.map.tables.addMany([table]) instead.Adds a table or array of tables to the map tables collection.
Parameters
| Parameter | Type | Optional? |
|---|---|---|
| tables | Array<FeatureLayer> | |
| index | number | undefined |
- Returns
- Promise<void>
componentOnReady
componentOnReady(): Promise<void>Create a promise that resolves once component is fully loaded.
Example
const arcgisMap = document.querySelector("arcgis-map");
document.body.append(arcgisMap);
await arcgisMap.componentOnReady();
console.log("arcgis-map is ready to go!");- Returns
- Promise<void>
destroy
destroy(): Promise<void>Destroys the view, and any associated resources, including its map, popup, and UI elements.
- Returns
- Promise<void>
goTo
goTo(target: __esri.GoToTarget2D, options?: __esri.GoToOptions2D): Promise<unknown>Sets the view to a given target.
Parameters
| Parameter | Type | Optional? |
|---|---|---|
| target | any | |
| options | GoToOptions2D | undefined |
- Returns
- Promise<unknown>
hitTest
hitTest(screenPoint: __esri.MapViewScreenPoint | MouseEvent, options?: __esri.MapViewHitTestOptions): Promise<__esri.HitTestResult>Returns hit test results from each layer that intersects the specified screen coordinates.
Parameters
| Parameter | Type | Optional? |
|---|---|---|
| screenPoint | MapViewScreenPoint | MouseEvent | |
| options | MapViewHitTestOptions | undefined |
- Returns
- Promise<HitTestResult>
openPopup
openPopup(options?: __esri.PopupViewOpenPopupOptions): Promise<void>Opens the popup at the given location with content defined either explicitly with content or driven from the PopupTemplate of input features.
Parameters
| Parameter | Type | Optional? |
|---|---|---|
| options | PopupViewOpenPopupOptions | undefined |
- Returns
- Promise<void>
takeScreenshot
takeScreenshot(options?: __esri.MapViewTakeScreenshotOptions): Promise<__esri.Screenshot>Create a screenshot of the current view.
Parameters
| Parameter | Type | Optional? |
|---|---|---|
| options | MapViewTakeScreenshotOptions | undefined |
- Returns
- Promise<Screenshot>
toMap
toMap(screenPoint: __esri.MapViewScreenPoint | MouseEvent): __esri.PointParameters
| Parameter | Type | Optional? |
|---|---|---|
| screenPoint | MapViewScreenPoint | MouseEvent |
- Returns
- Point
toScreen
toScreen(point: __esri.Point, options?: __esri.ToScreenOptions2D): __esri.MapViewScreenPoint | nullishParameters
| Parameter | Type | Optional? |
|---|---|---|
| point | Point | |
| options | ToScreenOptions2D | undefined |
- Returns
- MapViewScreenPoint | null | undefined
tryFatalErrorRecovery
tryFatalErrorRecovery(): Promise<void>Call this method to clear any fatal errors resulting from a lost WebGL context.
- Returns
- Promise<void>
viewOnReady
viewOnReady(callback?: (): void, errback?: (error: Error) => void): Promise<void>viewOnReady() may be leveraged once an instance of the component and its underlying view is created and ready.
This method takes two input parameters, a callback function and an errback function, and returns a promise. The callback executes when the promise resolves, and the errback executes if the promise is rejected.
Example
const viewElement = document.querySelector("arcgis-map");
await viewElement.viewOnReady();
// The view is now ready to be used.
viewElement.map.add(new FeatureLayer({...}));Parameters
| Parameter | Type | Optional? |
|---|---|---|
| callback | ((() => void)) | undefined | |
| errback | (((error: Error) => void)) | undefined |
- Returns
- Promise<void>
whenAnalysisView
whenAnalysisView(analysis: __esri.Analysis): Promise<__esri.AnalysisView2DUnion>Gets the analysis view created for the given analysis object.
Parameters
| Parameter | Type | Optional? |
|---|---|---|
| analysis | Analysis |
- Returns
- Promise<ElevationProfileAnalysisView2D>
whenLayerView
whenLayerView(layer: __esri.Layer): Promise<__esri.LayerView>Gets the LayerView created on the view for the given layer.
Parameters
| Parameter | Type | Optional? |
|---|---|---|
| layer | Layer |
- Returns
- Promise<LayerView>
Events
arcgisLoadError
arcgisLoadError: CustomEvent<void>Fires when a ArcgisMap fails to load or if one of its dependencies fails to load (e.g., basemap, ground, layers).
- See also
Example
viewElement.addEventListener("arcgisLoadError", () => {
console.log(viewElement.loadErrorSources);
});arcgisViewAnalysisViewCreate
arcgisViewAnalysisViewCreate: CustomEvent<ViewAnalysisViewCreateEvent>Fires when the view for an analysis is created.
arcgisViewAnalysisViewCreateError
arcgisViewAnalysisViewCreateError: CustomEvent<ViewAnalysisViewCreateErrorEvent>Fires when an error occurs during the creation of an analysis view after an analysis is added to the view.
arcgisViewAnalysisViewDestroy
arcgisViewAnalysisViewDestroy: CustomEvent<ViewAnalysisViewDestroyEvent>Fires after an analysis view is destroyed.
arcgisViewChange
arcgisViewChange: CustomEvent<void>This event is for view related property changes: zoom, scale, center, rotation, extent, camera, viewpoint. This event will also emit if stationary toggles from true to false.
arcgisViewClick
arcgisViewClick: CustomEvent<ViewClickEvent>Fires after a user clicks on the view.
arcgisViewDoubleClick
arcgisViewDoubleClick: CustomEvent<ViewDoubleClickEvent>Fires after double-clicking on the view.
arcgisViewDrag
arcgisViewDrag: CustomEvent<ViewDragEvent>Fires during a pointer drag on the view.
arcgisViewHold
arcgisViewHold: CustomEvent<ViewHoldEvent>Fires during a pointer drag on the view.
arcgisViewImmediateClick
arcgisViewImmediateClick: CustomEvent<ViewImmediateClickEvent>Fires right after a user clicks on the view.
arcgisViewImmediateDoubleClick
arcgisViewImmediateDoubleClick: CustomEvent<ViewImmediateDoubleClickEvent>Is emitted after two consecutive immediate-click events.
arcgisViewKeyDown
arcgisViewKeyDown: CustomEvent<ViewKeyDownEvent>Fires after a keyboard key is pressed.
arcgisViewKeyUp
arcgisViewKeyUp: CustomEvent<ViewKeyUpEvent>Fires after a keyboard key is pressed.
arcgisViewLayerviewCreate
arcgisViewLayerviewCreate: CustomEvent<ViewLayerviewCreateEvent>Fires after each layer in the map has a corresponding LayerView created and rendered in the view.
arcgisViewLayerviewCreateError
arcgisViewLayerviewCreateError: CustomEvent<ViewLayerviewCreateErrorEvent>Fires when an error emits during the creation of a LayerView after a layer has been added to the map.
arcgisViewLayerviewDestroy
arcgisViewLayerviewDestroy: CustomEvent<ViewLayerviewDestroyEvent>Fires after a LayerView is destroyed and is no longer rendered in the view.
arcgisViewMouseWheel
arcgisViewMouseWheel: CustomEvent<ViewMouseWheelEvent>Fires when a wheel button of a pointing device (typically a mouse) is scrolled on the view.
arcgisViewPointerDown
arcgisViewPointerDown: CustomEvent<ViewPointerDownEvent>Fires after a mouse button is pressed, or a finger touches the display.
arcgisViewPointerEnter
arcgisViewPointerEnter: CustomEvent<ViewPointerEnterEvent>Fires after a mouse cursor enters the view, or a display touch begins.
arcgisViewPointerLeave
arcgisViewPointerLeave: CustomEvent<ViewPointerLeaveEvent>Fires after a mouse cursor leaves the view, or a display touch ends.
arcgisViewPointerMove
arcgisViewPointerMove: CustomEvent<ViewPointerMoveEvent>Fires after the mouse or a finger on the display moves.
arcgisViewPointerUp
arcgisViewPointerUp: CustomEvent<ViewPointerUpEvent>Fires after a mouse button is released, or a display touch ends.
arcgisViewReadyChange
arcgisViewReadyChange: CustomEvent<void>This event is for the ready property and will be emitted when the view is ready.
This event will also emit if the map property is changed.
arcgisViewReadyError
arcgisViewReadyError: CustomEvent<void>Fires if the view encounters a content or rendering error.
Example
viewElement.addEventListener("arcgisViewReadyError", () => {
// handle error
});Slots
| Name | Description |
|---|---|
default(unnamed) | Default slot for adding components to the map. User is responsible for positioning the content via CSS. |
top-left | Slot for components positioned in the top-left corner. |
top-right | Slot for components positioned in the top-right corner. |
bottom-left | Slot for components positioned in the bottom-left corner. |
bottom-right | Slot for components positioned in the bottom-right corner. |
top-start | Slot for components positioned at the top-start (top-left in LTR, top-right in RTL). |
top-end | Slot for components positioned at the top-end (top-right in LTR, top-left in RTL). |
bottom-start | Slot for components positioned at the bottom-start (bottom-left in LTR, bottom-right in RTL). |
bottom-end | Slot for components positioned at the bottom-end (bottom-right in LTR, bottom-left in RTL). |
popup | Slot for the Popup component to open automatically on click. When using this slot, the |
default (unnamed)
Default slot for adding components to the map. User is responsible for positioning the content via CSS.
bottom-start
Slot for components positioned at the bottom-start (bottom-left in LTR, bottom-right in RTL).
bottom-end
Slot for components positioned at the bottom-end (bottom-right in LTR, bottom-left in RTL).
popup
Slot for the Popup component to open automatically on click. When using this slot, the popup-disabled attribute must be set to true. Only the Popup component can be placed in this slot.
Styles
| Name | Description |
|---|---|
--arcgis-layout-overlay-space-top | Since 4.34 Specifies the top padding for the layout. |
--arcgis-layout-overlay-space-bottom | Since 4.34 Specifies the bottom padding for the layout. |
--arcgis-layout-overlay-space-left | Since 4.34 Specifies the left padding for the layout. |
--arcgis-layout-overlay-space-right | Since 4.34 Specifies the right padding for the layout. |