# Basemaps

Choose from Felt's basemap options to create the perfect foundation for your data. Select from default or satellite styles, or switch between light and dark themes to provide contrast with your map layers. Turn labels on or off for a cleaner look, and use the sandwiching feature to control whether your data appears above or below basemap elements like roads and water.

For custom needs, connect external map services by adding basemaps from URL sources that support XYZ map tile format, including OpenStreetMap, MapTiler, Mapbox Studio, and ArcGIS. You can also choose a solid color basemap to make your data the focus of attention.

## Felt basemaps

Felt provides 4 basemap options for every map:

{% columns %}
{% column %}

<p align="center"><strong>Standard</strong></p>

<figure><img src="/files/mXNjB6v5qZglWKWbMm1U" alt=""><figcaption></figcaption></figure>
{% endcolumn %}

{% column %}

<p align="center"><strong>Satellite</strong></p>

<figure><img src="/files/IVf9ODZj4G6ygbTCuw4M" alt=""><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}

<p align="center"><strong>Light mode</strong></p>

<figure><img src="/files/eSOdTTUTYGJjTQUdU4yl" alt=""><figcaption></figcaption></figure>
{% endcolumn %}

{% column %}

<p align="center"><strong>Dark mode</strong></p>

<figure><img src="/files/lAyQH4Erl2GQAXYwbJ4V" alt=""><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

{% hint style="info" %}
Felt's satellite basemap is sourced from Stadia Maps. Learn more about update cadence and resolution [here](https://stadiamaps.com/products/maps/map-styles/satellite-imagery/).
{% endhint %}

Click the **Basemap** button in the top right section of the toolbar to choose from the options, control label visibility, and configure custom basemaps.

<figure><img src="/files/672HFTYYvwnvuCRcQ2qW" alt="" width="217"><figcaption></figcaption></figure>

{% hint style="info" %}
Map label control is only available for Felt-provided basemaps.

Felt automatically detects the language settings from your device and applies that language to map labels on Felt provided basemaps.

The label and halo colors for layer and annotation labels are automatically reversed when they are set to Auto and the basemap is configured to Satellite, Dark mode, or any dark custom basemap.
{% endhint %}

For more Felt options, hover over **`Add basemap`** to add a custom basemap or configure a solid color for your map's basemap. See [#add-a-custom-basemap](#add-a-custom-basemap "mention") and [#popular-custom-basemaps](#popular-custom-basemaps "mention") for more information on custom basemaps.

#### Polygon layer & basemap ordering

After selecting your basemap, you can adjust layer positioning for polygon layers using the "Position" option in the style editor. This option controls whether your data appears above or below basemap road and water features. The default for polygon layers is "Above water and roads."

{% embed url="<https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmRfGitkyjOEMvVsEyGWN%2Fuploads%2F0CZ9R6wZjj1H8wO58omU%2FScreen%20Recording%202025-03-03%20at%208.17.00%E2%80%AFAM.mp4?alt=media&token=14f83f5b-aa57-4999-a550-a8ee01ac611e>" %}

### Best practices

Here are some general recommendations when choosing a basemap in Felt:

1. **Working with more than 7 colors on your map? Try light or dark basemaps**

<figure><img src="/files/6VIG3HFcNAueSyiSFhs6" alt="" width="563"><figcaption></figcaption></figure>

<figure><img src="/files/DRCN2hz5gEIWnSDnYKbC" alt="" width="563"><figcaption></figcaption></figure>

2. **Satellite works well if you need more details from the basemap or more real-world context.**

<figure><img src="/files/fCUtw3n5AJCaeBIEKjl5" alt="" width="563"><figcaption></figcaption></figure>

<figure><img src="/files/mpfftirlsCdIfqDM3zD9" alt="" width="563"><figcaption></figcaption></figure>

3. **Select a solid color to construct your map from a blank canvas and bring your data to the foreground**

<figure><img src="/files/oqE9gqpphVFkmY2IXqYR" alt="" width="563"><figcaption></figcaption></figure>

<figure><img src="/files/wFBqU4hkw9KKoHyb0eYI" alt="" width="563"><figcaption></figcaption></figure>

## Custom basemaps

You can use your own XYZ ([“Slippy map”](https://en.wikipedia.org/wiki/Tiled_web_map)) tiles as a Felt basemap by specifying a URL. You can also set advanced options like the minimum and maximum zoom levels (see [Map settings](/dashboards-and-apps/map-settings.md#map-constraints)), so Felt knows when to stop requesting tiles and start to overzoom.

XYZ tile URLs provide a template that Felt can use to request tiles and must contain parameters for specifying the zoom level (`{z}`), tile row (`{x}`) and tile column `{y}`. Felt also supports tiles served in [TMS](https://en.wikipedia.org/wiki/Tile_Map_Service) format by specifying a negative tile column parameter `{-y}`.

{% hint style="warning" %}
Note: sharing your map with many viewers may incur in high costs or running out of credits with your tile provider or server.
{% endhint %}

Any API keys you include in the tile URL will be visible to all users. [In some services](https://blog.mapbox.com/url-restrictions-for-access-tokens-5f7f7eb90092), you can prevent other users from using your API keys or access tokens by limiting them to specific domains or URLs.

#### Add a custom basemap

{% hint style="warning" %}
Tile URLs must include space for {z}=zoom, {x}=column, and {y}=row values
{% endhint %}

1. Click the **basemap** button in the top right section of the toolbar
2. Hover **`Add basemap`** option
3. Select **`Add from URL...`** to connect custom XYZ map tiles

<figure><img src="/files/KZV4MC43rYqNwvKOTCY2" alt="" width="375"><figcaption></figcaption></figure>

4. Paste your XYZ tile URL into the **`Tile URL`** section in the popup. See [#popular-custom-basemaps](#popular-custom-basemaps "mention") for examples to add from services like OpenStreetMap, MapTiler, Mapbox Studio, or ArcGIS

<figure><img src="/files/Wq103TE2JIMw0is5vcUP" alt="" width="375"><figcaption></figcaption></figure>

4. Provide a title for your custom basemap
5. Under Additional Settings, you can:
   1. Customize the attribution text
   2. Adjust UI element colors for legibility

<figure><img src="/files/mH0ai4qJCsbrzdbbd70I" alt="" width="375"><figcaption></figcaption></figure>

7. Click **Add Basemap** to apply your custom basemap to the map

### Popular custom basemaps

Certain data providers provide a publicly accessible Tile Server URL for basemaps which can be used in Felt. These URLs can be added as layers (with [Upload Anything's XYZ raster tile support](/upload-anything/urls.md#xyz-raster-tiles)) or as custom basemaps in Felt. Too add, copy and paste the URLs listed below.

<table><thead><tr><th width="145.65625" align="center" valign="middle">Name</th><th width="168.50390625" align="center" valign="middle">Preview</th><th width="301.94140625" align="center" valign="middle">URL</th><th valign="middle">Source info</th></tr></thead><tbody><tr><td align="center" valign="middle">OpenStreetMap</td><td align="center" valign="middle"><img src="/files/wRMHRAdp1iMi8GMqZCAd" alt="" data-size="original"></td><td align="center" valign="middle"><code>https://tile.openstreetmap.org/{z}/{x}/{y}.png</code></td><td valign="middle"><a href="https://operations.osmfoundation.org/policies/tiles/">Information</a></td></tr><tr><td align="center" valign="middle"><p>Google Satellite</p><p>(no labels)</p></td><td align="center" valign="middle"><img src="/files/FYkuJ85XJNk86IsALM29" alt="" data-size="original"></td><td align="center" valign="middle"><code>https://mt1.google.com/vt/lyrs=s&#x26;x={x}&#x26;y={y}&#x26;z={z}</code></td><td valign="middle"><a href="https://cloud.google.com/maps-platform/terms">Information</a></td></tr><tr><td align="center" valign="middle"><p>Google Hybrid Satellite</p><p>(with labels)</p></td><td align="center" valign="middle"><img src="/files/H2aWBQE3wGNNLvtVAdPq" alt="" data-size="original"></td><td align="center" valign="middle"><code>https://mt1.google.com/vt/lyrs=y&#x26;x={x}&#x26;y={y}&#x26;z={z}</code></td><td valign="middle"><a href="https://cloud.google.com/maps-platform/terms">Information</a></td></tr><tr><td align="center" valign="middle">Google Roads</td><td align="center" valign="middle"><img src="/files/YPbfIugRyeJfVwN1kbsW" alt="" data-size="original"></td><td align="center" valign="middle"><code>https://mt1.google.com/vt/lyrs=h&#x26;x={x}&#x26;y={y}&#x26;z={z}</code></td><td valign="middle"><a href="https://cloud.google.com/maps-platform/terms">Information</a></td></tr><tr><td align="center" valign="middle">ESRI World Imagery</td><td align="center" valign="middle"><img src="/files/B47YBMX0niozyiXJ3cWy" alt="" data-size="original"></td><td align="center" valign="middle"><code>https://services.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}</code></td><td valign="middle"><a href="https://doc.arcgis.com/en/data-appliance/latest/maps/world-imagery.htm#ESRI_SECTION1_E1816043E992443E92DA617D50C697C9">Information</a></td></tr><tr><td align="center" valign="middle">ESRI Hillshade</td><td align="center" valign="middle"><img src="/files/Ro441Gl07DoHPlg9ELHM" alt="" data-size="original"></td><td align="center" valign="middle"><code>https://services.arcgisonline.com/arcgis/rest/services/Elevation/World_Hillshade/MapServer/tile/{z}/{y}/{x}</code></td><td valign="middle"><a href="https://doc.arcgis.com/en/data-appliance/latest/maps/world-hillshade.htm">Information</a></td></tr><tr><td align="center" valign="middle">ESRI Dark Hillshade</td><td align="center" valign="middle"><img src="/files/8LawNvBHCrjBUOosIQhu" alt="" data-size="original"></td><td align="center" valign="middle"><code>https://services.arcgisonline.com/arcgis/rest/services/Elevation/World_Hillshade_Dark/MapServer/tile/{z}/{y}/{x}</code></td><td valign="middle"><a href="https://doc.arcgis.com/en/data-appliance/latest/maps/world-hillshade-dark.htm">Information</a></td></tr><tr><td align="center" valign="middle">Stamen Watercolor</td><td align="center" valign="middle"><img src="/files/PQAjCqBICp63cpxk7IEb" alt="" data-size="original"></td><td align="center" valign="middle"><code>https://watercolormaps.collection.cooperhewitt.org/tile/watercolor/{z}/{x}/{y}.jpg</code></td><td valign="middle"><a href="https://watercolormaps.collection.cooperhewitt.org/#12/40.7847/-73.9574">Information</a></td></tr><tr><td align="center" valign="middle">USDA NAIP (USA only)</td><td align="center" valign="middle"><img src="/files/Lhg7JchRIrqhpxLAgslp" alt="" data-size="original"></td><td align="center" valign="middle"><code>https://gis.apfo.usda.gov/arcgis/rest/services/NAIP/USDA_CONUS_PRIME/ImageServer/tile/{z}/{y}/{x}</code></td><td valign="middle"><a href="https://hub.arcgis.com/datasets/e74cf6b0790e424489bbe84cbc0dc7ad/about">Information</a></td></tr><tr><td align="center" valign="middle">USGS Topo (USA only)</td><td align="center" valign="middle"><img src="/files/HvVSvvUji1Hv2zufI9SR" alt="" data-size="original"></td><td align="center" valign="middle"><code>https://basemap.nationalmap.gov/arcgis/rest/services/USGSTopo/MapServer/tile/{z}/{y}/{x}</code></td><td valign="middle"><a href="https://basemap.nationalmap.gov/arcgis/rest/services/USGSTopo/MapServer">Information</a></td></tr><tr><td align="center" valign="middle">USGS Imagery (USA only)</td><td align="center" valign="middle"><img src="/files/R4xIwKXggAzPFU3B8aYl" alt="" data-size="original"></td><td align="center" valign="middle"><code>https://basemap.nationalmap.gov/arcgis/rest/services/USGSImageryOnly/MapServer/tile/{z}/{y}/{x}</code></td><td valign="middle"><a href="https://basemap.nationalmap.gov/arcgis/rest/services/USGSImageryOnly/MapServer">Information</a></td></tr></tbody></table>

### Finding custom basemaps

Felt supports custom map basemaps via any web-based map service supporting [the popular XYZ map tile format](https://developers.planet.com/docs/planetschool/xyz-tiles-and-slippy-maps/). Compatible map tiles can be created via Mapbox Studio, found on ArcGIS servers, purchased from Planet, or found freely online via providers like Stamen.

#### **ArcGIS**

ESRI has a variety of supported global basemaps, which can be found [here](https://doc.arcgis.com/en/data-appliance/latest/maps/directory-maps-data.htm#GUID-BC631CFA-8FCF-4AAE-9365-789308697960).

Cached image services can be hosted via [ArcGIS Online](https://www.arcgis.com/index.html) or on your own organization’s server. Access individual basemap image tiles via the [Image Tile REST API](https://developers.arcgis.com/rest/services-reference/enterprise/image-tile.htm):

`https://{imageservice-url}/tile/**{z}/{y}/{x}**`

Note that the order of `{x}` and `{y}` are switched in ArcGIS compared to other services here.

{% embed url="<https://developers.arcgis.com/rest/services-reference/enterprise/image-tile/>" %}

**Sample tile URL templates**

Use these directly in Felt:

|                       |                                                                                                                 |
| --------------------- | --------------------------------------------------------------------------------------------------------------- |
| World imagery service | `https://services.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}`               |
| Dark gray basemap     | `https://services.arcgisonline.com/arcgis/rest/services/Canvas/World_Dark_Gray_Base/MapServer/tile/{z}/{y}/{x}` |

#### MapTiler

Tiles hosted by MapTiler can be used in Felt via [Raster Tiles for Leaflet JS](https://docs.maptiler.com/leaflet/raster-tiles-in-leaflet-js/)

|                                                                   |
| ----------------------------------------------------------------- |
| `https://api.maptiler.com/maps/{layer}/{z}/{x}/{y}.png?key={key}` |

{% embed url="<https://docs.maptiler.com/leaflet/examples/raster-tiles-in-leaflet-js/>" %}

#### Mapbox

Custom styles built in Mapbox can be used in Felt via the [Mapbox Static Tiles API](https://docs.mapbox.com/api/maps/static-tiles/)

You can find the username and ID for your style by looking at the “Style URL” after clicking “Share” in [Mapbox Studio](https://studio.mapbox.com). Mapbox API access tokens are available on your account page,<https://account.mapbox.com>.

<figure><img src="/files/VYKXMqiV6vX3smmVqLmO" alt=""><figcaption></figcaption></figure>

* Tile size should be set to **`256`**
* Replace z, x, y values with variables: **`{z}/{x}/{y}`**
* Add your access token to the end of the URL

Sample URL:

**`https://api.mapbox.com/styles/v1/..../tiles/256/{z}/{x}/{y}@2x?access_token=[ADD_TOKEN_HERE]`**

The Static Tiles API converts your style into raster tiles by rendering every requested tile on the server. This limits some styling capabilities and also incurs extra cost. Please refer to the [pricing section](https://docs.mapbox.com/api/maps/static-tiles/#static-tiles-api-pricing) for details.

{% embed url="<https://docs.mapbox.com/api/maps/static-tiles/>" %}

**Sample tile URL template**

Use this in Felt with your Mapbox token:

|                                                                                                                                     |
| ----------------------------------------------------------------------------------------------------------------------------------- |
| `https://api.mapbox.com/styles/v1/feltmaps/clb2k8qp0002i14p8bge81ejh/tiles/256/**{z}/{x}/{y}**@2x?access_token={YOUR_MAPBOX_TOKEN}` |

{% hint style="warning" %}
Users with whom you share a Felt map with a custom Mapbox basemap will be able to view the API token.
{% endhint %}

#### Planet

Daily satellite scenes from Planet can be accessed via [Tile Services](https://developers.planet.com/docs/basemaps/tile-services/):

`https://tiles1.planet.com/data/v1/{type}/{id}/**{z}/{x}/{y}**.png`

For non-commercial uses, Planet hosts imagery of earth’s tropical regions for [Norway's International Climate and Forests Initiative (NICFI)](https://www.planet.com/nicfi/).

{% embed url="<https://developers.planet.com/docs/basemaps/tile-services/>" %}

**Sample tile URL template**

Use this in Felt with your Planet API token:

|                                                                                                                                                                                                                                                                                                                        |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [`https://tiles3.planet.com/basemaps/v1/planet-tiles/planet_medres_normalized_analytic_2022-10_mosaic/gmap/{z}/{x}/{y}.png?api_key=YOUR_PLANET_TOKEN`](https://tiles3.planet.com/basemaps/v1/planet-tiles/planet_medres_normalized_analytic_2022-10_mosaic/gmap/%7Bz%7D/%7Bx%7D/%7By%7D.png?api_key=YOUR_PLANET_TOKEN) |

{% hint style="warning" %}
Users with whom you share a Felt map with a custom Planet basemap will be able to view the API token.
{% endhint %}

#### Stamen

Stamen Design published a selection of map layers useful for visualizing data or beautifying a map. Starting in November 2023, you need to create a Stadia Maps account to use Stamen Maps. [See here](https://stadiamaps.com/stamen/) to get started

For docs on this migration, [see here](https://docs.stadiamaps.com/guides/migrating-from-stamen-map-tiles/). Read the full announcement [here](https://maps.stamen.com/stadia-partnership/).

If you want to use the watercolor map by Stamen as a layer or basemap, use this this URL to upload:

|                                                                                      |
| ------------------------------------------------------------------------------------ |
| `https://watercolormaps.collection.cooperhewitt.org/tile/watercolor/{z}/{x}/{y}.jpg` |

#### Other Sources

* The Roblabs collection of xyz raster tiles for use in maps built for mobile devices, QGIS and Mapbox Styles: <https://github.com/roblabs/xyz-raster-sources>
* Trail Notes collection tile services: <https://www.trailnotes.org/FetchMap/TileServeSource.html> 💡 Change the uppercase “Z”, “Y”, and “X” to lowercase for these to work in Felt
* Geocaching Map Enhancements map sources:<https://geo.inge.org.uk/gme_maps.ht>[m](http://geo.inge.org.uk/gme_maps.htm)

## Frequently asked questions

<details>

<summary>How do I access basemap options?</summary>

Click the Basemap button (square map icon) in the top right section of the toolbar to choose from available options, control label visibility, and configure custom basemaps.

</details>

<details>

<summary>Where does Felt's satellite imagery come from?</summary>

Felt's satellite basemap is sourced from Stadia Maps. You can learn more about update cadence and resolution in [their documentation](https://stadiamaps.com/products/maps/map-styles/satellite-imagery/).

</details>

<details>

<summary>Can I control map labels on basemaps?</summary>

Yes, map label control is available for Felt-provided basemaps. You can toggle label visibility on or off for a cleaner look.

</details>

<details>

<summary>What language will map labels appear in?</summary>

Felt automatically detects your device's language settings and applies that language to map labels on Felt-provided basemaps.

</details>

<details>

<summary>Do labels change appearance on different basemaps?</summary>

Yes, label and halo colors for layer and annotation labels are automatically reversed when using the dark or satellite Felt basemap for better visibility.

</details>

<details>

<summary>Can I control whether my data appears above or below basemap features?</summary>

Yes! After selecting your basemap, you can adjust layer positioning for polygon layers using the "Position" option in the style editor. This controls whether your data appears above or below basemap road and water features. The default for polygon layers is "Above water and roads."

</details>

<details>

<summary>Can I add a custom satellite basemap?</summary>

Yes! Custom basemaps allow you to use your own map tiles from external sources by connecting to services that support XYZ ("Slippy map") tile format, including OpenStreetMap, MapTiler, Mapbox Studio, and ArcGIS. XYZ tile URLs provide a template that Felt uses to request map tiles. They must contain parameters for zoom level ({z}), tile row ({x}), and tile column ({y}). Felt also supports TMS format using a negative tile column parameter ({-y}).

See [#add-a-custom-basemap](#add-a-custom-basemap "mention") and [#popular-custom-basemaps](#popular-custom-basemaps "mention") for more information.

</details>

<details>

<summary>What popular basemap sources can I use?</summary>

You can add basemaps from sources like:

* OpenStreetMap
* Google (Satellite, Hybrid, Roads)
* ESRI (World Imagery, Hillshade, Dark Hillshade)
* Stamen Watercolor
* USDA NAIP (USA only)
* USGS Topo and Imagery (USA only)

</details>

<details>

<summary>Can I use XYZ tiles as data layers in the map as well?</summary>

Yes! Custom basemap URLs can be added as layers using Upload Anything's XYZ raster tile support, or as basemaps. See [URLs](/upload-anything/urls.md#xyz-raster-tiles).

</details>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.felt.com/layers/basemaps.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
