+ +
+
+

Maps

+ +
+
+ +
+
+
+
    +
  • +
    + + + + MGLAccountManager + +
    +
    +
    +
    +

    The MGLAccountManager object provides a global way to set a Mapbox API access +token.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface MGLAccountManager : NSObject
    + +
    +
    +

    Swift

    +
    class MGLAccountManager : NSObject
    + +
    +
    + +
    +
    +
  • +
+
+
+
    +
  • +
    + + + + MGLMapCamera + +
    +
    +
    +
    +

    An MGLMapCamera object represents a viewpoint from which the user observes +some point on an MGLMapView.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface MGLMapCamera : NSObject <NSSecureCoding, NSCopying>
    + +
    +
    +

    Swift

    +
    class MGLMapCamera : NSObject, NSSecureCoding, NSCopying
    + +
    +
    + +
    +
    +
  • +
+
+
+
    +
  • +
    + + + + MGLMapView + +
    +
    +
    +
    +

    An interactive, customizable map view with an interface similar to the one +provided by Apple’s MapKit.

    + +

    Using MGLMapView, you can embed the map inside a view, allow users to +manipulate it with standard gestures, animate the map between different +viewpoints, and present information in the form of annotations and overlays.

    + +

    The map view loads scalable vector tiles that conform to the +Mapbox Vector Tile Specification. +It styles them with a style that conforms to the +Mapbox Style Specification. +Such styles can be designed in +Mapbox Studio and hosted on +mapbox.com.

    + +

    A collection of Mapbox-hosted styles is available through the MGLStyle class. +These basic styles use +Mapbox Streets +or Mapbox Satellite data +sources, but you can specify a custom style that makes use of your own data.

    + +

    Mapbox-hosted vector tiles and styles require an API access token, which you +can obtain from the +Mapbox account page. +Access tokens associate requests to Mapbox’s vector tile and style APIs with +your Mapbox account. They also deter other developers from using your styles +without your permission.

    + +

    Adding your own gesture recognizer to MGLMapView will block the corresponding +gesture recognizer built into MGLMapView. To avoid conflicts, define which +gesture recognizer takes precedence. For example, you can subclass +NSClickGestureRecognizer and override -[NSGestureRecognizer shouldRequireFailureOfGestureRecognizer:], +so that your subclass will be invoked only if the default MGLMapView click +gesture recognizer fails:

    +
    class MapClickGestureRecognizer: NSClickGestureRecognizer {
    +    override func shouldRequireFailure(of otherGestureRecognizer: NSGestureRecognizer) -> Bool {
    +        return otherGestureRecognizer is NSClickGestureRecognizer
    +    }
    +}
    +
    +
    +

    Note

    + You are responsible for getting permission to use the map data and for +ensuring that your use adheres to the relevant terms of use. + +
    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface MGLMapView : NSView
    + +
    +
    +

    Swift

    +
    class MGLMapView : NSView
    + +
    +
    + +
    +
    +
  • +
+
+
+
    +
  • +
    + + + + MGLMapViewDelegate + +
    +
    +
    +
    +

    The MGLMapViewDelegate protocol defines a set of optional methods that you +can use to receive messages from an MGLMapView instance. Because many map +operations require the MGLMapView class to load data asynchronously, the map +view calls these methods to notify your application when specific operations +complete. The map view also uses these methods to request information about +annotations displayed on the map, such as the styles and interaction modes to +apply to individual annotations.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol MGLMapViewDelegate <NSObject>
    + +
    +
    +

    Swift

    +
    protocol MGLMapViewDelegate : NSObjectProtocol
    + +
    +
    + +
    +
    +
  • +
+
+
+
    +
  • +
    + + + + MGLMapSnapshot + +
    +
    +
    +
    +

    An image generated by a snapshotter object.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface MGLMapSnapshot : NSObject
    + +
    +
    +

    Swift

    +
    class MGLMapSnapshot : NSObject
    + +
    +
    + +
    +
    +
  • +
  • +
    + + + + MGLMapSnapshotOptions + +
    +
    +
    +
    +

    The options to use when creating images with the MGLMapSnapshotter.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface MGLMapSnapshotOptions : NSObject
    + +
    +
    +

    Swift

    +
    class MGLMapSnapshotOptions : NSObject
    + +
    +
    + +
    +
    +
  • +
  • +
    + + + + MGLMapSnapshotter + +
    +
    +
    +
    +

    An MGLMapSnapshotter generates static raster images of the map. Each snapshot +image depicts a portion of a map defined by an MGLMapSnapshotOptions object +you provide. The snapshotter generates an MGLMapSnapshot object +asynchronously, passing it into a completion handler once tiles and other +resources needed for the snapshot are finished loading.

    + +

    You can change the snapshotter’s options at any time and reuse the snapshotter +for multiple distinct snapshots; however, the snapshotter can only generate one +snapshot at a time. If you need to generate multiple snapshots concurrently, +create multiple snapshotter objects.

    + +

    For an interactive map, use the MGLMapView class. Both MGLMapSnapshotter +and MGLMapView are compatible with offline packs managed by the +MGLOfflineStorage class.

    + +

    From a snapshot, you can obtain an image and convert geographic coordinates to +the image’s coordinate space in order to superimpose markers and overlays. If +you do not need offline map functionality, you can use the Snapshot class in +MapboxStatic.swift to generate +static map images with overlays.

    +

    Example

    +
    let camera = MGLMapCamera(lookingAtCenter: CLLocationCoordinate2D(latitude: 37.7184, longitude: -122.4365), fromDistance: 100, pitch: 20, heading: 0)
    +
    +let options = MGLMapSnapshotOptions(styleURL: MGLStyle.satelliteStreetsStyleURL, camera: camera, size: CGSize(width: 320, height: 480))
    +options.zoomLevel = 10
    +
    +let snapshotter = MGLMapSnapshotter(options: options)
    +snapshotter.start { (snapshot, error) in
    +    if let error = error {
    +        fatalError(error.localizedDescription)
    +    }
    +
    +    image = snapshot?.image
    +}
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface MGLMapSnapshotter : NSObject
    + +
    +
    +

    Swift

    +
    class MGLMapSnapshotter : NSObject
    + +
    +
    + +
    +
    +
  • +
+
+
+
+ +