iOS SDK

API Reference

On This Page

Offline Maps

MGLOfflineRegion

An object conforming to the MGLOfflineRegion protocol determines which resources are required by an MGLOfflinePack object.

See more

Declaration

Objective-C

@protocol MGLOfflineRegion <NSObject>

Swift

protocol MGLOfflineRegion : NSObjectProtocol

MGLOfflineStorage

MGLOfflineStorage implements a singleton (shared object) that manages offline packs and ambient caching. 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 in its packs property.

Mapbox resources downloaded via this API are subject to separate Vector Tile and Raster Tile API pricing and are not included in the Maps SDK’s “unlimited” requests. See our pricing page for more information.

See more

Declaration

Objective-C

@interface MGLOfflineStorage : NSObject

Swift

class MGLOfflineStorage : NSObject

MGLOfflinePack

An MGLOfflinePack represents a collection of resources necessary for viewing a region offline to a local database.

To create an instance of MGLOfflinePack, use the +[MGLOfflineStorage addPackForRegion:withContext:completionHandler:] method. A pack created using -[MGLOfflinePack init] is immediately invalid.

Example

MGLOfflineStorage.shared.addPack(for: region, withContext: context) { (pack, error) in
guard let pack = pack else {
    // If adding the pack fails, log an error to console.
    print("Error:", error?.localizedDescription ?? "unknown error adding pack at \(#file)(\(#line)) in \(#function)")
    return
}

// Start an MGLOfflinePack download
pack.resume()
}

See more

Declaration

Objective-C

@interface MGLOfflinePack : NSObject

Swift

class MGLOfflinePack : NSObject

MGLOfflinePackProgress

A structure containing information about an offline pack’s current download progress.

See more

Declaration

Objective-C

struct MGLOfflinePackProgress {}

Swift

struct MGLOfflinePackProgress

MGLOfflinePackProgress

A structure containing information about an offline pack’s current download progress.

See more

Declaration

Objective-C

typedef struct MGLOfflinePackProgress MGLOfflinePackProgress

MGLOfflinePackState

The state an offline pack is currently in.

See more

Declaration

Objective-C

enum MGLOfflinePackState {}

Swift

enum MGLOfflinePackState : Int

MGLTilePyramidOfflineRegion

An offline region defined by a style URL, geographic coordinate bounds, and range of zoom levels.

To minimize the resources required by an irregularly shaped offline region, use the MGLShapeOfflineRegion class instead.

Example

let northeast = CLLocationCoordinate2D(latitude: 40.989329, longitude: -102.062592)
let southwest = CLLocationCoordinate2D(latitude: 36.986207, longitude: -109.049896)
let bbox = MGLCoordinateBounds(sw: southwest, ne: northeast)

let region = MGLTilePyramidOfflineRegion(styleURL: MGLStyle.lightStyleURL, bounds: bbox, fromZoomLevel: 11, toZoomLevel: 14)
let context = "Tile Pyramid Region".data(using: .utf8)
MGLOfflineStorage.shared.addPack(for: region, withContext: context!)

See more

Declaration

Objective-C

@interface MGLTilePyramidOfflineRegion
: NSObject <MGLOfflineRegion, NSSecureCoding, NSCopying>

Swift

class MGLTilePyramidOfflineRegion : NSObject, MGLOfflineRegion, NSSecureCoding, NSCopying

MGLShapeOfflineRegion

An offline region defined by a style URL, geographic shape, and range of zoom levels.

Example

var coordinates = [
CLLocationCoordinate2D(latitude: 45.522585, longitude: -122.685699),
CLLocationCoordinate2D(latitude: 45.534611, longitude: -122.708873),
CLLocationCoordinate2D(latitude: 45.530883, longitude: -122.678833)
]

let triangle = MGLPolygon(coordinates: &coordinates, count: UInt(coordinates.count))
let region = MGLShapeOfflineRegion(styleURL: MGLStyle.lightStyleURL, shape: triangle, fromZoomLevel: 11, toZoomLevel: 14)
let context = "Triangle Region".data(using: .utf8)
MGLOfflineStorage.shared.addPack(for: region, withContext: context!)

This class requires fewer resources than MGLTilePyramidOfflineRegion for irregularly shaped regions.

See more

Declaration

Objective-C

@interface MGLShapeOfflineRegion
: NSObject <MGLOfflineRegion, NSSecureCoding, NSCopying>

Swift

class MGLShapeOfflineRegion : NSObject, MGLOfflineRegion, NSSecureCoding, NSCopying