Tile Providers

The tileProvider parameter in TileLayer takes a TileProvider object specifying a tile provider to use for that layer.

This has a default of NetworkTileProvider which gets tiles from the internet through a dedicated image provider.

There's two situations in which you'll need to change the tile provider:

Network Tile Provider

NetworkTileProvider takes two arguments, but you'll usually never need to specify them:

  • httpClient: custom BaseClient By default, a RetryClient backed by a standard Client is used

Local Tile Providers

These tile providers use the templateUrl to get the appropriate tile from the asset store of the application, or from a file on the users device, respectively.

Specifying any fallbackUrl (even if it is not used) in the TileLayer will reduce the performance of these providers.

It will cause 23% slower asset tile requests with AssetTileProvider, and will cause main thread blocking when requesting tiles from FileTileProvider.

AssetTileProvider

This tile providers uses the templateUrl to get the appropriate tile from the asset store of the application.

FileTileProvider

This tile providers uses the templateUrl to get the appropriate tile from the a path/directory/file on the user's device - either internal application storage or external storage.

On the web, FileTileProvider() will throw an UnsupportedError when a tile request is attempted, due to the lack of the web platform's access to the local filesystem.

If you know you are running on the web platform, use a NetworkTileProvider or a custom tile provider.

Offline Mapping

Last updated

© flutter_map Authors & Maintainers