#import #import #import "MGLGeometry.h" NS_ASSUME_NONNULL_BEGIN /** Options for enabling debugging features in an MGLMapView instance. */ typedef NS_OPTIONS(NSUInteger, MGLMapDebugMaskOptions) { /** Edges of tile boundaries are shown as thick, red lines to help diagnose tile clipping issues. */ MGLMapDebugTileBoundariesMask = 1 << 1, /** Each tile shows its tile coordinate (x/y/z) in the upper-left corner. */ MGLMapDebugTileInfoMask = 1 << 2, /** Each tile shows a timestamp indicating when it was loaded. */ MGLMapDebugTimestampsMask = 1 << 3, /** Edges of glyphs and symbols are shown as faint, green lines to help diagnose collision and label placement issues. */ MGLMapDebugCollisionBoxesMask = 1 << 4, /** Each drawing operation is replaced by a translucent fill. Overlapping drawing operations appear more prominent to help diagnose overdrawing. @note This option does nothing in Release builds of the SDK. */ MGLMapDebugOverdrawVisualizationMask = 1 << 5, /** The stencil buffer is shown instead of the color buffer. @note This option does nothing in Release builds of the SDK. */ MGLMapDebugStencilBufferMask = 1 << 6, }; @class MGLAnnotationImage; @class MGLMapCamera; @class MGLStyle; @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. @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. */ 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//