---
title: Store Locator Pro — Searchable Store Locator Module for HubSpot
description: A searchable store locator for HubSpot CMS. Draw it on Google Maps with your own key, or on a street map with a colour basemap that draws without one. Near-me distance sorting, category filters, marker grouping and directions links.
---

[![StudioNope Themes](https://www.nopethemes.com/hubfs/studio-nope-themes-logo.png)](https://www.nopethemes.com?hsLang=en) [Get the module →](https://ecosystem.hubspot.com/marketplace/website)

HubSpot CMS Module

# Store Locator Pro

A searchable network of locations for HubSpot, on a real map. Google Maps with your own key, or a street map with a full-colour basemap that draws without one. The locations, the search, the distance sorting, the marker grouping and the list-to-map sync are the same on both.

[Get the module](https://ecosystem.hubspot.com/marketplace/website) [See it live ↓](https://www.nopethemes.com/store-locator-pro#demo1)

Demo 1

## Google Maps, with a row of details on every card

A bookbinder with counters on four continents, drawn on the map data from Google with a key in the field. Ask it to sort by distance from you and it answers from wherever you are reading this, and the numbers on the cards and on the pins renumber together to follow the order shown. Each location carries its own list of short lines — parking, step-free access, click and collect — and each line can take an icon the editor picks from the HubSpot icon library. Some rows have an icon, some do not, and the text still starts on the same line. One card has no rows at all and closes up around it. Nothing on the Style tab has been changed here apart from the swatches the Google basemap is built from.

Marlow and Reid

## Bookbinders and stationers

Counters city by city, from Lisbon to Tokyo. Search a town, or use your own location to sort them by distance.

Every kind of counter

- Every kind of counter
- Bindery
- Shop
- Collection counter

Sort by distance from me

Any distance

- Any distance
- 100 km
- 500 km
- 2000 km
- 8000 km

Clear

- 1
  
  Jimbocho Bindery
  
  
  
  Bindery
  
  2-8-4 Jimbocho  
  Chiyoda City, Tokyo 101-0051
  
  
  
    - Repairs and rebinding, quoted in store
    - Three minutes from Jimbocho station
    - Step-free entrance from the arcade
    - Late until 20:00 on Fridays
  
  Open
  
  Mon to Sat, 10:00 - 19:00
  
  
  
  [Phone +81 3 6811 0142](tel:+81368110142) [Directions](https://www.google.com/maps/dir/?api=1&destination=35.6957,139.7576) 
  
  Tokyo Chiyoda 101-0051 Japan Bindery
- 2
  
  Charing Cross Road
  
  
  
  Shop
  
  84 Charing Cross Road  
  London WC2H 0AA
  
  
  
  First floor, above the arcade
  
    - Click and collect from 10:00
    - Lift from the street entrance
    - Sample books kept behind the counter
  
  Open
  
  Mon to Sat, 9:30 - 18:30
  
  
  
  [Phone +44 20 7946 0158](tel:+442079460158) [Directions](https://www.google.com/maps/dir/?api=1&destination=51.5145,-0.129) 
  
  London England WC2H 0AA United Kingdom Shop
- 3
  
  Fitzroy
  
  
  
  Bindery
  
  200 Gertrude Street  
  Fitzroy VIC 3065
  
  
  
    - Box making and slipcases
    - Two hour parking on Gertrude Street
    - Dogs welcome
  
  Open
  
  Mon to Sat, 9:00 - 18:00
  
  
  
  [Phone +61 3 9016 0142](tel:+61390160142) [Directions](https://www.google.com/maps/dir/?api=1&destination=-37.7985,144.98) 
  
  Melbourne Victoria 3065 Australia Bindery
- 4
  
  Lipscani
  
  
  
  Shop
  
  Strada Lipscani 25  
  Bucharest 030033
  
  
  
    - Coffee cart on the corner from 7:00
    - Card only
    - Click and collect
  
  Open
  
  Tue to Sat, 10:00 - 18:00
  
  
  
  [Phone +40 21 300 0114](tel:+40213000114) [Directions](https://www.google.com/maps/dir/?api=1&destination=44.4318,26.1017) 
  
  Bucharest Bucuresti 030033 Romania Shop
- 5
  
  Crosby Street
  
  
  
  Shop
  
  126 Crosby Street  
  New York NY 10012
  
  
  
    - Gift wrapping at no charge
    - Step-free throughout
    - Wifi in the reading room
  
  Open
  
  Mon to Sat, 10:00 - 19:00
  
  
  
  [Phone +1 212 555 0130](tel:+12125550130) [Directions](https://www.google.com/maps/dir/?api=1&destination=40.7241,-73.9967) 
  
  New York New York 10012 United States Shop
- 6
  
  Torstrasse
  
  
  
  Collection counter
  
  Torstrasse 140  
  10119 Berlin
  
  
  
    - Collection only, no counter service
    - Ring the bell on the left of the door
  
  Open
  
  Mon to Fri, 10:00 - 18:00
  
  
  
  [Phone +49 30 1208 0134](tel:+493012080134) [Directions](https://www.google.com/maps/dir/?api=1&destination=52.5296,13.4025) 
  
  Berlin Berlin 10119 Germany Collection counter
- 7
  
  Kloof Street
  
  
  
  Shop
  
  72 Kloof Street  
  Gardens, Cape Town 8001
  
  
  
    - Marbled paper cut to size while you wait
    - Bike racks outside the door
  
  Open
  
  Tue to Sat, 9:00 - 17:00
  
  
  
  [Phone +27 21 300 0147](tel:+27213000147) [Directions](https://www.google.com/maps/dir/?api=1&destination=-33.9295,18.409) 
  
  Cape Town Western Cape 8001 South Africa Shop
- 8
  
  Rue de Seine
  
  
  
  Bindery
  
  12 Rue de Seine  
  75006 Paris
  
  
  
    - Hand sewing and leather work
    - Ramp at the courtyard door
  
  Open
  
  Tue to Sat, 11:00 - 19:00
  
  
  
  [Phone +33 1 84 88 0118](tel:+33184880118) [Directions](https://www.google.com/maps/dir/?api=1&destination=48.8548,2.3363) 
  
  Paris Ile-de-France 75006 France Bindery
- 9
  
  Neil Road
  
  
  
  Collection counter
  
  78 Neil Road  
  Singapore 088839
  
  
  
    - Four minutes from Outram Park
    - Collection from the desk at the rear
  
  Open
  
  Mon to Sat, 11:00 - 20:00
  
  
  
  [Phone +65 6808 0121](tel:+6568080121) [Directions](https://www.google.com/maps/dir/?api=1&destination=1.2782,103.8399) 
  
  Singapore Singapore 088839 Singapore Collection counter
- 10
  
  Rua Garrett
  
  
  
  Shop
  
  Rua Garrett 73  
  1200-203 Lisbon
  
  
  
  Closed on market Saturdays until 14:00
  
  Open
  
  Fri to Sun, 10:00 - 18:00
  
  
  
  [Phone +351 21 300 0165](tel:+351213000165) [Directions](https://www.google.com/maps/dir/?api=1&destination=38.7108,-9.142) 
  
  Lisbon Lisboa 1200-203 Portugal Shop
- 11
  
  Queen Street West
  
  
  
  Collection counter
  
  790 Queen Street West  
  Toronto ON M6J 1G3
  
  
  
    - Click and collect until 19:00
    - Free parking after 17:30
  
  Open
  
  Mon to Sat, 10:00 - 18:00
  
  
  
  [Phone +1 416 555 0151](tel:+14165550151) [Directions](https://www.google.com/maps/dir/?api=1&destination=43.6465,-79.4098) 
  
  Toronto Ontario M6J 1G3 Canada Collection counter
- 12
  
  Amsterdam
  
  
  
  Shop
  
  Calle Amsterdam 62  
  Hipodromo, 06100 Mexico City
  
  
  
    - Reading room open to customers
    - Workshops on the last Sunday of the month
  
  Open
  
  Every day, 9:00 - 18:00
  
  
  
  [Phone +52 55 4165 0177](tel:+525541650177) [Directions](https://www.google.com/maps/dir/?api=1&destination=19.411,-99.171) 
  
  Mexico City Cuauhtemoc 06100 Mexico Shop

Nothing matched

Try a shorter search term, a wider radius, or clear the filters.

Demo 2

## Google Maps, with a photograph on every card

A furniture and interiors company across Canada. The photograph is a field on each location, and where it sits on the card, its shape and its corners are fields too — here it runs the full width above the text, three cards across, with the map held over them while the list moves. The last card has no photograph and the layout closes up around it rather than leaving a hole. The indigo, the eight pixel corners and the soft card shadow are field values on this instance.

SHOWROOMS

## Find a showroom near you

Twelve showrooms, design studios and warehouses across Canada.

Every showroom

- Every showroom
- Showroom
- Design studio
- Warehouse

Nearest to me

Any distance

- Any distance
- 10 km
- 25 km
- 50 km
- 100 km

Clear

- ![Living room setting in the West Fourth showroom](https://www.nopethemes.com/hubfs/raw_assets/public/studionope-magazine/images/templates/helper-img-1.jpg)
  
  West Fourth
  
  
  
  Showroom
  
  1830 West 4th Avenue  
  Vancouver BC V6J 1M4
  
  
  
  Design consultations by appointment
  
  Open
  
  Mon to Sat, 10:00 - 19:00
  
  
  
  [Phone +1 604 555 0142](tel:+16045550142) [Directions](https://www.google.com/maps/dir/?api=1&destination=49.268,-123.149) 
  
  Vancouver British Columbia V6J 1M4 Canada Showroom
- ![Bedroom setting in the Gastown showroom](https://www.nopethemes.com/hubfs/raw_assets/public/studionope-magazine/images/templates/helper-img-2.jpg)
  
  Gastown
  
  
  
  Showroom
  
  320 Water Street  
  Vancouver BC V6B 1B6
  
  
  
  Open
  
  Every day, 10:00 - 20:00
  
  
  
  [Phone +1 604 555 0158](tel:+16045550158) [Directions](https://www.google.com/maps/dir/?api=1&destination=49.2845,-123.107) 
  
  Vancouver British Columbia V6B 1B6 Canada Showroom
- ![Bathroom setting in the Johnson Street studio](https://www.nopethemes.com/hubfs/raw_assets/public/studionope-magazine/images/templates/helper-img-3.jpg)
  
  Johnson Street
  
  
  
  Design studio
  
  560 Johnson Street  
  Victoria BC V8W 3C6
  
  
  
  Open
  
  Mon to Sat, 10:00 - 18:00
  
  
  
  [Phone +1 250 555 0113](tel:+12505550113) [Directions](https://www.google.com/maps/dir/?api=1&destination=48.4265,-123.366) 
  
  Victoria British Columbia V8W 3C6 Canada Design studio
- ![Dining setting in the Kensington showroom](https://www.nopethemes.com/hubfs/raw_assets/public/studionope-magazine/images/templates/helper-img-4.jpg)
  
  Kensington
  
  
  
  Showroom
  
  1219 Kensington Road NW  
  Calgary AB T2N 3P4
  
  
  
  Open
  
  Mon to Sat, 9:30 - 18:00
  
  
  
  [Phone +1 403 555 0121](tel:+14035550121) [Directions](https://www.google.com/maps/dir/?api=1&destination=51.053,-114.093) 
  
  Calgary Alberta T2N 3P4 Canada Showroom
- ![Bedroom setting in the Banff Avenue studio](https://www.nopethemes.com/hubfs/raw_assets/public/studionope-magazine/images/templates/helper-img-5.jpg)
  
  Banff Avenue
  
  
  
  Design studio
  
  215 Banff Avenue  
  Banff AB T1L 1B7
  
  
  
  Fabric library on the first floor
  
  Open
  
  Every day, 8:00 - 21:00
  
  
  
  [Phone +1 403 555 0130](tel:+14035550130) [Directions](https://www.google.com/maps/dir/?api=1&destination=51.179,-115.571) 
  
  Banff Alberta T1L 1B7 Canada Design studio
- ![Bathroom setting in the Whyte Avenue showroom](https://www.nopethemes.com/hubfs/raw_assets/public/studionope-magazine/images/templates/helper-img-6.jpg)
  
  Whyte Avenue
  
  
  
  Showroom
  
  10442 Whyte Avenue NW  
  Edmonton AB T6E 2A3
  
  
  
  Open
  
  Mon to Sat, 10:00 - 19:00
  
  
  
  [Phone +1 780 555 0134](tel:+17805550134) [Directions](https://www.google.com/maps/dir/?api=1&destination=53.5185,-113.493) 
  
  Edmonton Alberta T6E 2A3 Canada Showroom
- ![Kitchen setting at the Albert Street warehouse](https://www.nopethemes.com/hubfs/raw_assets/public/studionope-magazine/images/templates/helper-img-7.jpg)
  
  Albert Street
  
  
  
  Warehouse
  
  91 Albert Street  
  Winnipeg MB R3B 1G5
  
  
  
  Open
  
  Mon to Fri, 10:00 - 18:00
  
  
  
  [Phone +1 204 555 0118](tel:+12045550118) [Directions](https://www.google.com/maps/dir/?api=1&destination=49.8955,-97.1385) 
  
  Winnipeg Manitoba R3B 1G5 Canada Warehouse
- ![Living room setting in the Queen West showroom](https://www.nopethemes.com/hubfs/raw_assets/public/studionope-magazine/images/templates/helper-img-8.jpg)
  
  Queen West
  
  
  
  Showroom
  
  774 Queen Street West  
  Toronto ON M6J 1G1
  
  
  
  Open
  
  Every day, 10:00 - 20:00
  
  
  
  [Phone +1 416 555 0147](tel:+14165550147) [Directions](https://www.google.com/maps/dir/?api=1&destination=43.6465,-79.4085) 
  
  Toronto Ontario M6J 1G1 Canada Showroom
- ![Seating setting in the ByWard Market studio](https://www.nopethemes.com/hubfs/raw_assets/public/studionope-magazine/images/templates/helper-img-9.jpg)
  
  ByWard Market
  
  
  
  Design studio
  
  55 ByWard Market Square  
  Ottawa ON K1N 9C3
  
  
  
  Open
  
  Mon to Sat, 10:00 - 18:00
  
  
  
  [Phone +1 613 555 0151](tel:+16135550151) [Directions](https://www.google.com/maps/dir/?api=1&destination=45.428,-75.692) 
  
  Ottawa Ontario K1N 9C3 Canada Design studio
- ![Living room setting in the Saint-Denis showroom](https://www.nopethemes.com/hubfs/raw_assets/public/studionope-magazine/images/templates/helper-img-10.jpg)
  
  Saint-Denis
  
  
  
  Showroom
  
  4200 Rue Saint-Denis  
  Montreal QC H2J 2K9
  
  
  
  Open
  
  Mon to Sat, 10:00 - 19:00
  
  
  
  [Phone +1 514 555 0165](tel:+15145550165) [Directions](https://www.google.com/maps/dir/?api=1&destination=45.524,-73.582) 
  
  Montreal Quebec H2J 2K9 Canada Showroom
- ![Storage setting at the Barrington Street warehouse](https://www.nopethemes.com/hubfs/raw_assets/public/studionope-magazine/images/templates/helper-img-11.jpg)
  
  Barrington Street
  
  
  
  Warehouse
  
  1541 Barrington Street  
  Halifax NS B3J 1Z5
  
  
  
  Open
  
  Mon to Sat, 10:00 - 18:00
  
  
  
  [Phone +1 902 555 0177](tel:+19025550177) [Directions](https://www.google.com/maps/dir/?api=1&destination=44.646,-63.575) 
  
  Halifax Nova Scotia B3J 1Z5 Canada Warehouse
- Water Street
  
  
  
  Warehouse
  
  200 Water Street  
  St John's NL A1C 1A9
  
  
  
  Open
  
  Tue to Sat, 10:00 - 17:30
  
  
  
  [Phone +1 709 555 0188](tel:+17095550188) [Directions](https://www.google.com/maps/dir/?api=1&destination=47.565,-52.708) 
  
  St John's Newfoundland and Labrador A1C 1A9 Canada Warehouse

Nothing matched

Try a shorter search term, a wider radius, or clear the filters.

Demo 3

## No key at all, on the bundled street map

A bakery across Ireland. There is no Google key on this instance and none is needed: Leaflet ships inside the module and the basemap is a field with presets in it. Plain cards here — no icon rows, no photographs. The light grey ground, the large light heading, the borderless cards on a soft shadow and the blue are field values, which is the point: none of the three instances on this page has a line of CSS behind it.

Ardmore Bakehouse

## Where to find us

Search a town, or let the browser sort the list by how far away each one is.

Every kind

- Every kind
- Bakehouse
- Cafe
- Counter
- Market stall

Nearest to me

Any distance

- Any distance
- 10 km
- 25 km
- 50 km
- 100 km

Clear

- 1
  
  South William Street
  
  
  
  Bakehouse
  
  21 South William Street  
  Dublin 2
  
  
  
  Open
  
  Mon to Sat, 7:30 - 18:00
  
  
  
  [Phone +353 1 555 0142](tel:+35315550142) [Directions](https://maps.apple.com/?daddr=53.342,-6.2625) 
  
  Dublin Leinster D02 XY45 Ireland Bakehouse
- 2
  
  Wexford Street
  
  
  
  Bakehouse
  
  6 Wexford Street  
  Dublin 2
  
  
  
  Open
  
  Mon to Sat, 7:30 - 18:00
  
  
  
  [Phone +353 1 555 0158](tel:+35315550158) [Directions](https://maps.apple.com/?daddr=53.3373,-6.265) 
  
  Dublin Leinster D02 HW65 Ireland Bakehouse
- 3
  
  Stoneybatter
  
  
  
  Cafe
  
  44 Manor Street  
  Dublin 7
  
  
  
  Open
  
  Tue to Sun, 8:00 - 16:00
  
  
  
  [Phone +353 1 555 0113](tel:+35315550113) [Directions](https://maps.apple.com/?daddr=53.352,-6.283) 
  
  Dublin Leinster D07 R284 Ireland Cafe
- 4
  
  Dun Laoghaire
  
  
  
  Cafe
  
  12 Upper George's Street  
  Dun Laoghaire, Co. Dublin
  
  
  
  Open
  
  Every day, 8:00 - 17:00
  
  
  
  [Phone +353 1 555 0121](tel:+35315550121) [Directions](https://maps.apple.com/?daddr=53.294,-6.136) 
  
  Dun Laoghaire Leinster A96 X264 Ireland Cafe
- 5
  
  Princes Street
  
  
  
  Bakehouse
  
  15 Princes Street  
  Cork
  
  
  
  Open
  
  Mon to Sat, 8:00 - 17:30
  
  
  
  [Phone +353 21 555 0130](tel:+353215550130) [Directions](https://maps.apple.com/?daddr=51.8975,-8.472) 
  
  Cork Munster T12 XY74 Ireland Bakehouse
- 6
  
  Quay Street
  
  
  
  Cafe
  
  8 Quay Street  
  Galway
  
  
  
  Open
  
  Every day, 8:00 - 18:00
  
  
  
  [Phone +353 91 555 0134](tel:+353915550134) [Directions](https://maps.apple.com/?daddr=53.2705,-9.0545) 
  
  Galway Connacht H91 K3P8 Ireland Cafe
- 7
  
  Catherine Street
  
  
  
  Bakehouse
  
  30 Catherine Street  
  Limerick
  
  
  
  Open
  
  Mon to Sat, 8:00 - 17:00
  
  
  
  [Phone +353 61 555 0118](tel:+353615550118) [Directions](https://maps.apple.com/?daddr=52.662,-8.625) 
  
  Limerick Munster V94 X2P9 Ireland Bakehouse
- 8
  
  Kilkenny High Street
  
  
  
  Counter
  
  5 High Street  
  Kilkenny
  
  
  
  Open
  
  Tue to Sat, 8:30 - 16:30
  
  
  
  [Phone +353 56 555 0147](tel:+353565550147) [Directions](https://maps.apple.com/?daddr=52.654,-7.253) 
  
  Kilkenny Leinster R95 W1E4 Ireland Counter
- 9
  
  John Roberts Square
  
  
  
  Counter
  
  22 John Roberts Square  
  Waterford
  
  
  
  Open
  
  Mon to Sat, 8:00 - 17:00
  
  
  
  [Phone +353 51 555 0151](tel:+353515550151) [Directions](https://maps.apple.com/?daddr=52.2585,-7.1105) 
  
  Waterford Munster X91 PY63 Ireland Counter
- 10
  
  O'Connell Street
  
  
  
  Counter
  
  9 O'Connell Street  
  Sligo
  
  
  
  Open
  
  Tue to Sat, 8:30 - 16:00
  
  
  
  [Phone +353 71 555 0165](tel:+353715550165) [Directions](https://maps.apple.com/?daddr=54.2705,-8.476) 
  
  Sligo Connacht F91 P2V8 Ireland Counter
- 11
  
  Killarney High Street
  
  
  
  Cafe
  
  18 High Street  
  Killarney, Co. Kerry
  
  
  
  Open
  
  Every day, 8:00 - 18:00
  
  
  
  [Phone +353 64 555 0177](tel:+353645550177) [Directions](https://maps.apple.com/?daddr=52.0595,-9.5065) 
  
  Killarney Munster V93 KH27 Ireland Cafe
- 12
  
  Westport Bridge Street
  
  
  
  Market stall
  
  4 Bridge Street  
  Westport, Co. Mayo
  
  
  
  Open
  
  Wed to Sun, 8:30 - 16:30
  
  
  
  [Phone +353 98 555 0188](tel:+353985550188) [Directions](https://maps.apple.com/?daddr=53.801,-9.52) 
  
  Westport Connacht F28 AK27 Ireland Market stall

Nothing matched

Try a shorter search term, a wider radius, or clear the filters.

Demo 4

## The map on its own, with the search above it

A charging network across the Netherlands and Belgium on the map-only layout. There are no cards here: the search box, the category filter, the near-me button and the radius picker sit above a map that fills the section, and every answer is read off the pins and their bubbles. Search a town and the pins thin out. Ask for the nearest and the picker appears with the distances applied. Click a pin and the map travels to it over the time set on the field and opens the address. This is also the instance with the place-name lookup switched on, so pressing Enter in the search box turns a town into a starting point and the radius picker appears with it. This one draws on the bundled street map with the full-colour basemap, so the layout is the only thing that changes between it and the instances above.

Voltway

## Where you can charge

Search a town, or ask for the points nearest to you.

Every kind

- Every kind
- Rapid
- Standard
- Charging hub

Nearest to me

Any distance

- Any distance
- 5 km
- 10 km
- 25 km

Reset

Press Enter to look up a town or postcode.

- 1
  
  Westergas
  
  
  
  Charging hub
  
  Pazzanistraat 12  
  1014 DB Amsterdam
  
  
  
  Sixteen bays under cover, open all night.
  
  [Directions](https://www.google.com/maps/dir/?api=1&destination=52.3862,4.8721) 
  
  Amsterdam Noord-Holland 1014 DB Netherlands Charging hub
- 2
  
  Oosterdok
  
  
  
  Rapid
  
  Oosterdokskade 143  
  1011 DL Amsterdam
  
  
  
  [Directions](https://www.google.com/maps/dir/?api=1&destination=52.3762,4.9086) 
  
  Amsterdam Noord-Holland 1011 DL Netherlands Rapid
- 3
  
  Blaak
  
  
  
  Rapid
  
  Blaak 31  
  3011 GA Rotterdam
  
  
  
  [Directions](https://www.google.com/maps/dir/?api=1&destination=51.9203,4.4886) 
  
  Rotterdam Zuid-Holland 3011 GA Netherlands Rapid
- 4
  
  Katendrecht
  
  
  
  Standard
  
  Brede Hilledijk 90  
  3072 NA Rotterdam
  
  
  
  [Directions](https://www.google.com/maps/dir/?api=1&destination=51.8992,4.4874) 
  
  Rotterdam Zuid-Holland 3072 NA Netherlands Standard
- 5
  
  Binnenhof
  
  
  
  Standard
  
  Lange Poten 4  
  2511 CL The Hague
  
  
  
  [Directions](https://www.google.com/maps/dir/?api=1&destination=52.0793,4.3145) 
  
  The Hague Zuid-Holland 2511 CL Netherlands Standard
- 6
  
  Jaarbeurs
  
  
  
  Charging hub
  
  Jaarbeursplein 6  
  3521 AL Utrecht
  
  
  
  Beside the station, twenty-four bays.
  
  [Directions](https://www.google.com/maps/dir/?api=1&destination=52.0894,5.1075) 
  
  Utrecht Utrecht 3521 AL Netherlands Charging hub
- 7
  
  Strijp-S
  
  
  
  Rapid
  
  Torenallee 60  
  5617 BD Eindhoven
  
  
  
  [Directions](https://www.google.com/maps/dir/?api=1&destination=51.4487,5.4593) 
  
  Eindhoven Noord-Brabant 5617 BD Netherlands Rapid
- 8
  
  Grote Markt
  
  
  
  Standard
  
  Grote Markt 29  
  9711 LV Groningen
  
  
  
  [Directions](https://www.google.com/maps/dir/?api=1&destination=53.2194,6.5665) 
  
  Groningen Groningen 9711 LV Netherlands Standard
- 9
  
  Het Zuid
  
  
  
  Rapid
  
  Marnixplaats 8  
  2000 Antwerp
  
  
  
  [Directions](https://www.google.com/maps/dir/?api=1&destination=51.2085,4.3925) 
  
  Antwerp Flanders 2000 Belgium Rapid
- 10
  
  Dansaert
  
  
  
  Charging hub
  
  Rue Antoine Dansaert 84  
  1000 Brussels
  
  
  
  Twelve bays, open from six in the morning.
  
  [Directions](https://www.google.com/maps/dir/?api=1&destination=50.8497,4.3452) 
  
  Brussels Brussels-Capital 1000 Belgium Charging hub
- 11
  
  Coupure
  
  
  
  Standard
  
  Coupure Rechts 120  
  9000 Ghent
  
  
  
  [Directions](https://www.google.com/maps/dir/?api=1&destination=51.0525,3.7106) 
  
  Ghent Flanders 9000 Belgium Standard
- 12
  
  Vrijthof
  
  
  
  Standard
  
  Vrijthof 30  
  6211 LE Maastricht
  
  
  
  [Directions](https://www.google.com/maps/dir/?api=1&destination=50.8483,5.6889) 
  
  Maastricht Limburg 6211 LE Netherlands Standard

Nothing matched

Try a shorter search term, a wider radius, or clear the filters.

## What it does

Store Locator Pro puts a searchable network of locations on a HubSpot page. Locations are a repeater, so an editor adds, removes and reorders them without touching a template. Every one carries a name, an address, coordinates, a phone number, an email address, opening hours, a category, a photograph, a link and a short note.

Search, category filtering, distance sorting and the radius limit all run in the visitor's browser against data already on the page. None of it calls a service.

## The two map modes

### Google Maps

Driven by your own Google Cloud key. Create a project at `console.cloud.google.com`, switch billing on, enable **Maps JavaScript API**, create an API key, and restrict it to your own domains before you paste it in. The key is readable by anyone who views the page — its safety comes from that restriction. An unrestricted key can be lifted off your page and used on someone else's site, and the loads land on your bill.

Google's Dynamic Maps allowance covers 10,000 map loads a month at no cost, then $7.00 per 1,000 loads up to 100,000 a month. Billing has to be switched on for the project either way, allowance or not.

It lands in Google's own colours. A field greyscales it, another builds the map's palette out of the swatches on the Style tab, and a map ID hands the styling to your Google Cloud console and stops the colour fields applying. Whether Google draws the shops and landmarks it knows about is its own switch and it applies whichever way the colours are set, except under a map ID, where the cloud style decides. Markers, grouping, the info window and the list-to-map sync are the module's own, drawn on Google's panes, so a pin looks the same whichever map is underneath it.

Leave the key field empty with the mode still on Google Maps and the street map is drawn instead. A published page always shows a map, and demo 3 on this page is that street map with no key anywhere on the instance.

The script loads once per page however many instances are on it. Two instances with different keys on one page: the first to load wins.

### Street map

Leaflet, bundled inside the module's own JavaScript file. Nothing is fetched from a CDN. It loads once per page however many instances are on it, and a CDN outage cannot take your map with it.

The tile field ships with CARTO's light basemap so a map draws straight away. CARTO's terms cover low volume and non-commercial use — read them, and for a commercial site paste in the address from whichever provider you hold an account with. MapTiler, CARTO, Stadia and Thunderforest all have a free tier and none asks for a card to start. It looks like this:

```
https://api.maptiler.com/maps/basic-v2/{z}/{x}/{y}.png?key=YOUR_KEY
```

The OpenStreetMap Foundation's own tile servers are deliberately not the default. Their usage policy states that access may be withdrawn from any commercial use at any time, and a default that can be withdrawn would blank the map on every site running it.

Every tile provider requires a credit line. The attribution field carries it, and it appears in the corner of the map.

## Distance and near me

The radius picker is built from the radius options, and the radius it starts on is a separate field. Set that field to a number the options do not hold and it is added to the picker where it belongs in the order, so the limit applies from the first render and the visitor can read what it is set to.

The near-me button asks the browser for the visitor's position through the standard Geolocation API. That is a browser permission prompt — nothing is sent anywhere. The distance from that point to each location is worked out with the haversine formula against the stored coordinates, the list is reordered nearest first, and a radius picker appears. Radius options and the unit are fields.

Sorting reorders the cards in the page, so the nearest one is genuinely first.

## Looking up a place name

There is one optional lookup and it is off out of the box. Switched on, pressing Enter in the search box sends that single term to the OpenStreetMap Nominatim service to turn it into coordinates, which then acts as the starting point for distance sorting. It never fires while someone types, and it is held to one request a second, which is what the Nominatim usage policy asks for. Their policy also asks for a contact address, and there is a field for it.

With the switch off, the search box is plain text matching over the location name, town, region, postcode, country, address and category. Nothing leaves the page.

## List and map together

Hover a card and its pin lifts. Click a location name and the map flies to it, goes in to street level and opens its bubble, so the visitor sees the door rather than a dot in a county. The level is a field, and the map lands on it whichever side it was on before the click. The flight has a duration field, on the street map and on Google Maps alike, and anyone who has asked their device for less motion gets the same arrival without it. Click a pin and the matching card scrolls into view, becomes active and takes focus. The location name is a real button, so all of this works from the keyboard, and the links inside the card stay ordinary links.

## The map stays where it can be seen

When the map sits over the list, it holds its place at the top of the screen while the cards move under it. Without that, clicking a card near the bottom of a long list does something off screen. It is a field, with the gap above it, and it applies on a phone to every layout, where the height it takes comes from the small-screen map height so it never eats the whole display.

## Directions

Each card can carry a directions link that opens in Google Maps, Apple Maps, Waze or OpenStreetMap. These are plain URLs with the coordinates in them and no key of any kind:

```
https://www.google.com/maps/dir/?api=1&destination=51.5261,-0.0800
https://maps.apple.com/?daddr=51.5261,-0.0800
https://www.waze.com/ul?ll=51.5261,-0.0800&navigate=yes
```

They are written into the page on the server, so they work with scripting switched off. The whole feature can be turned off.

## Grouping markers

On a street map, markers that land within a set number of pixels of each other collapse into one marker showing how many are inside it. Click it and the map frames that group. The grouping distance is a field, and grouping can be switched off. It is worked out inside the module, so nothing extra is loaded.

## Detail rows on a card

Each location carries its own repeater of short lines. A row is a piece of text and, if you want one, an icon picked from HubSpot's icon library on the row itself. Use them for the things a visitor checks before setting off — parking, step-free access, click and collect, a late night.

Rows work with icons, without them and mixed. Where any row on a card carries an icon, the card keeps an icon column, so a row left without one starts its text on the same line as the rows above it. Where no row on a card has an icon, the column is gone and nothing is indented. A location with no rows renders no list and no gap. The icon size and colour, the gap to the text, the space between rows, the space above them and the text size and colour are all fields.

## A photograph on a card

Each location takes a photograph. Whether photographs show at all is one switch; where the photograph sits — left of the text, right of it, or across the full width above it — its shape, its width and its corner radius are fields. A location left without one takes no space for it and the card closes up. With the numbering switch on, a card with no photograph shows its number in that place instead.

## Layouts

| Layout | What it gives you |
| --- | --- |
| List left, map right | The usual locator. The list scrolls in its own box while the map stays put. |
| Map left, list right | The same, mirrored. |
| List above the map | One column. Good for a short list. |
| Map above the list | One column, map first. |
| Map only | The map with its search controls and no cards. Search, category, near me and the radius picker all still apply, to the pins. Demo 4 on this page is that layout. |
| List only | A filterable directory in as many columns as you set. |

On small screens every layout becomes a single column, and whether the map or the list comes first is a field. The list stops being its own scroll box there, because a scroller inside the page scroll is unusable on a touch screen.

### The list keeps step with the map

In the two side-by-side layouts the list is capped so the two columns are the same height. The cap follows whatever height the map is actually at: the map height field, the smaller height it settles to while it is held at the top of the screen, and any height a visitor has dragged the handle to. Drag the map taller and the list gets the same room in the same movement, so the two edges stay level and the list's own scroll area grows with it. A field switches this to a height of your own, or to letting the list be as tall as its cards need.

## How many locations

Around a hundred is the comfortable ceiling. Every location is real markup on the page, and filtering walks all of them on each keystroke. That is fast at this size and it keeps the whole thing free of a back end. If your network is larger than that, this is not the right shape for it.

## Wording

Every string a visitor can read is a field: the search placeholder, the button text, the result count templates, the empty state, the no-results state, the labels on phone, email, hours and directions, and the descriptions read out to screen readers. Result counts are templates with `{count}`, `{radius}` and `{unit}` in them, so they translate without a developer.

## Accessibility

The location name is a button with a pressed state, so the list can be driven from the keyboard. Pins are buttons with their own labels. The result count is a live region, so a screen reader hears the list change as filters are applied. Focus rings are visible and their colour and width are fields. The town, region, postcode and country are searchable even on a card that does not print them, and they are hidden from the accessibility tree so nothing is read twice.

## Reduced motion

A visitor whose system asks for less motion gets no lift on the pins, no eased transitions, no animated scrolling to a card and no animated panning on the street map. That follows the reader's own setting, so an editor cannot switch it off by accident.

## Style

Every colour, size, weight, letter spacing, radius and space is a field on the Style tab, grouped by what it affects: typography, key colours, section, container, heading, search controls, location cards, card text, map, marker groups, map bubble, and the empty and no-result states. Colour fields carry opacity as well as a colour and both are used. Body and heading fonts and the accent colour inherit from your HubSpot theme settings until you say otherwise. There are no hard-coded colours, sizes, fonts or strings in the module.

## Troubleshooting

- **Pins are all in one corner.** Latitude and longitude are the wrong way round. Latitude runs -90 to 90, longitude -180 to 180.
- **The map is blank.** The tile address is empty, or the key in it has expired. Open the address in a browser with real numbers in place of `{z}`, `{x}` and `{y}` and see what comes back.
- **Near me does nothing.** Browsers only hand over a location on a page served over HTTPS, and the visitor has to allow it. A refusal shows the message in the near-me settings.
- **A category chip is missing.** The key on the location does not match the key on any category. They are compared exactly, so watch the capitals.
- **Search does not find a town.** The town field is empty on that location. The search reads the card and the hidden town, region, postcode and country.

## Notes on this page

The same module four times over, four businesses, four countries. Two draw on Google Maps with a key in the field; the other two have no key and draw the bundled street map. One of them is the map on its own with no cards beside it. One shows the icon detail rows, one shows a photograph on every card, and one has plain cards. The first is the render the module arrives with, black and white; the other two are moved a long way from it on colour, corner radius, shadow and weight. Every map here is a real map with real streets on it, and every address is a real one. No CSS on this page touches the module: every difference between them is a field value on the instance.

[![StudioNope Themes](https://www.nopethemes.com/hubfs/studio-nope-themes-logo.png)](https://www.nopethemes.com?hsLang=en) Store Locator Pro · Studio Nope [Get the module](https://ecosystem.hubspot.com/marketplace/website)

```json
{
  "@context" : "https://schema.org",
  "@type" : "ItemList",
  "itemListElement" : [ {
    "@type" : "ListItem",
    "item" : {
      "@type" : "LocalBusiness",
      "address" : {
        "@type" : "PostalAddress",
        "addressCountry" : "Japan",
        "addressLocality" : "Tokyo",
        "addressRegion" : "Chiyoda",
        "postalCode" : "101-0051",
        "streetAddress" : "2-8-4 Jimbocho, Chiyoda City, Tokyo 101-0051"
      },
      "geo" : {
        "@type" : "GeoCoordinates",
        "latitude" : 35.6957,
        "longitude" : 139.7576
      },
      "name" : "Jimbocho Bindery",
      "telephone" : "+81 3 6811 0142"
    },
    "position" : 1
  }, {
    "@type" : "ListItem",
    "item" : {
      "@type" : "LocalBusiness",
      "address" : {
        "@type" : "PostalAddress",
        "addressCountry" : "United Kingdom",
        "addressLocality" : "London",
        "addressRegion" : "England",
        "postalCode" : "WC2H 0AA",
        "streetAddress" : "84 Charing Cross Road, London WC2H 0AA"
      },
      "geo" : {
        "@type" : "GeoCoordinates",
        "latitude" : 51.5145,
        "longitude" : -0.129
      },
      "name" : "Charing Cross Road",
      "telephone" : "+44 20 7946 0158"
    },
    "position" : 2
  }, {
    "@type" : "ListItem",
    "item" : {
      "@type" : "LocalBusiness",
      "address" : {
        "@type" : "PostalAddress",
        "addressCountry" : "Australia",
        "addressLocality" : "Melbourne",
        "addressRegion" : "Victoria",
        "postalCode" : "3065",
        "streetAddress" : "200 Gertrude Street, Fitzroy VIC 3065"
      },
      "geo" : {
        "@type" : "GeoCoordinates",
        "latitude" : -37.7985,
        "longitude" : 144.98
      },
      "name" : "Fitzroy",
      "telephone" : "+61 3 9016 0142"
    },
    "position" : 3
  }, {
    "@type" : "ListItem",
    "item" : {
      "@type" : "LocalBusiness",
      "address" : {
        "@type" : "PostalAddress",
        "addressCountry" : "Romania",
        "addressLocality" : "Bucharest",
        "addressRegion" : "Bucuresti",
        "postalCode" : "030033",
        "streetAddress" : "Strada Lipscani 25, Bucharest 030033"
      },
      "geo" : {
        "@type" : "GeoCoordinates",
        "latitude" : 44.4318,
        "longitude" : 26.1017
      },
      "name" : "Lipscani",
      "telephone" : "+40 21 300 0114"
    },
    "position" : 4
  }, {
    "@type" : "ListItem",
    "item" : {
      "@type" : "LocalBusiness",
      "address" : {
        "@type" : "PostalAddress",
        "addressCountry" : "United States",
        "addressLocality" : "New York",
        "addressRegion" : "New York",
        "postalCode" : "10012",
        "streetAddress" : "126 Crosby Street, New York NY 10012"
      },
      "geo" : {
        "@type" : "GeoCoordinates",
        "latitude" : 40.7241,
        "longitude" : -73.9967
      },
      "name" : "Crosby Street",
      "telephone" : "+1 212 555 0130"
    },
    "position" : 5
  }, {
    "@type" : "ListItem",
    "item" : {
      "@type" : "LocalBusiness",
      "address" : {
        "@type" : "PostalAddress",
        "addressCountry" : "Germany",
        "addressLocality" : "Berlin",
        "addressRegion" : "Berlin",
        "postalCode" : "10119",
        "streetAddress" : "Torstrasse 140, 10119 Berlin"
      },
      "geo" : {
        "@type" : "GeoCoordinates",
        "latitude" : 52.5296,
        "longitude" : 13.4025
      },
      "name" : "Torstrasse",
      "telephone" : "+49 30 1208 0134"
    },
    "position" : 6
  }, {
    "@type" : "ListItem",
    "item" : {
      "@type" : "LocalBusiness",
      "address" : {
        "@type" : "PostalAddress",
        "addressCountry" : "South Africa",
        "addressLocality" : "Cape Town",
        "addressRegion" : "Western Cape",
        "postalCode" : "8001",
        "streetAddress" : "72 Kloof Street, Gardens, Cape Town 8001"
      },
      "geo" : {
        "@type" : "GeoCoordinates",
        "latitude" : -33.9295,
        "longitude" : 18.409
      },
      "name" : "Kloof Street",
      "telephone" : "+27 21 300 0147"
    },
    "position" : 7
  }, {
    "@type" : "ListItem",
    "item" : {
      "@type" : "LocalBusiness",
      "address" : {
        "@type" : "PostalAddress",
        "addressCountry" : "France",
        "addressLocality" : "Paris",
        "addressRegion" : "Ile-de-France",
        "postalCode" : "75006",
        "streetAddress" : "12 Rue de Seine, 75006 Paris"
      },
      "geo" : {
        "@type" : "GeoCoordinates",
        "latitude" : 48.8548,
        "longitude" : 2.3363
      },
      "name" : "Rue de Seine",
      "telephone" : "+33 1 84 88 0118"
    },
    "position" : 8
  }, {
    "@type" : "ListItem",
    "item" : {
      "@type" : "LocalBusiness",
      "address" : {
        "@type" : "PostalAddress",
        "addressCountry" : "Singapore",
        "addressLocality" : "Singapore",
        "addressRegion" : "Singapore",
        "postalCode" : "088839",
        "streetAddress" : "78 Neil Road, Singapore 088839"
      },
      "geo" : {
        "@type" : "GeoCoordinates",
        "latitude" : 1.2782,
        "longitude" : 103.8399
      },
      "name" : "Neil Road",
      "telephone" : "+65 6808 0121"
    },
    "position" : 9
  }, {
    "@type" : "ListItem",
    "item" : {
      "@type" : "LocalBusiness",
      "address" : {
        "@type" : "PostalAddress",
        "addressCountry" : "Portugal",
        "addressLocality" : "Lisbon",
        "addressRegion" : "Lisboa",
        "postalCode" : "1200-203",
        "streetAddress" : "Rua Garrett 73, 1200-203 Lisbon"
      },
      "geo" : {
        "@type" : "GeoCoordinates",
        "latitude" : 38.7108,
        "longitude" : -9.142
      },
      "name" : "Rua Garrett",
      "telephone" : "+351 21 300 0165"
    },
    "position" : 10
  }, {
    "@type" : "ListItem",
    "item" : {
      "@type" : "LocalBusiness",
      "address" : {
        "@type" : "PostalAddress",
        "addressCountry" : "Canada",
        "addressLocality" : "Toronto",
        "addressRegion" : "Ontario",
        "postalCode" : "M6J 1G3",
        "streetAddress" : "790 Queen Street West, Toronto ON M6J 1G3"
      },
      "geo" : {
        "@type" : "GeoCoordinates",
        "latitude" : 43.6465,
        "longitude" : -79.4098
      },
      "name" : "Queen Street West",
      "telephone" : "+1 416 555 0151"
    },
    "position" : 11
  }, {
    "@type" : "ListItem",
    "item" : {
      "@type" : "LocalBusiness",
      "address" : {
        "@type" : "PostalAddress",
        "addressCountry" : "Mexico",
        "addressLocality" : "Mexico City",
        "addressRegion" : "Cuauhtemoc",
        "postalCode" : "06100",
        "streetAddress" : "Calle Amsterdam 62, Hipodromo, 06100 Mexico City"
      },
      "geo" : {
        "@type" : "GeoCoordinates",
        "latitude" : 19.411,
        "longitude" : -99.171
      },
      "name" : "Amsterdam",
      "telephone" : "+52 55 4165 0177"
    },
    "position" : 12
  } ],
  "numberOfItems" : 12
}
```

```json
{
  "@context" : "https://schema.org",
  "@type" : "ItemList",
  "itemListElement" : [ {
    "@type" : "ListItem",
    "item" : {
      "@type" : "LocalBusiness",
      "address" : {
        "@type" : "PostalAddress",
        "addressCountry" : "Canada",
        "addressLocality" : "Vancouver",
        "addressRegion" : "British Columbia",
        "postalCode" : "V6J 1M4",
        "streetAddress" : "1830 West 4th Avenue, Vancouver BC V6J 1M4"
      },
      "geo" : {
        "@type" : "GeoCoordinates",
        "latitude" : 49.268,
        "longitude" : -123.149
      },
      "image" : "https://www.nopethemes.com/hubfs/raw_assets/public/studionope-magazine/images/templates/helper-img-1.jpg",
      "name" : "West Fourth",
      "telephone" : "+1 604 555 0142"
    },
    "position" : 1
  }, {
    "@type" : "ListItem",
    "item" : {
      "@type" : "LocalBusiness",
      "address" : {
        "@type" : "PostalAddress",
        "addressCountry" : "Canada",
        "addressLocality" : "Vancouver",
        "addressRegion" : "British Columbia",
        "postalCode" : "V6B 1B6",
        "streetAddress" : "320 Water Street, Vancouver BC V6B 1B6"
      },
      "geo" : {
        "@type" : "GeoCoordinates",
        "latitude" : 49.2845,
        "longitude" : -123.107
      },
      "image" : "https://www.nopethemes.com/hubfs/raw_assets/public/studionope-magazine/images/templates/helper-img-2.jpg",
      "name" : "Gastown",
      "telephone" : "+1 604 555 0158"
    },
    "position" : 2
  }, {
    "@type" : "ListItem",
    "item" : {
      "@type" : "LocalBusiness",
      "address" : {
        "@type" : "PostalAddress",
        "addressCountry" : "Canada",
        "addressLocality" : "Victoria",
        "addressRegion" : "British Columbia",
        "postalCode" : "V8W 3C6",
        "streetAddress" : "560 Johnson Street, Victoria BC V8W 3C6"
      },
      "geo" : {
        "@type" : "GeoCoordinates",
        "latitude" : 48.4265,
        "longitude" : -123.366
      },
      "image" : "https://www.nopethemes.com/hubfs/raw_assets/public/studionope-magazine/images/templates/helper-img-3.jpg",
      "name" : "Johnson Street",
      "telephone" : "+1 250 555 0113"
    },
    "position" : 3
  }, {
    "@type" : "ListItem",
    "item" : {
      "@type" : "LocalBusiness",
      "address" : {
        "@type" : "PostalAddress",
        "addressCountry" : "Canada",
        "addressLocality" : "Calgary",
        "addressRegion" : "Alberta",
        "postalCode" : "T2N 3P4",
        "streetAddress" : "1219 Kensington Road NW, Calgary AB T2N 3P4"
      },
      "geo" : {
        "@type" : "GeoCoordinates",
        "latitude" : 51.053,
        "longitude" : -114.093
      },
      "image" : "https://www.nopethemes.com/hubfs/raw_assets/public/studionope-magazine/images/templates/helper-img-4.jpg",
      "name" : "Kensington",
      "telephone" : "+1 403 555 0121"
    },
    "position" : 4
  }, {
    "@type" : "ListItem",
    "item" : {
      "@type" : "LocalBusiness",
      "address" : {
        "@type" : "PostalAddress",
        "addressCountry" : "Canada",
        "addressLocality" : "Banff",
        "addressRegion" : "Alberta",
        "postalCode" : "T1L 1B7",
        "streetAddress" : "215 Banff Avenue, Banff AB T1L 1B7"
      },
      "geo" : {
        "@type" : "GeoCoordinates",
        "latitude" : 51.179,
        "longitude" : -115.571
      },
      "image" : "https://www.nopethemes.com/hubfs/raw_assets/public/studionope-magazine/images/templates/helper-img-5.jpg",
      "name" : "Banff Avenue",
      "telephone" : "+1 403 555 0130"
    },
    "position" : 5
  }, {
    "@type" : "ListItem",
    "item" : {
      "@type" : "LocalBusiness",
      "address" : {
        "@type" : "PostalAddress",
        "addressCountry" : "Canada",
        "addressLocality" : "Edmonton",
        "addressRegion" : "Alberta",
        "postalCode" : "T6E 2A3",
        "streetAddress" : "10442 Whyte Avenue NW, Edmonton AB T6E 2A3"
      },
      "geo" : {
        "@type" : "GeoCoordinates",
        "latitude" : 53.5185,
        "longitude" : -113.493
      },
      "image" : "https://www.nopethemes.com/hubfs/raw_assets/public/studionope-magazine/images/templates/helper-img-6.jpg",
      "name" : "Whyte Avenue",
      "telephone" : "+1 780 555 0134"
    },
    "position" : 6
  }, {
    "@type" : "ListItem",
    "item" : {
      "@type" : "LocalBusiness",
      "address" : {
        "@type" : "PostalAddress",
        "addressCountry" : "Canada",
        "addressLocality" : "Winnipeg",
        "addressRegion" : "Manitoba",
        "postalCode" : "R3B 1G5",
        "streetAddress" : "91 Albert Street, Winnipeg MB R3B 1G5"
      },
      "geo" : {
        "@type" : "GeoCoordinates",
        "latitude" : 49.8955,
        "longitude" : -97.1385
      },
      "image" : "https://www.nopethemes.com/hubfs/raw_assets/public/studionope-magazine/images/templates/helper-img-7.jpg",
      "name" : "Albert Street",
      "telephone" : "+1 204 555 0118"
    },
    "position" : 7
  }, {
    "@type" : "ListItem",
    "item" : {
      "@type" : "LocalBusiness",
      "address" : {
        "@type" : "PostalAddress",
        "addressCountry" : "Canada",
        "addressLocality" : "Toronto",
        "addressRegion" : "Ontario",
        "postalCode" : "M6J 1G1",
        "streetAddress" : "774 Queen Street West, Toronto ON M6J 1G1"
      },
      "geo" : {
        "@type" : "GeoCoordinates",
        "latitude" : 43.6465,
        "longitude" : -79.4085
      },
      "image" : "https://www.nopethemes.com/hubfs/raw_assets/public/studionope-magazine/images/templates/helper-img-8.jpg",
      "name" : "Queen West",
      "telephone" : "+1 416 555 0147"
    },
    "position" : 8
  }, {
    "@type" : "ListItem",
    "item" : {
      "@type" : "LocalBusiness",
      "address" : {
        "@type" : "PostalAddress",
        "addressCountry" : "Canada",
        "addressLocality" : "Ottawa",
        "addressRegion" : "Ontario",
        "postalCode" : "K1N 9C3",
        "streetAddress" : "55 ByWard Market Square, Ottawa ON K1N 9C3"
      },
      "geo" : {
        "@type" : "GeoCoordinates",
        "latitude" : 45.428,
        "longitude" : -75.692
      },
      "image" : "https://www.nopethemes.com/hubfs/raw_assets/public/studionope-magazine/images/templates/helper-img-9.jpg",
      "name" : "ByWard Market",
      "telephone" : "+1 613 555 0151"
    },
    "position" : 9
  }, {
    "@type" : "ListItem",
    "item" : {
      "@type" : "LocalBusiness",
      "address" : {
        "@type" : "PostalAddress",
        "addressCountry" : "Canada",
        "addressLocality" : "Montreal",
        "addressRegion" : "Quebec",
        "postalCode" : "H2J 2K9",
        "streetAddress" : "4200 Rue Saint-Denis, Montreal QC H2J 2K9"
      },
      "geo" : {
        "@type" : "GeoCoordinates",
        "latitude" : 45.524,
        "longitude" : -73.582
      },
      "image" : "https://www.nopethemes.com/hubfs/raw_assets/public/studionope-magazine/images/templates/helper-img-10.jpg",
      "name" : "Saint-Denis",
      "telephone" : "+1 514 555 0165"
    },
    "position" : 10
  }, {
    "@type" : "ListItem",
    "item" : {
      "@type" : "LocalBusiness",
      "address" : {
        "@type" : "PostalAddress",
        "addressCountry" : "Canada",
        "addressLocality" : "Halifax",
        "addressRegion" : "Nova Scotia",
        "postalCode" : "B3J 1Z5",
        "streetAddress" : "1541 Barrington Street, Halifax NS B3J 1Z5"
      },
      "geo" : {
        "@type" : "GeoCoordinates",
        "latitude" : 44.646,
        "longitude" : -63.575
      },
      "image" : "https://www.nopethemes.com/hubfs/raw_assets/public/studionope-magazine/images/templates/helper-img-11.jpg",
      "name" : "Barrington Street",
      "telephone" : "+1 902 555 0177"
    },
    "position" : 11
  }, {
    "@type" : "ListItem",
    "item" : {
      "@type" : "LocalBusiness",
      "address" : {
        "@type" : "PostalAddress",
        "addressCountry" : "Canada",
        "addressLocality" : "St John's",
        "addressRegion" : "Newfoundland and Labrador",
        "postalCode" : "A1C 1A9",
        "streetAddress" : "200 Water Street, St John's NL A1C 1A9"
      },
      "geo" : {
        "@type" : "GeoCoordinates",
        "latitude" : 47.565,
        "longitude" : -52.708
      },
      "name" : "Water Street",
      "telephone" : "+1 709 555 0188"
    },
    "position" : 12
  } ],
  "numberOfItems" : 12
}
```

```json
{
  "@context" : "https://schema.org",
  "@type" : "ItemList",
  "itemListElement" : [ {
    "@type" : "ListItem",
    "item" : {
      "@type" : "LocalBusiness",
      "address" : {
        "@type" : "PostalAddress",
        "addressCountry" : "Ireland",
        "addressLocality" : "Dublin",
        "addressRegion" : "Leinster",
        "postalCode" : "D02 XY45",
        "streetAddress" : "21 South William Street, Dublin 2"
      },
      "geo" : {
        "@type" : "GeoCoordinates",
        "latitude" : 53.342,
        "longitude" : -6.2625
      },
      "name" : "South William Street",
      "telephone" : "+353 1 555 0142"
    },
    "position" : 1
  }, {
    "@type" : "ListItem",
    "item" : {
      "@type" : "LocalBusiness",
      "address" : {
        "@type" : "PostalAddress",
        "addressCountry" : "Ireland",
        "addressLocality" : "Dublin",
        "addressRegion" : "Leinster",
        "postalCode" : "D02 HW65",
        "streetAddress" : "6 Wexford Street, Dublin 2"
      },
      "geo" : {
        "@type" : "GeoCoordinates",
        "latitude" : 53.3373,
        "longitude" : -6.265
      },
      "name" : "Wexford Street",
      "telephone" : "+353 1 555 0158"
    },
    "position" : 2
  }, {
    "@type" : "ListItem",
    "item" : {
      "@type" : "LocalBusiness",
      "address" : {
        "@type" : "PostalAddress",
        "addressCountry" : "Ireland",
        "addressLocality" : "Dublin",
        "addressRegion" : "Leinster",
        "postalCode" : "D07 R284",
        "streetAddress" : "44 Manor Street, Dublin 7"
      },
      "geo" : {
        "@type" : "GeoCoordinates",
        "latitude" : 53.352,
        "longitude" : -6.283
      },
      "name" : "Stoneybatter",
      "telephone" : "+353 1 555 0113"
    },
    "position" : 3
  }, {
    "@type" : "ListItem",
    "item" : {
      "@type" : "LocalBusiness",
      "address" : {
        "@type" : "PostalAddress",
        "addressCountry" : "Ireland",
        "addressLocality" : "Dun Laoghaire",
        "addressRegion" : "Leinster",
        "postalCode" : "A96 X264",
        "streetAddress" : "12 Upper George's Street, Dun Laoghaire, Co. Dublin"
      },
      "geo" : {
        "@type" : "GeoCoordinates",
        "latitude" : 53.294,
        "longitude" : -6.136
      },
      "name" : "Dun Laoghaire",
      "telephone" : "+353 1 555 0121"
    },
    "position" : 4
  }, {
    "@type" : "ListItem",
    "item" : {
      "@type" : "LocalBusiness",
      "address" : {
        "@type" : "PostalAddress",
        "addressCountry" : "Ireland",
        "addressLocality" : "Cork",
        "addressRegion" : "Munster",
        "postalCode" : "T12 XY74",
        "streetAddress" : "15 Princes Street, Cork"
      },
      "geo" : {
        "@type" : "GeoCoordinates",
        "latitude" : 51.8975,
        "longitude" : -8.472
      },
      "name" : "Princes Street",
      "telephone" : "+353 21 555 0130"
    },
    "position" : 5
  }, {
    "@type" : "ListItem",
    "item" : {
      "@type" : "LocalBusiness",
      "address" : {
        "@type" : "PostalAddress",
        "addressCountry" : "Ireland",
        "addressLocality" : "Galway",
        "addressRegion" : "Connacht",
        "postalCode" : "H91 K3P8",
        "streetAddress" : "8 Quay Street, Galway"
      },
      "geo" : {
        "@type" : "GeoCoordinates",
        "latitude" : 53.2705,
        "longitude" : -9.0545
      },
      "name" : "Quay Street",
      "telephone" : "+353 91 555 0134"
    },
    "position" : 6
  }, {
    "@type" : "ListItem",
    "item" : {
      "@type" : "LocalBusiness",
      "address" : {
        "@type" : "PostalAddress",
        "addressCountry" : "Ireland",
        "addressLocality" : "Limerick",
        "addressRegion" : "Munster",
        "postalCode" : "V94 X2P9",
        "streetAddress" : "30 Catherine Street, Limerick"
      },
      "geo" : {
        "@type" : "GeoCoordinates",
        "latitude" : 52.662,
        "longitude" : -8.625
      },
      "name" : "Catherine Street",
      "telephone" : "+353 61 555 0118"
    },
    "position" : 7
  }, {
    "@type" : "ListItem",
    "item" : {
      "@type" : "LocalBusiness",
      "address" : {
        "@type" : "PostalAddress",
        "addressCountry" : "Ireland",
        "addressLocality" : "Kilkenny",
        "addressRegion" : "Leinster",
        "postalCode" : "R95 W1E4",
        "streetAddress" : "5 High Street, Kilkenny"
      },
      "geo" : {
        "@type" : "GeoCoordinates",
        "latitude" : 52.654,
        "longitude" : -7.253
      },
      "name" : "Kilkenny High Street",
      "telephone" : "+353 56 555 0147"
    },
    "position" : 8
  }, {
    "@type" : "ListItem",
    "item" : {
      "@type" : "LocalBusiness",
      "address" : {
        "@type" : "PostalAddress",
        "addressCountry" : "Ireland",
        "addressLocality" : "Waterford",
        "addressRegion" : "Munster",
        "postalCode" : "X91 PY63",
        "streetAddress" : "22 John Roberts Square, Waterford"
      },
      "geo" : {
        "@type" : "GeoCoordinates",
        "latitude" : 52.2585,
        "longitude" : -7.1105
      },
      "name" : "John Roberts Square",
      "telephone" : "+353 51 555 0151"
    },
    "position" : 9
  }, {
    "@type" : "ListItem",
    "item" : {
      "@type" : "LocalBusiness",
      "address" : {
        "@type" : "PostalAddress",
        "addressCountry" : "Ireland",
        "addressLocality" : "Sligo",
        "addressRegion" : "Connacht",
        "postalCode" : "F91 P2V8",
        "streetAddress" : "9 O'Connell Street, Sligo"
      },
      "geo" : {
        "@type" : "GeoCoordinates",
        "latitude" : 54.2705,
        "longitude" : -8.476
      },
      "name" : "O'Connell Street",
      "telephone" : "+353 71 555 0165"
    },
    "position" : 10
  }, {
    "@type" : "ListItem",
    "item" : {
      "@type" : "LocalBusiness",
      "address" : {
        "@type" : "PostalAddress",
        "addressCountry" : "Ireland",
        "addressLocality" : "Killarney",
        "addressRegion" : "Munster",
        "postalCode" : "V93 KH27",
        "streetAddress" : "18 High Street, Killarney, Co. Kerry"
      },
      "geo" : {
        "@type" : "GeoCoordinates",
        "latitude" : 52.0595,
        "longitude" : -9.5065
      },
      "name" : "Killarney High Street",
      "telephone" : "+353 64 555 0177"
    },
    "position" : 11
  }, {
    "@type" : "ListItem",
    "item" : {
      "@type" : "LocalBusiness",
      "address" : {
        "@type" : "PostalAddress",
        "addressCountry" : "Ireland",
        "addressLocality" : "Westport",
        "addressRegion" : "Connacht",
        "postalCode" : "F28 AK27",
        "streetAddress" : "4 Bridge Street, Westport, Co. Mayo"
      },
      "geo" : {
        "@type" : "GeoCoordinates",
        "latitude" : 53.801,
        "longitude" : -9.52
      },
      "name" : "Westport Bridge Street",
      "telephone" : "+353 98 555 0188"
    },
    "position" : 12
  } ],
  "numberOfItems" : 12
}
```

```json
{
  "@context" : "https://schema.org",
  "@type" : "ItemList",
  "itemListElement" : [ {
    "@type" : "ListItem",
    "item" : {
      "@type" : "LocalBusiness",
      "address" : {
        "@type" : "PostalAddress",
        "addressCountry" : "Netherlands",
        "addressLocality" : "Amsterdam",
        "addressRegion" : "Noord-Holland",
        "postalCode" : "1014 DB",
        "streetAddress" : "Pazzanistraat 12, 1014 DB Amsterdam"
      },
      "geo" : {
        "@type" : "GeoCoordinates",
        "latitude" : 52.3862,
        "longitude" : 4.8721
      },
      "name" : "Westergas"
    },
    "position" : 1
  }, {
    "@type" : "ListItem",
    "item" : {
      "@type" : "LocalBusiness",
      "address" : {
        "@type" : "PostalAddress",
        "addressCountry" : "Netherlands",
        "addressLocality" : "Amsterdam",
        "addressRegion" : "Noord-Holland",
        "postalCode" : "1011 DL",
        "streetAddress" : "Oosterdokskade 143, 1011 DL Amsterdam"
      },
      "geo" : {
        "@type" : "GeoCoordinates",
        "latitude" : 52.3762,
        "longitude" : 4.9086
      },
      "name" : "Oosterdok"
    },
    "position" : 2
  }, {
    "@type" : "ListItem",
    "item" : {
      "@type" : "LocalBusiness",
      "address" : {
        "@type" : "PostalAddress",
        "addressCountry" : "Netherlands",
        "addressLocality" : "Rotterdam",
        "addressRegion" : "Zuid-Holland",
        "postalCode" : "3011 GA",
        "streetAddress" : "Blaak 31, 3011 GA Rotterdam"
      },
      "geo" : {
        "@type" : "GeoCoordinates",
        "latitude" : 51.9203,
        "longitude" : 4.4886
      },
      "name" : "Blaak"
    },
    "position" : 3
  }, {
    "@type" : "ListItem",
    "item" : {
      "@type" : "LocalBusiness",
      "address" : {
        "@type" : "PostalAddress",
        "addressCountry" : "Netherlands",
        "addressLocality" : "Rotterdam",
        "addressRegion" : "Zuid-Holland",
        "postalCode" : "3072 NA",
        "streetAddress" : "Brede Hilledijk 90, 3072 NA Rotterdam"
      },
      "geo" : {
        "@type" : "GeoCoordinates",
        "latitude" : 51.8992,
        "longitude" : 4.4874
      },
      "name" : "Katendrecht"
    },
    "position" : 4
  }, {
    "@type" : "ListItem",
    "item" : {
      "@type" : "LocalBusiness",
      "address" : {
        "@type" : "PostalAddress",
        "addressCountry" : "Netherlands",
        "addressLocality" : "The Hague",
        "addressRegion" : "Zuid-Holland",
        "postalCode" : "2511 CL",
        "streetAddress" : "Lange Poten 4, 2511 CL The Hague"
      },
      "geo" : {
        "@type" : "GeoCoordinates",
        "latitude" : 52.0793,
        "longitude" : 4.3145
      },
      "name" : "Binnenhof"
    },
    "position" : 5
  }, {
    "@type" : "ListItem",
    "item" : {
      "@type" : "LocalBusiness",
      "address" : {
        "@type" : "PostalAddress",
        "addressCountry" : "Netherlands",
        "addressLocality" : "Utrecht",
        "addressRegion" : "Utrecht",
        "postalCode" : "3521 AL",
        "streetAddress" : "Jaarbeursplein 6, 3521 AL Utrecht"
      },
      "geo" : {
        "@type" : "GeoCoordinates",
        "latitude" : 52.0894,
        "longitude" : 5.1075
      },
      "name" : "Jaarbeurs"
    },
    "position" : 6
  }, {
    "@type" : "ListItem",
    "item" : {
      "@type" : "LocalBusiness",
      "address" : {
        "@type" : "PostalAddress",
        "addressCountry" : "Netherlands",
        "addressLocality" : "Eindhoven",
        "addressRegion" : "Noord-Brabant",
        "postalCode" : "5617 BD",
        "streetAddress" : "Torenallee 60, 5617 BD Eindhoven"
      },
      "geo" : {
        "@type" : "GeoCoordinates",
        "latitude" : 51.4487,
        "longitude" : 5.4593
      },
      "name" : "Strijp-S"
    },
    "position" : 7
  }, {
    "@type" : "ListItem",
    "item" : {
      "@type" : "LocalBusiness",
      "address" : {
        "@type" : "PostalAddress",
        "addressCountry" : "Netherlands",
        "addressLocality" : "Groningen",
        "addressRegion" : "Groningen",
        "postalCode" : "9711 LV",
        "streetAddress" : "Grote Markt 29, 9711 LV Groningen"
      },
      "geo" : {
        "@type" : "GeoCoordinates",
        "latitude" : 53.2194,
        "longitude" : 6.5665
      },
      "name" : "Grote Markt"
    },
    "position" : 8
  }, {
    "@type" : "ListItem",
    "item" : {
      "@type" : "LocalBusiness",
      "address" : {
        "@type" : "PostalAddress",
        "addressCountry" : "Belgium",
        "addressLocality" : "Antwerp",
        "addressRegion" : "Flanders",
        "postalCode" : "2000",
        "streetAddress" : "Marnixplaats 8, 2000 Antwerp"
      },
      "geo" : {
        "@type" : "GeoCoordinates",
        "latitude" : 51.2085,
        "longitude" : 4.3925
      },
      "name" : "Het Zuid"
    },
    "position" : 9
  }, {
    "@type" : "ListItem",
    "item" : {
      "@type" : "LocalBusiness",
      "address" : {
        "@type" : "PostalAddress",
        "addressCountry" : "Belgium",
        "addressLocality" : "Brussels",
        "addressRegion" : "Brussels-Capital",
        "postalCode" : "1000",
        "streetAddress" : "Rue Antoine Dansaert 84, 1000 Brussels"
      },
      "geo" : {
        "@type" : "GeoCoordinates",
        "latitude" : 50.8497,
        "longitude" : 4.3452
      },
      "name" : "Dansaert"
    },
    "position" : 10
  }, {
    "@type" : "ListItem",
    "item" : {
      "@type" : "LocalBusiness",
      "address" : {
        "@type" : "PostalAddress",
        "addressCountry" : "Belgium",
        "addressLocality" : "Ghent",
        "addressRegion" : "Flanders",
        "postalCode" : "9000",
        "streetAddress" : "Coupure Rechts 120, 9000 Ghent"
      },
      "geo" : {
        "@type" : "GeoCoordinates",
        "latitude" : 51.0525,
        "longitude" : 3.7106
      },
      "name" : "Coupure"
    },
    "position" : 11
  }, {
    "@type" : "ListItem",
    "item" : {
      "@type" : "LocalBusiness",
      "address" : {
        "@type" : "PostalAddress",
        "addressCountry" : "Netherlands",
        "addressLocality" : "Maastricht",
        "addressRegion" : "Limburg",
        "postalCode" : "6211 LE",
        "streetAddress" : "Vrijthof 30, 6211 LE Maastricht"
      },
      "geo" : {
        "@type" : "GeoCoordinates",
        "latitude" : 50.8483,
        "longitude" : 5.6889
      },
      "name" : "Vrijthof"
    },
    "position" : 12
  } ],
  "numberOfItems" : 12
}
```