-
The
See moreMGLAccountManager
object provides a global way to set a Mapbox API access token.Declaration
Objective-C
@interface MGLAccountManager : NSObject
Swift
class MGLAccountManager : NSObject
-
An
MGLMapCamera
object represents a viewpoint from which the user observes some point on anMGLMapView
.#### Related examples See the Camera animation example to learn how to create a camera that rotates around a central point. See the Restrict map panning to an area example to learn how to restrict map panning using
See moreMGLMapViewDelegate
‘s-mapView:shouldChangeFromCamera:toCamera:
method.Declaration
Objective-C
@interface MGLMapCamera : NSObject <NSSecureCoding, NSCopying>
Swift
class MGLMapCamera : NSObject, NSSecureCoding, NSCopying
-
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 intoMGLMapView
. To avoid conflicts, define which gesture recognizer takes precedence. For example, you can subclassNSClickGestureRecognizer
and override-[NSGestureRecognizer shouldRequireFailureOfGestureRecognizer:]
, so that your subclass will be invoked only if the defaultMGLMapView
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.Declaration
Objective-C
@interface MGLMapView : NSView
Swift
class MGLMapView : NSView
-
The
See moreMGLMapViewDelegate
protocol defines a set of optional methods that you can use to receive messages from anMGLMapView
instance. Because many map operations require theMGLMapView
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.Declaration
Objective-C
@protocol MGLMapViewDelegate <NSObject>
Swift
protocol MGLMapViewDelegate : NSObjectProtocol
-
An image generated by a snapshotter object.
See moreDeclaration
Objective-C
@interface MGLMapSnapshot : NSObject
Swift
class MGLMapSnapshot : NSObject
-
The options to use when creating images with the
See moreMGLMapSnapshotter
.Declaration
Objective-C
@interface MGLMapSnapshotOptions : NSObject
Swift
class MGLMapSnapshotOptions : NSObject
-
An
MGLMapSnapshotter
generates static raster images of the map. Each snapshot image depicts a portion of a map defined by anMGLMapSnapshotOptions
object you provide. The snapshotter generates anMGLMapSnapshot
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. BothMGLMapSnapshotter
andMGLMapView
are compatible with offline packs managed by theMGLOfflineStorage
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), altitude: 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 }
Related examples
See the Create a static map snapshot example to learn how to use the
See moreMGLMapSnapshotter
to generate a static image based on anMGLMapView
object’s style, camera, and view bounds.Declaration
Objective-C
@interface MGLMapSnapshotter : NSObject
Swift
class MGLMapSnapshotter : NSObject