Static Map Images
Maps makes it really easy to render static map images in twig. There are two ways of rendering a static map image. First is via a Map field, second is using the global map variable.
Options
Both methods support the following options, passed as a Twig object to the method (we'll cover that later):
center
- This can be an address string (i.e. "Maidstone, UK"), a lat / lng variable (i.e.[51.272154, 0.514951]
or{ lat: 51.272154, lng: 0.514951 }
).centerFallback
- The fallback location that will be used if the center specified above is empty. Must be lat / lng.width
- The width of the map image (see max image sizes below).height
- The height of the map image (see max image sizes below).zoom
- The zoom level of the map (must be between 0 and 18).scale
- The scale of the image (can be either 1 or 2 (retina), defaults to 1).markers
- An array of map markers (see below)
Markers
The markers
option accepts an array of objects with the following parameters (all are optional):
location
- This can be an address string (i.e. "Maidstone, UK"), a lat / lng variable (i.e.[51.272154, 0.514951]
or{ lat: 51.272154, lng: 0.514951 }
). If left blank the marker will appear at the center of the map.color
- A valid hex colour string. Will default to#ff0000
if blank.label
- An option label, must be a single character A-Z0-9.
From a Map field
To render a map from a Map field, use the img
or imgSrcSet
methods on the fields value:
{% set myMapField = entry.myMapField %}
<img
src="{{ myMapField.img() }}"
srcset="{{ myMapField.imgSrcSet() }}"
alt="{{ myMapField.address }}"
/>
mapField.img([options])
The img
method returns the URL for the static map image. It accepts an options object as its only parameter. Since we already have a location and zoom level from the Map field, the center
and zoom
options will be ignored.
{{ entry.mapField.img({
width: 800,
height: 600,
}) }}
mapField.imgSrcSet([options])
imgSrcSet
is similar to img
accept it returns a srcset
ready string, supporting @1x and @2x resolutions. As with img
it accepts an options object as its only parameter. Along with the center
and zoom
options being ignored (as with img
), the scale
option is also ignored.
maps
variable
Using the global You can turn any address into a static map using the globally available maps
variable.
<img
src="{{ craft.maps.img() }}"
srcset="{{ craft.maps.imgSrcSet() }}"
alt=""
/>
craft.maps.img([options])
The img
method returns the URL for the static map image. It accepts an options object as its only parameter.
{{ craft.maps.img({
center: 'Maidstone, UK',
width: 800,
height: 600,
}) }}
craft.maps.imgSrcSet([options])
imgSrcSet
is similar to img
accept it returns a srcset
ready string, supporting @1x and @2x resolutions. As with img
it accepts an options object as its only parameter. The scale
is ignored.