flutter_map Integration
Stores also have the method
getTileProvider()
. This is the point of integration with flutter_map, providing browse caching through a custom image provider, and can be used as so:import 'package:flutter_map/flutter_map.dart';
TileLayer(
// Other parameters still necessary, as normal
// templateUrl: ...
tileProvider: FMTC.instance('storeName').getTileProvider(),
),
This method (and others) optionally take a
FMTCTileProviderSettings
. These configure the behaviour of the tile provider. Defaults to the settings specified in the Global Settings, or the package default (see table below) if that is not specified.FMTCTileProviderSettings
can take the following arguments:Parameter
Description
Determine the logic used during handling storage and retrieval of browse caching
Default
CacheBehavior.cacheFirst
Parameter
cachedValidDuration
: Duration
Description
Length of time a tile remains valid, after which it must be fetched again (ignored in
onlineFirst
mode)Default
const Duration(days: 16)
Parameter
maxStoreLength
: int
Description
Maximum number of tiles allowed in a cache store (deletes oldest tile)
Default
0
: disabledParameter
obscuredQueryParams
: List<String>
Description
Default
[]
: emptyThis enumerable contains 3 values, which are used to dictate which logic should be used to store and retrieve tiles from the store.
Value | Explanation |
---|---|
cacheFirst | Get tiles from the local cache if possible. Only uses the Internet if it doesn't exist, or to update it if it has expired. |
onlineFirst | Get tiles from the Internet if possible. Updates every cached tile every time it is fetched (ignores expiry). |
cacheOnly | Only get tiles from the local cache, and throw an error if not found. Recommended for dedicated offline modes. |
This feature was added in v7.1.1. Upgrade to that version or later to use this functionality.
If you've got a value (such as a token or a key) in the URL's query parameters (the key-value pairs list found after the '?') that you need to keep secret or that changes frequently, make use of
obscuredQueryParams
.Pass it the list of query keys who's values need to be removed/ommitted/obscured in storage. For example, 'api_key' would remove the 'api_key', and any other characters until the next key-value pair, or the end of the URL, as seen below:
https://tile.myserver.com/{z}/{x}/{y}?api_key=001239876&mode=dark
https://tile.myserver.com/{z}/{x}/{y}?&mode=dark
Since v3, FMTC relies on URL equality to find tiles within a store during browsing. This method is therefore necessary in cases where a token changes periodically.
Last modified 1mo ago