Skip to content

Latest commit

 

History

History
149 lines (88 loc) · 4.45 KB

OfflineManager.md

File metadata and controls

149 lines (88 loc) · 4.45 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')

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();

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')