#import #import #import "MGLFoundation.h" #import "MGLTypes.h" #import "MGLGeometry.h" NS_ASSUME_NONNULL_BEGIN @class MGLAnnotationImage; @class MGLMapCamera; @class MGLStyle; @class MGLShape; @protocol MGLAnnotation; @protocol MGLMapViewDelegate; @protocol MGLOverlay; @protocol MGLFeature; /** 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: ```swift 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. */ MGL_EXPORT IB_DESIGNABLE @interface MGLMapView : NSView #pragma mark Creating Instances /** Initializes and returns a newly allocated map view with the specified frame and the default style. @param frame The frame for the view, measured in points. @return An initialized map view. */ - (instancetype)initWithFrame:(NSRect)frame; /** Initializes and returns a newly allocated map view with the specified frame and style URL. @param frame The frame for the view, measured in points. @param styleURL URL of the map style to display. The URL may be a full HTTP or HTTPS URL, a Mapbox URL indicating the style’s map ID (`mapbox://styles//