Similar to caching tiles in memory, we should also support caching of tiles to disk.
I imagine this would be a different implementation of IAsyncRequest.
In solving for this, we have to keep in mind the Mapbox ToS:
You may cache Map Assets on end-user devices (e.g., laptops, smartphones, or tablets) for offline use, but each device must populate its cache using direct requests to the Mapping APIs and content from a cache may only be consumed by a single end user. On mobile devices, you may only cache up to the limits set in the Mobile SDKs, and you may not circumvent or change those limits. You may not redistribute Map Assets, including from a cache, by proxying, or by using a screenshot or other static image instead of accessing Map Assets through the Mapping APIs. You may not scrape or download Map Assets in bulk for any purpose other than offline caching on a single end user’s device.
An app can download multiple regions for offline use, but the total offline download is capped at a maximum tile count “ceiling” across all downloaded regions. The tile ceiling is set to 6,000 tiles by default but can be raised for paid plans.
Similar to caching tiles in memory, we should also support caching of tiles to disk.
I imagine this would be a different implementation of
IAsyncRequest.In solving for this, we have to keep in mind the Mapbox ToS: