# Map Use the Map component to provide visual representation of geographic data such as verifying address, package or pickup locations. Please note that the merchant or partner has to provide an API key and a set of allowed domains where the map would render. The 3 necessary domains needed are: - `https://*.[MERCHANT-DOMAIN].com` - `https://shop.app` - `https://shopify.com` Where `*` is a wildcard. Learn more about [match patterns](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Match_patterns). Please refer to the [Google Maps Platform documentation](https://developers.google.com/maps/documentation/javascript/get-api-key) for more details on how to get an API key. ### Basic Map ```tsx import { reactExtension, Map, } from '@shopify/ui-extensions-react/checkout'; export default reactExtension( 'purchase.checkout.block.render', () => <Extension />, ); function Extension() { return ( <Map apiKey="YOUR_GOOGLE_MAPS_API_KEY" latitude={-28.024} longitude={140.887} zoom={4} accessibilityLabel="Map showing pickup locations" /> ); } ``` ```js import {extension, Map} from '@shopify/ui-extensions/checkout'; export default extension('purchase.checkout.block.render', (root) => { const map = root.createComponent(Map, { apiKey: 'YOUR_API_KEY', accessibilityLabel: 'Map showing pickup locations', latitude: -28.024, longitude: 140.887, zoom: 4, }); root.appendChild(map); }); ``` ## MapProps ### MapProps ### accessibilityLabel A label to describe the purpose of the map that is announced by screen readers. ### apiKey The Google Maps API key. ### id The id of the map. This is used to set a unique map id for the Google Maps API. If you don't provide an id, the map component will automatically create a unique one for every map. If you provide it, you need to make sure it's unique. ### latitude The latitude of the center of the map. ### longitude The longitude of the center of the map. ### maxBlockSize Adjust the maximum block size. `number`: size in pixels. `` `${number}%` ``: size in percentages. `fill`: takes all the available space. See [MDN explanation of maxBlockSize](https://developer.mozilla.org/en-US/docs/Web/CSS/max-block-size). ### maxInlineSize Adjust the maximum inline size. `number`: size in pixels. `` `${number}%` ``: size in percentages. `fill`: takes all the available space. See [MDN explanation of maxInlineSize](https://developer.mozilla.org/en-US/docs/Web/CSS/max-inline-size). ### maxZoom The maximum zoom level of the map. ### minBlockSize Adjust the block size. `number`: size in pixels. `` `${number}%` ``: size in percentages. `fill`: takes all the available space. See [MDN explanation of minBlockSize](https://developer.mozilla.org/en-US/docs/Web/CSS/min-block-size). ### minInlineSize Adjust the minimum inline size. `number`: size in pixels. `` `${number}%` ``: size in percentages. `fill`: takes all the available space.\ See [MDN explanation of minInlineSize](https://developer.mozilla.org/en-US/docs/Web/CSS/min-inline-size). ### minZoom The minimum zoom level of the map. ### onBoundsChange Callback to run when the map bounds change. ### onCenterChange Callback to run when the map center changes. ### onDoublePress Callback to run when the map is double clicked. ### onPress Callback to run when the map is pressed. ### onZoomChange Callback to run when the map zoom changes. ### zoom The zoom level of the map. It must be a number between 0 and 18. ### MaybeResponsiveConditionalStyle A type that represents a value that can be a conditional style. The conditions are based on the viewport size. We highly recommend using the `Style` helper which simplifies the creation of conditional styles. To learn more check out the [conditional styles](/api/checkout-ui-extensions/components/utilities/stylehelper) documentation. T | ConditionalStyle<T, ViewportSizeCondition> ### ConditionalStyle ### conditionals An array of conditional values. ### default The default value applied when none of the conditional values specified in `conditionals` are met. ### ConditionalValue ### conditions The conditions that must be met for the value to be applied. At least one condition must be specified. ### value The value that will be applied if the conditions are met. ### ViewportSizeCondition ### viewportInlineSize ### MapBounds ### northEast ### southWest ### MapLocation ### latitude ### longitude ### MapZoom 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 ## Related - [MapMarker](mapmarker) - [MapPopover](mappopover)