Skip to main content

Map

The map component displays an interactive map with location markers during checkout. Use map for store finders, delivery confirmation, pickup points, and other location context.

Map components support markers, popovers, and custom marker graphics through the graphic slot. For a static map image without panning or zooming, use image instead.

Map requires a Google Maps API key and a set of allowed domains where the map renders. Refer to the Google Maps Platform documentation for details on obtaining an API key. Rendering depends on the buyer's network connection and Google Maps availability — offline rendering isn't supported.

Support
Targets (29)

Configure the following properties on the map component.

Anchor to accessibilityLabel
accessibilityLabel
string

A label that describes the purpose or contents of the map for accessibility. When set, it will be announced to users using assistive technologies such as screen readers, providing context about what the map displays.

Anchor to apiKey
apiKey
string

A valid API key for the map service provider. This key is required to load and render the map tiles. Obtain a key from a supported provider such as Google Maps Platform.

Anchor to blockSize
blockSize
<>
Default: 'auto'

The block size of the element (height in horizontal writing modes). Learn more about the block-size property.

  • SizeUnits: Specific size values in pixels, percentages, or zero for precise control.
  • auto: Automatically sizes based on content and layout constraints.
string

A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.

Anchor to inlineSize
inlineSize
<>
Default: 'auto'

The inline size of the element (width in horizontal writing modes). Learn more about the inline-size property.

  • SizeUnits: Specific size values in pixels, percentages, or zero for precise control.
  • auto: Automatically sizes based on content and layout constraints.
Anchor to latitude
latitude
number
Default: 0

The latitude of the map's center point, in degrees. Valid values range from -90 (South Pole) to 90 (North Pole).

Anchor to longitude
longitude
number
Default: 0

The longitude of the map's center point, in degrees. Valid values range from -180 (west) to 180 (east).

Anchor to maxBlockSize
maxBlockSize
<>
Default: 'none'

The maximum block size of the element (maximum height in horizontal writing modes). Learn more about the max-block-size property.

Anchor to maxInlineSize
maxInlineSize
<>
Default: 'none'

The maximum inline size of the element (maximum width in horizontal writing modes). Learn more about the max-inline-size property.

Anchor to maxZoom
maxZoom
number
Default: 18

The maximum zoom level the user can reach on the map. Valid values are numbers from 0 (world view) to 18 (street level). Use this to prevent users from zooming in beyond a useful level of detail.

Anchor to minBlockSize
minBlockSize
<>
Default: '0'

The minimum block size of the element (minimum height in horizontal writing modes). Learn more about the min-block-size property.

Anchor to minInlineSize
minInlineSize
<>
Default: '0'

The minimum inline size of the element (minimum width in horizontal writing modes). Learn more about the min-inline-size property.

Anchor to minZoom
minZoom
number
Default: 0

The minimum zoom level the user can reach on the map. Valid values are numbers from 0 (world view) to 18 (street level). Use this to prevent users from zooming out beyond a useful level of context.

number
Default: 4

The initial zoom level of the map. Valid values are numbers from 0 (fully zoomed out, world view) to 18 (fully zoomed in, street level).

The map component provides event callbacks for handling user interactions. Learn more about handling events.

Anchor to boundschange
boundschange
<typeof tagName, >

A callback fired when the visible map boundaries change, such as after a pan or zoom completes.

Anchor to click
click
<typeof tagName, >

A callback fired when the user clicks on the map. Provides the geographic location of the click.

Anchor to dblclick
dblclick
<typeof tagName, >

A callback fired when the user double-clicks on the map. Provides the geographic location of the double-click.

Anchor to viewchange
viewchange
<typeof tagName, >

A callback fired when the map view changes, such as when the user pans or zooms. Provides the new center location and zoom level.


Use MapMarker to display a marker on a map. Use only as a child of s-map component.

Anchor to accessibilityLabel
accessibilityLabel
string

A label that describes the purpose or location of the marker for accessibility. When set, it will be announced to users using assistive technologies such as screen readers, providing context about what the marker represents.

Anchor to blockSize
blockSize
<>
Default: 'auto'

The block size of the element (height in horizontal writing modes). Learn more about the block-size property.

  • SizeUnits: Specific size values in pixels, percentages, or zero for precise control.
  • auto: Automatically sizes based on content and layout constraints.
Anchor to clusterable
clusterable
boolean
Default: false

Whether the marker can be grouped into clusters when the map is zoomed out. Clustering helps reduce visual clutter when many markers are close together at low zoom levels.

Anchor to command
command
'--auto' | '--show' | '--hide' | '--toggle'
Default: '--auto'

Sets the action the commandFor target should take when this component is activated. Learn more about the command attribute.

  • --auto: a default action for the target component.
  • --show: shows the target component.
  • --hide: hides the target component.
  • --toggle: toggles the target component.
Anchor to commandFor
commandFor
string

The ID of the component to control when this component is activated. Pair with the command property to specify what action to perform on the target component. Learn more about the commandFor attribute.

Anchor to inlineSize
inlineSize
<>
Default: 'auto'

The inline size of the element (width in horizontal writing modes). Learn more about the inline-size property.

  • SizeUnits: Specific size values in pixels, percentages, or zero for precise control.
  • auto: Automatically sizes based on content and layout constraints.
Anchor to latitude
latitude
number
Default: 0

The latitude of the marker’s position in degrees. Valid values range from -90 (South Pole) to 90 (North Pole).

Anchor to longitude
longitude
number
Default: 0

The longitude of the marker’s position in degrees. Valid values range from -180 (west) to 180 (east).

The map marker component provides event callbacks for handling user interactions. Learn more about handling events.

Anchor to click
click
<typeof tagName>

A callback fired when the user clicks on the marker. This event does not propagate to the parent map — only the marker receives the click.

The map marker component supports slots for additional content placement within the component. Learn more about using slots.

Anchor to graphic
graphic
HTMLElement

A custom graphic element to use as the marker. If not provided, the map provider’s default marker pin is displayed.


Anchor to Pin a location on a mapPin a location on a map

Embed an interactive map with a marker at a specific location. This example renders an s-map centered on London with an s-map-marker placed at the same coordinates.

Pin a location on a map

A rendered example of the map component

html

<s-map accessibilityLabel="Store location" apiKey="YOUR_API_KEY" latitude="51.5074" longitude="-0.1278">
<s-map-marker latitude="51.5074" longitude="-0.1278"></s-map-marker>
</s-map>

Anchor to Show a popover from a map markerShow a popover from a map marker

Display additional details when a buyer taps a marker. This example uses a Popover component to present content anchored to an s-map-marker.

html

<s-map
apiKey="YOUR_API_KEY"
blockSize="400px"
inlineSize="400px"
latitude="37.7749"
longitude="-122.4194"
>
<s-map-marker
latitude="37.7749"
longitude="-122.4194"
commandFor="popover-san-francisco"
></s-map-marker>
<s-popover id="popover-san-francisco">San Francisco</s-popover>
</s-map>

Anchor to Use a graphic as the map markerUse a graphic as the map marker

Replace the default marker with a custom graphic. This example demonstrates the graphic slot on s-map-marker to display a branded icon instead of the standard pin.

html

<s-map
apiKey="YOUR_API_KEY"
blockSize="400px"
inlineSize="400px"
latitude="40.7128"
longitude="-74.0060"
>
<s-map-marker
latitude="40.7128"
longitude="-74.0060"
>
<s-icon type="store" slot="graphic"></s-icon>
</s-map-marker>
</s-map>

  • Use a relevant default view: Set the initial map center and zoom levels to frame the most relevant area for the buyer and ensure that relevant markers are visible without having to pan or zoom.
  • Use markers sparingly: Limit the number of markers to avoid cluttering the map. For many locations, consider setting the markers to clusterable or showing a list alongside the map.
  • Use distinct markers to illustrate state: If your markers are interactive, make sure the selected marker's icon is visually different from non-selected markers so buyers can identify their selection.
  • Provide fallback text: Ensure that address information is also displayed as text for buyers who can't interact with the map or in case the map can't load.

Was this page helpful?