# Using Mapbox

{% hint style="info" %}
'flutter\_map' is in no way associated or related with Mapbox.

Mapbox's Maps home page: [mapbox.com/maps](https://www.mapbox.com/maps)\
Mapbox's Maps pricing page: [mapbox.com/pricing#maps](https://www.mapbox.com/pricing#maps)\
Mapbox's Maps documentation: [docs.mapbox.com/api/maps/static-tiles](https://docs.mapbox.com/api/maps/static-tiles)
{% endhint %}

To display their map tiles, Mapbox usually provides a 'Style URL' for map styles. However, to integrate with 3rd-party APIs, they also provide a 'CARTO Integration URL', and tiles requested through this endpoint consume the 'Static Tiles API' quota. This URL needs no extra configuration to integrate with flutter\_map.

The maximum zoom level that Mapbox supports is 22, so it is recommended to set `maxNativeZoom` or `maxZoom` as such.

{% hint style="warning" %}
Attribution is required, see [docs.mapbox.com/help/getting-started/attribution](https://docs.mapbox.com/help/getting-started/attribution/).

Consider using the [#richattributionwidget](https://docs.fleaflet.dev/v6/layers/attribution-layer#richattributionwidget "mention"), which meets the requirements by supporting both logo and text attribution.
{% endhint %}

## Integration

### Custom Styles

Mapbox supports creating and using custom styled maps through Studio.

1. Create a custom style using the editor
2. Click "Share...", or the share icon
3. Choose between Draft or Production
4. Scroll to the bottom of the dialog, and choose Third Party
5. Select "CARTO" from the dropdown menu
6. Click the copy button to copy the template URL

<figure><img src="https://373614876-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6crWs9H40DxNQrzXYdrt%2Fuploads%2Fe8bOsRiquLVzE4Q9U3ib%2FScreenshot%202023-08-13%20221600.png?alt=media&#x26;token=dea7f761-ed31-496b-b24b-f4dc07b163cf" alt="" width="563"><figcaption></figcaption></figure>

#### Configuring [Retina Mode](https://docs.fleaflet.dev/v6/layers/tile-layer#retina-mode)

The URL includes an '@2x' string, which forces usage of high-definition tiles on all displays, without extra setup.

Should you need to let flutter\_map interfere, and only use retina tiles on retina/high-density displays, replace it with the '{r}' placeholder, then see [#retina-mode](https://docs.fleaflet.dev/v6/layers/tile-layer#retina-mode "mention") for more information.

### Prebuilt Styles

Mapbox offers a variety of ready-made map styles that don't require customization. An example URL can be found in [the example here](https://docs.mapbox.com/api/maps/static-tiles/#example-request-retrieve-raster-tiles-from-styles).

This URL should be used as above, although you may need to insert the placeholders manually.
