Connect to your own map service

This article is for sites connecting a map that isn't on the ready-made list: a drone survey, an ArcGIS layer your GIS team published, a subscription service like Nearmap or Ordnance Survey, or a map server you host yourself.

If you just want satellite imagery or a standard street map, you don't need any of this — see Add a new base maps

On this page

What Hortis needs from a map service

Hortis displays XYZ tiled web maps (sometimes called slippy maps). The service splits the world into square image tiles at each zoom level, and Hortis requests the tiles it needs as you pan and zoom. Three things have to be true:

  • The address is a tile template. It ends with placeholders for the zoom level and tile position, for example .../{z}/{x}/{y}.png. Hortis substitutes real values as the map moves.
  • The map uses Web Mercator (EPSG:3857). This is the projection used by almost all web maps. A map in any other projection will appear in the wrong place or look distorted. More on Web Mercator
  • The service is reachable by your users' browsers. Maps shared privately within an ArcGIS organisation, or served from an internal network, won't load for everyone.

More about tiled web maps

Watch the order of the placeholders

Most services order the placeholders {z}/{x}/{y}, but Esri and ArcGIS services use {z}/{y}/{x} — row before column. Getting these the wrong way round is the most common reason a map loads but shows the wrong tiles in the wrong places. Follow the format given for your provider below rather than assuming.

API keys

Paid services authenticate with a key appended to the address, usually as a query parameter. Note that the key is part of the address and is therefore visible to anyone who can view your map. Where your provider allows it, restrict the key to your own domain.

Attribution

Many providers may require a visible credit, and it's your responsibility to comply. Add it in the Attribution field when you create the base map.


Esri ArcGIS Online

ArcGIS Online is a complete mapping and analysis solution. You can use it on its own or expand your work using other ArcGIS products.

ArcGIS Online is a paid service. arcgis.com

Before you start: set your map up in Web Mercator (EPSG:3857). Be aware that ArcGIS Online may restrict sharing large aerial maps publicly, depending on your plan.

There are two routes — publish as a tile layer from ArcGIS Pro, or upload a tile package file. Both end with an address you paste into Hortis.

Route A — publish a web tile layer from ArcGIS Pro

  1. In ArcGIS Pro, open your map and go to Share → Web Layer → Publish Web Layer.
  2. Set the layer type to Tile.
  3. Set the sharing level to Everyone (public).
  4. On the Configurationtab:
    • Set the tiling scheme to ArcGIS Online / Bing Maps / Google Maps.
    • Set Levels of Detail to 15–21, or 16–22 if your map covers a small area at high detail.
  5. Click Publish. The tile layer appears in your ArcGIS Online content.
  6. In ArcGIS Online, open the page for the new tile layer and click the Map Service link to reach the service directory page.
  7. On the service directory page, click WMTS at the top to open the service definition.
  8. In the XML, find the ResourceURLentry. It will look something like this:
    https://tiles.arcgis.com/tiles/ZCPxyWsXwAcvsaA8K/arcgis/rest/services/My_Hortis_Map/MapServer/WMTS/tile/1.0.0/My_Hortis_Map/{Style}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}.png
  9. Replace the trailing placeholders. On ArcGIS Online the default style is default and the default tile matrix set is default028mm, so the end of the address becomes default/default028mm/{z}/{y}/{x}:
    https://tiles.arcgis.com/tiles/ZCPxyWsXwAcvsaA8K/arcgis/rest/services/My_Hortis_Map/MapServer/WMTS/tile/1.0.0/My_Hortis_Map/default/default028mm/{z}/{y}/{x}.png
  10. Paste that address into the Tiles URL field in Hortis.

Route B — upload a map tile package

  1. Create a map tile package in ArcGIS Pro (.tpkx or .tpk).
  2. In ArcGIS Online, go to Content → Add and select the package file.
  3. On the resulting tile layer, set sharing to Everyone (public).
  4. Copy the URL shown at the bottom right of the layer page.
  5. Paste it into Hortis and add /tile/{z}/{y}/{x} at the end.

Format:

<Tile Layer URL>/tile/{z}/{y}/{x}

Example:

https://tiles.arcgis.com/tiles/ZCPxyWsdgewc58dfK/arcgis/rest/services/OurGarden/MapServer/tile/{z}/{y}/{x}

Esri's own base maps

Esri publishes a range of ready-made base maps — browse the list. World Imagery is already covered in Add a base map to your site; others follow the same pattern:

https://server.arcgisonline.com/arcgis/rest/services/<Service_Name>/MapServer/tile/{z}/{y}/{x}

Web Map Tile Service (WMTS)

If your map is published through WMTS by any provider, you can point Hortis at the tile endpoint.

Open the service's WMTS specification page — normally linked from the service home page — and find the ResourceURL entry. The template looks something like this:

https://tiles.arcgis.com/tiles/Dt9ecmawdFFpu8nw/arcgis/rest/services/Hortis_Map/MapServer/WMTS/tile/1.0.0/Hortis_Map_2024/{Style}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}.png

Replace {Style} and {TileMatrixSet} with the values your service uses, then replace {TileMatrix}/{TileRow}/{TileCol} with {z}/{y}/{x}. On ArcGIS the defaults are default and default028mm:

https://tiles.arcgis.com/tiles/Dt9ecmawdFFpu8nw/arcgis/rest/services/Hortis_Map/MapServer/WMTS/tile/1.0.0/Hortis_Map_2024/default/default028mm/{z}/{y}/{x}

OpenAerialMap — hosting a drone survey

The open collection of aerial imagery. OpenAerialMap is an open service to provide access to a commons of openly licensed imagery and map layer services.

If you've flown your own site, OpenAerialMap is a free and cost-effective way to host the result. map.openaerialmap.org

  1. Navigate to the imagery you want.
  2. Click the TMS link to copy the image address.
  3. Paste it into the Tiles URL field in Hortis and add .png at the end.
  4. Add the attribution.

Example:

https://tiles.openaerialmap.org/6296a324022df30007ad1d45/0/6296a324022df30007ad1d46/{z}/{x}/{y}.png

Attribution:

ⓒ Open Imagery Network

Imagery on OpenAerialMap is openly licensed, but the exact licence varies by image and some is restricted to non-commercial use. Check the licence shown on the image you're using and read the OpenAerialMap legal terms. Uploading your own imagery means licensing it openly and allowing it to be traced in OpenStreetMap — worth understanding before you publish a survey of your site.


Nearmap

Explore high-resolution aerial view maps with better quality than satellite maps and 3D data, and automated insights for governments and businesses.

A paid service offering high-resolution imagery for parts of the United States, Australia and New Zealand. nearmap.com

After signing up, choose a resource type and obtain your API key. Nearmap's tile API documentation explains the options.

Format:

https://api.nearmap.com/tiles/v3/{tileResourceType}/{z}/{x}/{y}.{format}?apikey={YOUR_API_KEY}

Replace {tileResourceType}, {format} and {YOUR_API_KEY} with your own values. Leave {z}, {x} and {y} as they are.


Ordnance Survey (UK)

Ordnance Survey is the national mapping agency for Great Britain.

There's a free tier, but most gardens will need a premium or public sector plan to get sufficient resolution for a site map. Technical specifications

  1. Sign up at the OS Data Hub.
  2. Create an OS project.
  3. Add the OS Maps API to the project.
  4. Choose a layer with the 3857 (Web Mercator) projection — Road 3857, Outdoor 3857 or Light 3857.
  5. Copy the ZXY API endpoint address and paste it into the Tiles URL field in Hortis.

Example:

https://api.os.uk/maps/raster/v1/zxy/Road_3857/{z}/{x}/{y}.png?key={YOUR_API_KEY}

Attribution:

© Ordnance Survey

Stadia Maps with an account

Stadia Maps offers location APIs for humans. Thousands of companies of all sizes use Stadia Maps to contextualize their data on a map, solve logistics problems, build fitness experiences, and more.

Stadia offers a free tier and paid tiers. stadiamaps.com

For anything beyond testing you'll need to authenticate by adding your API key to the address — see Stadia's authentication guide.

https://tiles.stadiamaps.com/tiles/stamen_toner/{z}/{x}/{y}.png

Attribution:

© Stamen Design | © Stadia Maps

Self-hosted map servers

If you're serving tiles from your own server, we may need to whitelist the service address in Hortis before the tiles will load. Send us a ticket with the address and we'll set that up.

See also: Preparing maps for hosting.


If the map doesn't load

  • Nothing appears. Check the whole address was pasted, and that the service is shared publicly. For a self-hosted server, check whether it needs whitelisting.
  • Tiles appear but in the wrong positions. The placeholder order is probably wrong — try swapping {x} and {y}.
  • The map is offset or stretched. The source map isn't in Web Mercator (EPSG:3857). It will need republishing in that projection.
  • Only some zoom levels work. The tile layer may not have been published at those levels of detail — for ArcGIS, check the Levels of Detail setting.
  • It works for you but not for colleagues or public visitors. The service is shared privately, or requires a key your visitors don't have.

If you're still stuck, send us a ticket with the address you're using and a note of which site it's for.

H
Havard is the author of this solution article.

Did you find it helpful? Yes No

Send feedback
Sorry we couldn't be helpful. Help us improve this article with your feedback.