The Mapbox iOS SDK is an open-source framework for embedding interactive map views with scalable, customizable vector maps into Cocoa Touch applications on iOS 7.0 and above using Objective-C, Swift, or Interface Builder. It takes stylesheets that conform to the Mapbox Style Specification, applies them to vector tiles that conform to the Mapbox Vector Tile Specification, and renders them using OpenGL.

Styles and data

A new runtime styling API allows you to adjust the style and content of the base map dynamically. All the options available in Mapbox Studio are now exposed via MGLStyle and subclasses of MGLStyleLayer and MGLSource. (#5727)

MGLMapView’s styleURL property can now be set to an absolute file URL. (#6026)

When creating an MGLShapeSource, you can now specify options for clustering point features within the shape source. Similarly, GeoJSON sources specified by the stylesheet at design time can specify the cluster, clusterMaxZoom, and clusterRadius attributes. (#5724)

Added quadkey support and limited WMS support in raster tile URL templates. (#5628)

When creating an MGLTileSource, you can now specify that the tile URLs use TMS coordinates by setting MGLTileSourceOptionTileCoordinateSystem to MGLTileCoordinateSystemTMS. TileJSON files can specify "scheme": "tms". (#2270)

Fixed an issue causing abstract MGLMultiPointFeature objects to be returned in feature query results. Now concrete MGLPointCollectionFeature objects are returned. MGLMultiPointFeature is now an alias of MGLPointCollectionFeature. (#6742)

Fixed rendering artifacts and missing glyphs that occurred after viewing a large number of CJK characters on the map. (#5908)

-[MGLMapView resetPosition] now resets to the current style’s default center coordinates, zoom level, direction, and pitch, if specified. (#6127)

Fixed an issue where feature querying sometimes failed to return the expected features when the map was tilted. (#6773)

MGLFeature’s attributes and identifier properties are now writable. (#6728)

The action sheet that appears when tapping the information button in the bottom-right corner now lists the correct attribution for the current style. (#5999)

Added support for MGLSymbolStyleLayer’s textPitchAlignment property and the corresponding style JSON property for improved street label legibility on a tilted map. (#5288)

Added support for MGLSymbolStyleLayer’s iconTextFit and iconTextFitPadding properties and the corresponding style JSON properties, allowing the background of a shield to automatically resize to fit the shield’s text. (#5334)

Added support for MGLSymbolStyleLayer’s circlePitchScale property and the corresponding style JSON property, allowing circle features in a tilted base map to scale or remain the same size as the viewing distance changes. (#5576)

The identifier property of an MGLFeature may now be either a number or string. (#5514)

If MGLMapView is unable to obtain or parse a style, it now calls its delegate’s -mapViewDidFailLoadingMap:withError: method. (#6145)

Added the -[MGLMapViewDelegate mapView:didFinishLoadingStyle:] delegate method, which offers the earliest opportunity to modify the layout or appearance of the current style before the map view is displayed to the user. (#6636)

Fixed crashes that could occur when loading a malformed stylesheet. (#5736)