Skip to content

Latest commit

 

History

History
182 lines (106 loc) · 5.12 KB

OfflineManager.md

File metadata and controls

182 lines (106 loc) · 5.12 KB

<MapboxGL.offlineManager />

OfflineManager implements a singleton (shared object) that manages offline packs.
All of this class’s instance methods are asynchronous, reflecting the fact that offline resources are stored in a database.
The shared object maintains a canonical collection of offline packs.

methods

createPack(options[, progressListener][, errorListener])

Creates and registers an offline pack that downloads the resources needed to use the given region offline.

arguments
Name Type Required Description
options OfflineCreatePackOptions Yes Create options for a offline pack that specifices zoom levels, style url, and the region to download.
progressListener Callback No Callback that listens for status events while downloading the offline resource.
errorListener Callback No Callback that listens for status events while downloading the offline resource.
const progressListener = (offlineRegion, status) => console.log(offlineRegion, status);
const errorListener = (offlineRegion, err) => console.log(offlineRegion, err);

await MapboxGL.offlineManager.createPack({
  name: 'offlinePack',
  styleURL: 'mapbox://...',
  minZoom: 14,
  maxZoom: 20,
  bounds: [[neLng, neLat], [swLng, swLat]]
}, progressListener, errorListener)

deletePack(name)

Unregisters the given offline pack and allows resources that are no longer required by any remaining packs to be potentially freed.

arguments
Name Type Required Description
name String Yes Name of the offline pack.
await MapboxGL.offlineManager.deletePack('packName')

resetDatabase()

Deletes the existing database, which includes both the ambient cache and offline packs, then reinitializes it.

arguments
Name Type Required Description
await MapboxGL.offlineManager.resetDatabase();

getPacks()

Retrieves all the current offline packs that are stored in the database.

arguments
Name Type Required Description
const offlinePacks = await MapboxGL.offlineManager.getPacks();

getPack(name)

Retrieves an offline pack that is stored in the database by name.

arguments
Name Type Required Description
name String Yes Name of the offline pack.
const offlinePack = await MapboxGL.offlineManager.getPack();

mergeOfflineRegions(path)

Sideloads offline db

arguments
Name Type Required Description
path String Yes Path to offline tile db on file system.
await MapboxGL.offlineManager.mergeOfflineRegions(path);

setTileCountLimit(limit)

Sets the maximum number of Mapbox-hosted tiles that may be downloaded and stored on the current device.
The Mapbox Terms of Service prohibits changing or bypassing this limit without permission from Mapbox.

arguments
Name Type Required Description
limit Number Yes Map tile limit count.
MapboxGL.offlineManager.setTileCountLimit(1000);

setProgressEventThrottle(throttleValue)

Sets the value at which download status events will be sent over the React Native bridge.
These events happening very very fast default is 500ms.

arguments
Name Type Required Description
throttleValue Number Yes event throttle value in ms.
MapboxGL.setProgressEventThrottle(500);

subscribe(packName, progressListener, errorListener)

Subscribe to download status/error events for the requested offline pack.
Note that createPack calls this internally if listeners are provided.

arguments
Name Type Required Description
packName String Yes Name of the offline pack.
progressListener Callback Yes Callback that listens for status events while downloading the offline resource.
errorListener Callback Yes Callback that listens for status events while downloading the offline resource.
const progressListener = (offlinePack, status) => console.log(offlinePack, status)
const errorListener = (offlinePack, err) => console.log(offlinePack, err)
MapboxGL.offlineManager.subscribe('packName', progressListener, errorListener)

unsubscribe(packName)

Unsubscribes any listeners associated with the offline pack.
It's a good idea to call this on componentWillUnmount.

arguments
Name Type Required Description
packName String Yes Name of the offline pack.
MapboxGL.offlineManager.unsubscribe('packName')