---
title: Map extensions
description: "Turn the tools that viewers see on a map on or off, and set their options. Find the setup guide for each Extensions page tool."
---

Use a map's `Extensions` page to turn viewer tools on or off and set their options. New maps enable Legend, Search, Measure, Refresh map, Share and bookmark, Basemap chooser, and Map Help. Legend also opens when the map loads.

## Start here

**[How the Extensions page works in MangoMap](/docs/map-extensions/concepts-map-extensions)**

The card grid, open-on-load model, and how the page fits alongside map settings and the custom navigation menu.

## Essentials

**[How to set up the Legend](/docs/map-extensions/set-up-the-legend)**

A labelled key for every layer; viewers can collapse it or toggle layers from inside.

**[How to set up Search](/docs/map-extensions/set-up-search)**

Address, attribute, and coordinate search from a single bar.

**[How to set up the Measure tool](/docs/map-extensions/set-up-the-measure-tool)**

Viewers draw a line for length or a polygon for area.

**[How to set up printing](/docs/map-extensions/set-up-printing)**

Viewers export the current view as a PDF with legend, scale bar, and north arrow baked in.

## Data discovery

Not sure which tool to add? Start from what your viewers need to find. Search is in Essentials above; the other three tools are below.

{/* diagram:search-tools-flow */}
<svg class="dark:hidden" style="width: 100%; height: auto" viewBox="0 0 640 572" xmlns="http://www.w3.org/2000/svg" role="img" aria-labelledby="search-tools-flow-inline-title search-tools-flow-inline-desc">
  <title id="search-tools-flow-inline-title">Which search tool to add</title>
  <desc id="search-tools-flow-inline-desc">Flowchart: add Proximity Analysis when viewers look for features near or far from other features; add Query when they search inside an area they draw or need a report; add Advanced Search when they filter one layer by its attributes; otherwise Search finds an address, a lat, lon coordinate, or a value in the indexed layers.</desc>
  <defs>
    <marker id="search-tools-flow-inline-arrow" markerWidth="8" markerHeight="6" refX="7" refY="3" orient="auto"><polygon points="0 0, 8 3, 0 6" fill="#525252"/></marker>
    <marker id="search-tools-flow-inline-arrow-accent" markerWidth="8" markerHeight="6" refX="7" refY="3" orient="auto"><polygon points="0 0, 8 3, 0 6" fill="#c4360c"/></marker>
  </defs>
  <rect width="100%" height="100%" fill="#f5f5f5"/>
  <path d="M192 60 L192 86" fill="none" stroke="#525252" stroke-width="1.2" marker-end="url(#search-tools-flow-inline-arrow)"/>
  <path d="M316 136 L358 136" fill="none" stroke="#525252" stroke-width="1.2" marker-end="url(#search-tools-flow-inline-arrow)"/>
  <path d="M316 272 L358 272" fill="none" stroke="#525252" stroke-width="1.2" marker-end="url(#search-tools-flow-inline-arrow)"/>
  <path d="M316 408 L358 408" fill="none" stroke="#525252" stroke-width="1.2" marker-end="url(#search-tools-flow-inline-arrow)"/>
  <path d="M192 184 L192 222" fill="none" stroke="#525252" stroke-width="1.2" marker-end="url(#search-tools-flow-inline-arrow)"/>
  <path d="M192 320 L192 358" fill="none" stroke="#525252" stroke-width="1.2" marker-end="url(#search-tools-flow-inline-arrow)"/>
  <path d="M192 456 L192 494" fill="none" stroke="#c4360c" stroke-width="1.4" marker-end="url(#search-tools-flow-inline-arrow-accent)"/>
  <rect x="318" y="112" width="34" height="16" rx="2" fill="#f5f5f5"/><text x="335" y="124" fill="#525252" font-size="10" font-weight="600" letter-spacing="0.1em" font-family="inherit" text-anchor="middle">YES</text>
  <rect x="318" y="248" width="34" height="16" rx="2" fill="#f5f5f5"/><text x="335" y="260" fill="#525252" font-size="10" font-weight="600" letter-spacing="0.1em" font-family="inherit" text-anchor="middle">YES</text>
  <rect x="318" y="384" width="34" height="16" rx="2" fill="#f5f5f5"/><text x="335" y="396" fill="#525252" font-size="10" font-weight="600" letter-spacing="0.1em" font-family="inherit" text-anchor="middle">YES</text>
  <rect x="200" y="195" width="26" height="16" rx="2" fill="#f5f5f5"/><text x="213" y="207" fill="#525252" font-size="10" font-weight="600" letter-spacing="0.1em" font-family="inherit" text-anchor="middle">NO</text>
  <rect x="200" y="331" width="26" height="16" rx="2" fill="#f5f5f5"/><text x="213" y="343" fill="#525252" font-size="10" font-weight="600" letter-spacing="0.1em" font-family="inherit" text-anchor="middle">NO</text>
  <rect x="200" y="467" width="26" height="16" rx="2" fill="#f5f5f5"/><text x="213" y="479" fill="#525252" font-size="10" font-weight="600" letter-spacing="0.1em" font-family="inherit" text-anchor="middle">NO</text>
  <rect x="66" y="16" width="252" height="44" rx="20" fill="rgba(23,23,23,0.04)" stroke="rgba(23,23,23,0.32)" stroke-width="1"/>
  <text x="192" y="43" fill="#171717" font-size="14" font-weight="600" font-family="inherit" text-anchor="middle">Viewers need to find features</text>
  <polygon points="192,88 316,136 192,184 68,136" fill="#ffffff" stroke="#171717" stroke-width="1"/><text x="192" y="131" fill="#171717" font-size="14" font-weight="600" font-family="inherit" text-anchor="middle">Near or far from</text><text x="192" y="149" fill="#171717" font-size="14" font-weight="600" font-family="inherit" text-anchor="middle">other features?</text>
  <polygon points="192,224 316,272 192,320 68,272" fill="#ffffff" stroke="#171717" stroke-width="1"/><text x="192" y="267" fill="#171717" font-size="14" font-weight="600" font-family="inherit" text-anchor="middle">Inside an area, or</text><text x="192" y="285" fill="#171717" font-size="14" font-weight="600" font-family="inherit" text-anchor="middle">with a report?</text>
  <polygon points="192,360 316,408 192,456 68,408" fill="#ffffff" stroke="#171717" stroke-width="1"/><text x="192" y="403" fill="#171717" font-size="14" font-weight="600" font-family="inherit" text-anchor="middle">By attributes</text><text x="192" y="421" fill="#171717" font-size="14" font-weight="600" font-family="inherit" text-anchor="middle">in one layer?</text>
  <rect x="360" y="100" width="264" height="72" rx="20" fill="rgba(23,23,23,0.04)" stroke="rgba(23,23,23,0.32)" stroke-width="1"/><text x="492" y="122" fill="#171717" font-size="14" font-weight="600" font-family="inherit" text-anchor="middle">Proximity Analysis</text><text x="492" y="142" fill="#525252" font-size="12" font-family="inherit" text-anchor="middle">closer or further than a distance</text><text x="492" y="158" fill="#525252" font-size="12" font-family="inherit" text-anchor="middle">from features in another layer</text>
  <rect x="360" y="236" width="264" height="72" rx="20" fill="rgba(23,23,23,0.04)" stroke="rgba(23,23,23,0.32)" stroke-width="1"/><text x="492" y="258" fill="#171717" font-size="14" font-weight="600" font-family="inherit" text-anchor="middle">Query</text><text x="492" y="278" fill="#525252" font-size="12" font-family="inherit" text-anchor="middle">draw an area or use all features,</text><text x="492" y="294" fill="#525252" font-size="12" font-family="inherit" text-anchor="middle">add filters, show a report</text>
  <rect x="360" y="372" width="264" height="72" rx="20" fill="rgba(23,23,23,0.04)" stroke="rgba(23,23,23,0.32)" stroke-width="1"/><text x="492" y="394" fill="#171717" font-size="14" font-weight="600" font-family="inherit" text-anchor="middle">Advanced Search</text><text x="492" y="414" fill="#525252" font-size="12" font-family="inherit" text-anchor="middle">attribute conditions on one layer,</text><text x="492" y="430" fill="#525252" font-size="12" font-family="inherit" text-anchor="middle">then export the matches</text>
  <rect x="62" y="496" width="260" height="60" rx="20" fill="rgba(196,54,12,0.08)" stroke="#c4360c" stroke-width="1.4"/>
  <text x="192" y="521" fill="#171717" font-size="14" font-weight="600" font-family="inherit" text-anchor="middle">Search</text>
  <text x="192" y="539" fill="#525252" font-size="12" font-family="inherit" text-anchor="middle">an address, a lat, lon, or indexed data</text>
</svg>
<svg class="hidden dark:block" style="width: 100%; height: auto" viewBox="0 0 640 572" xmlns="http://www.w3.org/2000/svg" role="img" aria-labelledby="search-tools-flow-inline-dark-title search-tools-flow-inline-dark-desc">
  <title id="search-tools-flow-inline-dark-title">Which search tool to add</title>
  <desc id="search-tools-flow-inline-dark-desc">Flowchart: add Proximity Analysis when viewers look for features near or far from other features; add Query when they search inside an area they draw or need a report; add Advanced Search when they filter one layer by its attributes; otherwise Search finds an address, a lat, lon coordinate, or a value in the indexed layers.</desc>
  <defs>
    <marker id="search-tools-flow-inline-dark-arrow" markerWidth="8" markerHeight="6" refX="7" refY="3" orient="auto"><polygon points="0 0, 8 3, 0 6" fill="#a3a3a3"/></marker>
    <marker id="search-tools-flow-inline-dark-arrow-accent" markerWidth="8" markerHeight="6" refX="7" refY="3" orient="auto"><polygon points="0 0, 8 3, 0 6" fill="#ff7a4d"/></marker>
  </defs>
  <rect width="100%" height="100%" fill="#141414"/>
  <path d="M192 60 L192 86" fill="none" stroke="#a3a3a3" stroke-width="1.2" marker-end="url(#search-tools-flow-inline-dark-arrow)"/>
  <path d="M316 136 L358 136" fill="none" stroke="#a3a3a3" stroke-width="1.2" marker-end="url(#search-tools-flow-inline-dark-arrow)"/>
  <path d="M316 272 L358 272" fill="none" stroke="#a3a3a3" stroke-width="1.2" marker-end="url(#search-tools-flow-inline-dark-arrow)"/>
  <path d="M316 408 L358 408" fill="none" stroke="#a3a3a3" stroke-width="1.2" marker-end="url(#search-tools-flow-inline-dark-arrow)"/>
  <path d="M192 184 L192 222" fill="none" stroke="#a3a3a3" stroke-width="1.2" marker-end="url(#search-tools-flow-inline-dark-arrow)"/>
  <path d="M192 320 L192 358" fill="none" stroke="#a3a3a3" stroke-width="1.2" marker-end="url(#search-tools-flow-inline-dark-arrow)"/>
  <path d="M192 456 L192 494" fill="none" stroke="#ff7a4d" stroke-width="1.4" marker-end="url(#search-tools-flow-inline-dark-arrow-accent)"/>
  <rect x="318" y="112" width="34" height="16" rx="2" fill="#141414"/><text x="335" y="124" fill="#a3a3a3" font-size="10" font-weight="600" letter-spacing="0.1em" font-family="inherit" text-anchor="middle">YES</text>
  <rect x="318" y="248" width="34" height="16" rx="2" fill="#141414"/><text x="335" y="260" fill="#a3a3a3" font-size="10" font-weight="600" letter-spacing="0.1em" font-family="inherit" text-anchor="middle">YES</text>
  <rect x="318" y="384" width="34" height="16" rx="2" fill="#141414"/><text x="335" y="396" fill="#a3a3a3" font-size="10" font-weight="600" letter-spacing="0.1em" font-family="inherit" text-anchor="middle">YES</text>
  <rect x="200" y="195" width="26" height="16" rx="2" fill="#141414"/><text x="213" y="207" fill="#a3a3a3" font-size="10" font-weight="600" letter-spacing="0.1em" font-family="inherit" text-anchor="middle">NO</text>
  <rect x="200" y="331" width="26" height="16" rx="2" fill="#141414"/><text x="213" y="343" fill="#a3a3a3" font-size="10" font-weight="600" letter-spacing="0.1em" font-family="inherit" text-anchor="middle">NO</text>
  <rect x="200" y="467" width="26" height="16" rx="2" fill="#141414"/><text x="213" y="479" fill="#a3a3a3" font-size="10" font-weight="600" letter-spacing="0.1em" font-family="inherit" text-anchor="middle">NO</text>
  <rect x="66" y="16" width="252" height="44" rx="20" fill="rgba(242,242,242,0.05)" stroke="rgba(242,242,242,0.34)" stroke-width="1"/>
  <text x="192" y="43" fill="#f2f2f2" font-size="14" font-weight="600" font-family="inherit" text-anchor="middle">Viewers need to find features</text>
  <polygon points="192,88 316,136 192,184 68,136" fill="#1c1c1c" stroke="#f2f2f2" stroke-width="1"/><text x="192" y="131" fill="#f2f2f2" font-size="14" font-weight="600" font-family="inherit" text-anchor="middle">Near or far from</text><text x="192" y="149" fill="#f2f2f2" font-size="14" font-weight="600" font-family="inherit" text-anchor="middle">other features?</text>
  <polygon points="192,224 316,272 192,320 68,272" fill="#1c1c1c" stroke="#f2f2f2" stroke-width="1"/><text x="192" y="267" fill="#f2f2f2" font-size="14" font-weight="600" font-family="inherit" text-anchor="middle">Inside an area, or</text><text x="192" y="285" fill="#f2f2f2" font-size="14" font-weight="600" font-family="inherit" text-anchor="middle">with a report?</text>
  <polygon points="192,360 316,408 192,456 68,408" fill="#1c1c1c" stroke="#f2f2f2" stroke-width="1"/><text x="192" y="403" fill="#f2f2f2" font-size="14" font-weight="600" font-family="inherit" text-anchor="middle">By attributes</text><text x="192" y="421" fill="#f2f2f2" font-size="14" font-weight="600" font-family="inherit" text-anchor="middle">in one layer?</text>
  <rect x="360" y="100" width="264" height="72" rx="20" fill="rgba(242,242,242,0.05)" stroke="rgba(242,242,242,0.34)" stroke-width="1"/><text x="492" y="122" fill="#f2f2f2" font-size="14" font-weight="600" font-family="inherit" text-anchor="middle">Proximity Analysis</text><text x="492" y="142" fill="#a3a3a3" font-size="12" font-family="inherit" text-anchor="middle">closer or further than a distance</text><text x="492" y="158" fill="#a3a3a3" font-size="12" font-family="inherit" text-anchor="middle">from features in another layer</text>
  <rect x="360" y="236" width="264" height="72" rx="20" fill="rgba(242,242,242,0.05)" stroke="rgba(242,242,242,0.34)" stroke-width="1"/><text x="492" y="258" fill="#f2f2f2" font-size="14" font-weight="600" font-family="inherit" text-anchor="middle">Query</text><text x="492" y="278" fill="#a3a3a3" font-size="12" font-family="inherit" text-anchor="middle">draw an area or use all features,</text><text x="492" y="294" fill="#a3a3a3" font-size="12" font-family="inherit" text-anchor="middle">add filters, show a report</text>
  <rect x="360" y="372" width="264" height="72" rx="20" fill="rgba(242,242,242,0.05)" stroke="rgba(242,242,242,0.34)" stroke-width="1"/><text x="492" y="394" fill="#f2f2f2" font-size="14" font-weight="600" font-family="inherit" text-anchor="middle">Advanced Search</text><text x="492" y="414" fill="#a3a3a3" font-size="12" font-family="inherit" text-anchor="middle">attribute conditions on one layer,</text><text x="492" y="430" fill="#a3a3a3" font-size="12" font-family="inherit" text-anchor="middle">then export the matches</text>
  <rect x="62" y="496" width="260" height="60" rx="20" fill="rgba(255,122,77,0.10)" stroke="#ff7a4d" stroke-width="1.4"/>
  <text x="192" y="521" fill="#f2f2f2" font-size="14" font-weight="600" font-family="inherit" text-anchor="middle">Search</text>
  <text x="192" y="539" fill="#a3a3a3" font-size="12" font-family="inherit" text-anchor="middle">an address, a lat, lon, or indexed data</text>
</svg>
{/* /diagram:search-tools-flow */}

**[How to set up Advanced Search](/docs/map-extensions/set-up-advanced-search)**

Viewers filter one layer's features by attribute conditions and export results.

**[How to set up the Query tool](/docs/map-extensions/set-up-the-query-tool)**

Viewers combine attribute filters with spatial selection (point / rectangle / circle / polygon / all) and optionally see a configurable report.

**[How to set up Proximity Analysis](/docs/map-extensions/set-up-proximity-analysis)**

Viewers pick a reference and find features within a distance, with optional report.

**[How to set up the Information sidebar](/docs/map-extensions/set-up-the-information-sidebar)**

A collapsible panel with rich-text context (methodology, contact details, embedded media).

## Navigation and decoration

**[How to set up the Scale bar](/docs/map-extensions/set-up-the-scale-bar)**

Always-on distance scale (Metric / Imperial / Nautical).

**[How to set the Copyright text](/docs/map-extensions/set-the-copyright-text)**

Single-line attribution shown on the map.

**[How to enable Mouse position](/docs/map-extensions/enable-mouse-position)**

Coordinate readout under the cursor.

**[How to enable Geolocation](/docs/map-extensions/enable-geolocation)**

Viewers see (and optionally follow) their device's current location.

**[How to enable Street view](/docs/map-extensions/enable-street-view)**

Viewers open Google Street View at the map centre.

**[How to enable the Basemap chooser](/docs/map-extensions/enable-the-basemap-chooser)**

Viewers switch the basemap for their session.

**[How to enable Refresh map](/docs/map-extensions/enable-refresh-map)**

Viewers reset the map to its initial view.

**[How to enable Map Help](/docs/map-extensions/enable-map-help)**

Viewers open a built-in pan/zoom guidance dialog.

## Interaction

**[How to enable Sketch](/docs/map-extensions/enable-sketch)**

Viewers draw freehand annotations and overlays on the map.

**[How to enable Share and bookmark](/docs/map-extensions/enable-share-and-bookmark)**

Viewers share the current map view and save bookmarks to return to.

**[How to set up Mouse highlight](/docs/map-extensions/set-up-mouse-highlight)**

Features in a chosen layer highlight as viewers hover.

## Reference

**[Extensions page reference](/docs/map-extensions/extensions-page-reference)**

The card-grid UI, every tool and its one-line summary, and which tools support `Open on load`.

**[Report templating syntax](/docs/map-extensions/report-templating-reference)**

The shared syntax for Query and Proximity Analysis reports: aggregate variables, equations, and the operators inside them.

{/*
What this set does NOT cover

- The Marketplace tab, install / uninstall flow, and per-extension versioning — exist as Storybook mock-ups (`extensions-template`) but are not shipping. The shipping Extensions page is a card grid of built-in tools — no installation, no marketplace.
- The custom navigation menu (the menu of links / modals / portal pointers shown in the map chrome) — that’s a separate feature, configured on the map's `Configuration` page. See [How to build a custom navigation menu](/docs/map-settings/build-custom-navigation-menu).
- The layer panel (managing which layers are on the map, ordering, default visibility, the default basemap) — see [Managing layers](/docs/managing-layers).
- Per-layer styling, formatting, popups — see [Styling layers](/docs/styling-layers), [Attribute formatting overview](/docs/formatting-attributes), [Configuring popups](/docs/configuring-popups).
- Slide-to-Compare — was in earlier designs but is commented out in the running app; not shipping.

*/}
