arcgis-embeddable-maps
ArcGIS Embeddable Maps
Use this skill when embedding a lightweight, self-contained map into a web page with minimal code. The @arcgis/embeddable-components package provides the arcgis-embedded-map web component - a single element that bundles a WebMap viewer with optional built-in UI controls (legend, bookmarks, basemap gallery, fullscreen). This is a new component package in 5.0 with no 4.x equivalent.
When to use
arcgis-embedded-mapvsarcgis-map: Usearcgis-embedded-mapfor simple, read-only map embeds (blogs, dashboards, reports) where you don't need custom widgets, editing, or programmatic map control. Usearcgis-map(seearcgis-core-maps) for full-featured applications.
Import Patterns
CDN (No Build Tools)
<!-- Load ArcGIS Maps SDK -->
<script src="https://js.arcgis.com/5.0/"></script>
<!-- Load Embeddable Components -->
<script
type="module"
src="https://js.arcgis.com/5.0/embeddable-components/"
></script>
Direct ESM Imports (Build Tools)
import "@arcgis/embeddable-components/components/arcgis-embedded-map";
arcgis-embedded-map Component
Properties
| Property | Attribute | Type | Default | Description |
|---|---|---|---|---|
itemId |
item-id |
string |
- | Required. Portal item ID of a WebMap |
portalUrl |
portal-url |
string |
"https://www.arcgis.com" |
Portal URL (ArcGIS Online or Enterprise) |
apiKey |
api-key |
string |
- | API key for accessing the resource |
center |
center |
number[] | Point |
- | View center [longitude, latitude] |
zoom |
zoom |
number |
- | Zoom level |
scale |
scale |
string |
- | Map scale at center |
extent |
- | Extent |
- | Visible map extent (set via JS) |
webMap |
- | WebMap |
- | WebMap instance (set via JS, alternative to itemId) |
theme |
theme |
string |
"light" |
Component theme: "light" or "dark" |
UI Control Properties
| Property | Attribute | Type | Default | Description |
|---|---|---|---|---|
headingEnabled |
heading-enabled |
boolean |
false |
Show the WebMap title |
legendEnabled |
legend-enabled |
boolean |
false |
Show the legend panel |
bookmarksEnabled |
bookmarks-enabled |
boolean |
false |
Show bookmarks panel |
basemapGalleryEnabled |
basemap-gallery-enabled |
boolean |
false |
Show basemap gallery panel |
informationEnabled |
information-enabled |
boolean |
false |
Show information panel |
shareEnabled |
share-enabled |
boolean |
false |
Show button to open in Map Viewer |
fullscreenDisabled |
fullscreen-disabled |
boolean |
false |
Disable the fullscreen button |
scrollEnabled |
scroll-enabled |
boolean |
true |
Enable mouse wheel scroll zooming |
timeZoneLabelEnabled |
time-zone-label-enabled |
boolean |
false |
Show time zone labels |
Methods
| Method | Returns | Description |
|---|---|---|
componentOnReady() |
Promise<void> |
Resolves when the component is fully loaded |
Basic Usage
Minimal Embed
<arcgis-embedded-map
item-id="f2e9b762544945f390ca4ac3671cfa72"
style="width: 800px; height: 600px;"
>
</arcgis-embedded-map>
Embed with All UI Controls
<arcgis-embedded-map
item-id="f2e9b762544945f390ca4ac3671cfa72"
heading-enabled
legend-enabled
bookmarks-enabled
basemap-gallery-enabled
information-enabled
share-enabled
style="width: 100%; height: 500px;"
>
</arcgis-embedded-map>
Dark Theme
<arcgis-embedded-map
item-id="f2e9b762544945f390ca4ac3671cfa72"
theme="dark"
legend-enabled
style="width: 800px; height: 600px;"
>
</arcgis-embedded-map>
Custom Center and Zoom
<arcgis-embedded-map
item-id="f2e9b762544945f390ca4ac3671cfa72"
center="-118.24,34.05"
zoom="12"
style="width: 800px; height: 600px;"
>
</arcgis-embedded-map>
Disable Scroll Zoom (For Inline Content)
<arcgis-embedded-map
item-id="f2e9b762544945f390ca4ac3671cfa72"
scroll-enabled="false"
style="width: 100%; height: 400px;"
>
</arcgis-embedded-map>
With API Key
<arcgis-embedded-map
item-id="YOUR_ITEM_ID"
api-key="YOUR_API_KEY"
portal-url="https://www.arcgis.com"
legend-enabled
style="width: 800px; height: 600px;"
>
</arcgis-embedded-map>
Enterprise Portal
<arcgis-embedded-map
item-id="YOUR_ENTERPRISE_ITEM_ID"
portal-url="https://your-enterprise.com/portal"
heading-enabled
legend-enabled
style="width: 800px; height: 600px;"
>
</arcgis-embedded-map>
CDN Full Example
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Embedded Map</title>
<script src="https://js.arcgis.com/5.0/"></script>
<script
type="module"
src="https://js.arcgis.com/5.0/embeddable-components/"
></script>
<style>
body {
font-family: sans-serif;
max-width: 900px;
margin: 0 auto;
padding: 20px;
}
arcgis-embedded-map {
width: 100%;
height: 500px;
display: block;
margin: 20px 0;
}
</style>
</head>
<body>
<h1>City Demographics</h1>
<p>Explore population data across the region.</p>
<arcgis-embedded-map
item-id="f2e9b762544945f390ca4ac3671cfa72"
heading-enabled
legend-enabled
bookmarks-enabled
theme="light"
>
</arcgis-embedded-map>
<p>Data source: US Census Bureau</p>
</body>
</html>
Programmatic Configuration
Setting Extent via JavaScript
const embeddedMap = document.querySelector("arcgis-embedded-map");
await embeddedMap.componentOnReady();
embeddedMap.extent = {
xmin: -118.5,
ymin: 33.8,
xmax: -117.9,
ymax: 34.3,
spatialReference: { wkid: 4326 },
};
Using a WebMap Instance
const WebMap = await $arcgis.import("@arcgis/core/WebMap.js");
const webMap = new WebMap({
portalItem: { id: "f2e9b762544945f390ca4ac3671cfa72" },
});
const embeddedMap = document.querySelector("arcgis-embedded-map");
embeddedMap.webMap = webMap;
Theming with CSS Variables
The component supports Calcite Design System CSS variables:
arcgis-embedded-map {
--calcite-color-brand: #007ac2;
--calcite-color-foreground-1: #ffffff;
--calcite-color-text-1: #151515;
--calcite-color-border-1: #cacaca;
}
Common Pitfalls
-
Missing
item-id: The component requires a WebMap portal item ID.<!-- Anti-pattern: no item-id --> <arcgis-embedded-map style="width: 800px; height: 600px;"> </arcgis-embedded-map><!-- Correct: provide item-id --> <arcgis-embedded-map item-id="f2e9b762544945f390ca4ac3671cfa72" style="width: 800px; height: 600px;" > </arcgis-embedded-map>Impact: The component renders an empty container with no map.
-
Missing embeddable-components script: The package must be loaded separately.
<!-- Anti-pattern: only loading core SDK --> <script src="https://js.arcgis.com/5.0/"></script> <arcgis-embedded-map item-id="abc123"></arcgis-embedded-map><!-- Correct: load embeddable-components --> <script src="https://js.arcgis.com/5.0/"></script> <script type="module" src="https://js.arcgis.com/5.0/embeddable-components/" ></script> <arcgis-embedded-map item-id="abc123"></arcgis-embedded-map>Impact: The element is unrecognized and renders as empty.
-
No explicit size: The embedded map needs width and height to render visibly.
<!-- Anti-pattern: no size set --> <arcgis-embedded-map item-id="abc123"></arcgis-embedded-map><!-- Correct: explicit dimensions --> <arcgis-embedded-map item-id="abc123" style="width: 100%; height: 500px; display: block;" > </arcgis-embedded-map>Impact: The map renders with zero height and is invisible on the page.
-
Using
arcgis-embedded-mapfor interactive apps: This component is designed for simple embeds. It does not support custom widgets, editing, layer manipulation, or programmatic view control. Usearcgis-mapfrom@arcgis/map-componentsfor full applications.Impact: Attempting to add widgets or edit features fails silently.
-
Scroll zoom in long pages: When the embedded map is inline with scrollable content, scroll zoom can trap users. Disable it for better UX.
<arcgis-embedded-map item-id="abc123" scroll-enabled="false" style="width: 100%; height: 400px;" > </arcgis-embedded-map>Impact: Users get stuck zooming the map when they want to scroll the page.
Reference Samples
- Search for embedded map samples demonstrating lightweight WebMap embedding.
Related Skills
- See
arcgis-core-mapsfor full-featured map applications usingarcgis-mapandarcgis-scene. - See
arcgis-starter-appfor project scaffolding and CDN setup. - See
arcgis-authenticationfor API key and portal authentication.
More from saschabrunnerch/arcgis-maps-sdk-js-ai-context
arcgis-core-maps
Create 2D and 3D maps using ArcGIS Maps SDK for JavaScript. Use for initializing maps, scenes, views, and navigation. Supports both Map Components (web components) and Core API approaches.
60arcgis-widgets-ui
Build map user interfaces with ArcGIS widgets, Map Components, and Calcite Design System. Use for adding legends, layer lists, search, tables, time sliders, and custom UI layouts.
55arcgis-geometry-operations
Create, manipulate, and analyze geometries using geometry classes and geometry operators. Use for spatial calculations, geometry creation, buffering, intersections, unions, and mesh operations.
47arcgis-popup-templates
Configure rich popup content with text, fields, media, charts, attachments, and related records. Use when customizing feature popups, adding charts or images to popups, templating popup titles and field formatting, or displaying related record data on click.
45arcgis-imagery
Work with raster and imagery data using ImageryLayer, ImageryTileLayer, pixel filtering, raster functions, multidimensional data, and oriented imagery. Use for satellite imagery, elevation data, and scientific raster datasets.
42arcgis-authentication
Implement authentication with ArcGIS using OAuth 2.0, API keys, and identity management. Use for accessing secured services, portal items, and user-specific content.
40