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:
Sourcing tiles from the filesystem or asset store: Local Tile Providers
Using a plugin that instructs you to do so (Creating New Tile Providers)
Network Tile Provider
NetworkTileProvider
takes two arguments, but you'll usually never need to specify them:
httpClient
: customBaseClient
By default, aRetryClient
backed by a standardClient
is usedheaders
: customMap<String, String>
By default, only the default headers, plus a custom 'User-Agent' header based on the userAgentPackageName property, are included with each request
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
AssetTileProvider
This tile providers uses the templateUrl
to get the appropriate tile from the asset store of the application.
FileTileProvider
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
Offline MappingLast updated