> For the complete documentation index, see [llms.txt](https://wplake.gitbook.io/advanced-views/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wplake.gitbook.io/advanced-views/field-types/media/map-field.md).

# Displaying Map field

Advanced Views natively supports the following map types:

1. [ACF](/advanced-views/fields/meta-plugins/advanced-custom-fields.md): any Map field (including [Multiple Markers](https://wordpress.org/plugins/acf-google-map-field-multiple-markers/) and [OpenStreetMap](https://wordpress.org/plugins/acf-openstreetmap-field/) addons)
2. [MetaBox](/advanced-views/fields/meta-plugins/meta-box-fields.md): any Map, OpenStreetMap field

## 1. How to display a Map field

1. [Create a new *Layout*](/advanced-views/getting-started/first-layout.md)
2. Add any Map field
3. Save the *Layout*, copy its [embedding shortcode](/advanced-views/layouts/embedding-shortcode.md)
4. Embed *Layout*: paste the shortcode inside the target place

Advanced Views automatically creates necessary HTML markup for the map and markers, enqueues the map provider's JavaScript, and initializes the map.&#x20;

{% hint style="info" %}
Important! For Google Maps, ensure you've defined the API key according to the field provider Docs. For ACF, it's:
{% endhint %}

{% code overflow="wrap" %}

```php
// Google Map API key
add_filter('acf/fields/google_map/api', function ($apiSettings) {
    return array_merge($apiSettings, [
        'key' => 'YOUR_KEY_HERE',
    ]);
});
```

{% endcode %}

**Copy** the code snippet below and paste it into your theme’s functions.php file, replacing the ‘YOUR\_KEY\_HERE’ with your API key. [Get Google Maps API key here](https://developers.google.com/maps/documentation/embed/get-api-key).

## 2. Markers customization (Pro)

**Switch** to the **Field Options** tab for more control of your map and its display.

**Map Marker Icon** - Customize the Map Marker by using your own icon or uploading an image from [Flaticon](https://www.flaticon.com/free-icons/google-maps) (.png, .jpg allowed). Dimensions of 32x32px is recommended.

{% hint style="danger" %}
Don't use an SVG icon for the marker icon, as there is no way to restrict the dimensions using CSS. Rather upload the correct size .png or .jpg image.
{% endhint %}

**Map Marker icon title** - Shown when mouse hovers on Map Marker.

**Hide Map** - The Google Map is shown by default. Turn on the switcher to hide the map.

**Show address from the map -** The address is hidden by default. Turn this on to show the address from the map.

**Map address format** - By Default the address format is street number, street name, city, state, post code and country. You can change the order or hide some parts by using the provided variables in your Custom Template.&#x20;

{% code overflow="wrap" %}

```php
$street_name$, $city$, $state$, $post_code$, $country$
```

{% endcode %}

## 3. Displaying CPT items on a single map

This page focuses on embedding single maps on individual pages or Custom Post Type items. However, there are scenarios where displaying multiple CPT items on a single map is essential.&#x20;

For example, if you’re managing an "events" CPT, you might need to showcase all events on a single map to provide a comprehensive view of all locations.

The process leverages ACF to store item coordinates as post meta, allowing you to query these CPT items and render them as markers on a unified map.

For a step-by-step guide on this, read the "[CPT items map](https://wplake.org/blog/embed-maps-in-wordpress/#5-advanced-how-to-display-all-wordpress-cpt-items-on-a-single-map_juvs)" article.

## 4. FAQs

<details>

<summary>How do I change the map height?</summary>

Change the height of the Google Map, visit the field group in ACF and define the ‘Height’ in px. Alternatively, define the height using CSS by copying the snippet below into your *Layout's* CSS Code field in the CSS & JS tab.

{% code overflow="wrap" %}

```css
/* Define the height of the Google Map */
#views__map {
height:600px;
}
```

{% endcode %}

</details>
