- Fixed crash caused by annotation image with non-integer width or height (#3031)
- Tracking Mode Reverses Bearing Fix (#3664)
- GPS Extra Rotation Fix (#3661)
- Added new methods for getting and setting the min and max zoom levels:
getMinZoom
,setMinZoom
,getMaxZoom
,setMaxZoom
. (#509)
- Camera API Callback Improvements (#3412)
- Coordinate Deprecated For LatLng (#3309)
- Responsive User Dot Location Tracking (#2049)
- Added Camera API (#3244)
- Custom Layer Support (#3248)
- Reverse Tilt Gesutre Detection (#3245)
- Decoupled Location Provider (#2954)
- Added Tilt / Pitch Support (#2805)
- Keep InfoWindow Open When Panning (#3121)
- Concurrent Multiple Open InfoWindows (#3115)
- OkHttp Replace curl (#2856)
- GPS and Compass Customization Support (#2858)
- New User Dot location graphics (#2732)
- Custom Drawable Markers (#2744)
MapView.setOnInfoWindowClickListener()
support (#2448)- Completed Annotations API (#1716)
- Satellite Streets Style (#2739)
- RESOLVED Black Screen On Ice Cream Sandwich and Jelly Bean devices (#2802)
- Initial Android release.
Known issues:
- Black Screen On Ice Cream Sandwich and Jelly Bean devices (#2802)
- Resolved in 2.2.0
- Offline packs can now be downloaded to allow users to view specific regions of the map offline. A new MGLOfflineStorage class provides APIs for managing MGLOfflinePacks. (#4221)
- The user dot no longer disappears after panning the map across the antimeridian at low zoom levels. (#4275)
- The map no longer recoils when panning quickly at low zoom levels. (#4214)
- An icon laid out along a line no longer appears if it would extend past the end of the line. Some one-way arrows no longer point the wrong way. (#3839)
- Fixed warping of dashed lines near sharp corners. (#3914)
- Telemetry location gathering now occurs only when the device is in motion. (#4115)
- An account’s monthly active users metric only counts a user once a map view is displayed to that user. (#3713)
- Updated documentation to reflect the requirement that you must embed the framework in the “Embedded Binaries” section in Xcode. (#4011)
- Polygons and polylines now default to using the map view’s tint color. (#4028)
- The user dot no longer lags when panning the map. (#3683)
- The Improve This Map tool now uses the same zoom level that is currently being shown in the map view. (#4068)
- Fixed a formatting issue in the documentation for
MGLCoordinateBoundsIsEmpty()
. (#3958)
- You can once again install the static framework without manually linking several framework and library dependencies. (#4029)
- The location manager used by MGLMapView to show the user’s location is now paused when the application is sent to the background. (#4034)
- Corrected the dynamic framework’s minimum deployment target to iOS 8.0. (#3872)
- Fixed Fabric compatibility. (#3847)
- Fixed a crash that can occur when reselecting an annotation. (#3881)
- Fixed an issue preventing the Latitude inspectable from working when it is set before setting the Zoom Level inspectable in Interface Builder. (#3886)
- Fixed an issue that incorrectly expanded the tappable area of an annotation and prevented the annotation’s alignment rect insets from having any effect on the tappable area. (#3898)
- Fixed an issue preventing
-[MGLMapViewDelegate mapView:tapOnCalloutForAnnotation:]
from being called when a non-custom callout view is tapped. (#3875)
- The SDK is now distributed as a dynamic framework instead of a static library, resulting in a simpler installation workflow and significantly reduced download size. The framework contains both simulator and device content. If you install the dynamic framework manually, you’ll need to strip out the simulator content before submitting your application to the App Store due to an Xcode bug; see the installation instructions included with the framework for details. (#3183)
- Fixed an issue causing the entire MGLMapView to leak. (#3448)
MGLMapView
methods that alter the viewport now accept optional completion handlers. (#3090)- You can now modify an annotation’s image after adding the annotation to the map. (#3146)
- Tapping now selects annotations more reliably. Tapping near the top of a large annotation image now selects that annotation. An annotation image’s alignment insets influence how far away the user can tap and still select the annotation. For example, if your annotation image has a large shadow, you can keep that shadow from being tappable by excluding it from the image’s alignment rect. (#3261)
- Annotations remain visible after switching to a different style. (#3049)
- The minimum and maximum zoom levels can now be configured using the
minimumZoomLevel
andmaximumZoomLevel
properties, respectively. The map is no longer limited to zoom level 18: by default, the maximum zoom level is now 20, allowing for a more detailed map in urban areas. (#3712) - A new method on MGLMapView,
-flyToCamera:withDuration:completionHandler:
, lets you transition between viewpoints along an arc as if by aircraft. (#3171, #3301) - MGLMapCamera’s
altitude
values now match those of MKMapCamera. (#3362) - MGLMapView properties like
centerCoordinate
andcamera
now offset the center to account for any translucent top or bottom bar. As a result, when user tracking is enabled and the map view is an immediate child of a view controller, the user dot is centered in the unobscured portion of the map view. To override this offset, modify thecontentInset
property; you may also need to set the containing view controller’sautomaticallyAdjustsScrollViewInsets
property toNO
. (#3583) - In user tracking mode, the user dot stays in a fixed position within MGLMapView while the map pans smoothly. A new property,
userLocationVerticalAlignment
, determines the user dot’s fixed position. (#3589) - When the user tracking mode is set to
MGLUserTrackingModeFollowWithCourse
, an optionaltargetCoordinate
is kept within sight at all times as the user changes location. This property, in conjunction with theuserLocationVerticalAlignment
property, may be useful for displaying the user’s progress toward a waypoint. (#3680) - Heading or course tracking mode can now be enabled as soon as an MGLMapView is initialized. (#3680)
- Zooming and rotation gestures no longer disable user tracking mode. (#3589)
- User tracking mode starts out at a lower zoom level by default. (#3589)
- Fixed an issue with small map views not properly fitting annotations within bounds. (#3407)
- When the user rotates the map to within 7° of true north, the map view now snaps to true north. (#3403)
- The map view’s background can now be transparent or translucent, as long as the style’s background layer is transparent or translucent and
MGLMapView.opaque
is set toNO
. (#3096) - Documentation is now generated by jazzy instead of appledoc. ♪♫ (#3203)
- New API to provide a custom callout view to the map for annotations. (#3456)
- Made telemetry on/off setting available in-app. (#3445)
- Fixed an issue with users not being counted by Mapbox if they had disabled telemetry. (#3495)
- Fixed crash caused by MGLAnnotationImage with non-integer width or height (#2198)
- Fixed “include of non-modular header” errors in Swift projects managed by CocoaPods. (#3679)
- Avoids triggering the blue background location status bar when user has granted "when in use" permission. (#3671)
- Deprecated the
debugActive
property and-toggleDebug
method on MGLMapView in favor of a newdebugMask
property that exposes individual style debugging options. (#3742)
- Fixed CoreTelephony.framework crash. (#3170)
- Fixed an issue preventing the compass from responding to taps after the compass is moved programmatically. (#3117)
- CocoaPods is now distributed via a (static) framework. (#3181)
- If you install this SDK via CocoaPods, CocoaPods version 0.38.0 or above is required. (#2132)
- The
styleID
property has been removed from MGLMapView. Instead, set thestyleURL
property to an NSURL in the formmapbox://styles/STYLE_ID
. If you previously set the style ID in Interface Builder’s Attributes inspector, delete thestyleID
entry from the User Defined Runtime Attributes section of the Identity inspector, then set the new “Style URL” inspectable to a value in the formmapbox://styles/STYLE_ID
. (#2632) - Default styles such as Streets are no longer bundled with the SDK; instead, they are loaded at runtime from the style API on mapbox.com. As always, you can use these default styles with any valid access token, and Streets continues to be
MGLMapView
’s initial style. ThebundledStyleURLs
property onMGLMapView
has been deprecated in favor of several class methods onMGLStyle
that provide direct access to the default styles. (#2746) - The SDK now builds with Bitcode enabled. A version of libMapbox.a with Bitcode disabled is also available. (#2332, #3003)
- The style URL can be set to a local resource:
asset://local-color.json
andlocal-color.json
both resolve to a file namedlocal-color.json
in the application’s root folder. (#3087) - The double-tap-drag gesture for zooming in and out is now consistent with the Google Maps SDK. (#2153)
- A new
MGLAnnotationImage.enabled
property allows you to disable touch events on individual annotations. (#2501) - Fixed a rendering issue that caused one-way arrows along tile boundaries to point due east instead of in the direction of travel. (#2530)
- Fixed an issue that prevented zoom level–dependent style properties from updating after zooming programmatically with animation. (#2951)
- Performance and appearance improvements during annotation adds & removes. (#1688)
- Overall improved performance during renders by not rendering faster than necessary. (#1975)
- Fixed a rendering issue with styles that use the
background-pattern
property. (#2531) - Fixed a crash when reusing a single
MGLMapView
across multipleUIViewController
s. (#2969) - Fixed a crash on iPod touch and other devices or simulators without a cell carrier. (#2687)
- Eliminated flickering when opening and closing an overlay, such as an alert or action sheet. (#2309)
- Labels can now line wrap on hyphens and other punctuation. (#2598)
- A new delegate callback was added for observing taps to annotation callout views. (#2596)
-mapViewRegionIsChanging:
is now sent to the map view’s delegate during gestures. (#2700)- Improved gesture recognition while the map is tilted. (#2770)
-mapViewWillStartLoadingMap:
and-mapViewDidFinishLoadingMap:
delegate methods now work. (#2706)- Removed CoreTelephony.framework dependency. (#2581)
- Improved user location annotation responsiveness. (#2643)
- Built with Xcode 6.4 to not yet trigger Bitcode compatibility until Xcode 7 stabilizes. (#2332)
- Fixes for Xcode 7 and Bitcode. (#2238)
- A two-finger vertical swipe now tilts the map into perspective mode. (#2116)
- A new
MGLMapCamera
API allows you to transition multiple viewpoint properties, including rotation and pitch, simultaneously with an optional custom duration and timing function. (#2193) - A new user tracking mode,
MGLUserTrackingModeFollowWithCourse
, has been added for indicating the current direction of travel. (#2068) - Version 8 (
v8
) of the Mapbox GL style spec is now required. If you are using a customv7
style, it needs to be upgraded using this migrator script. (#2052) - Applications built with Mapbox GL no longer crash when Location Services launches them in background mode. (#1821, #1869)
- Fixed a crash when adding annotations to an
MGLMapView
inside-viewDidLoad
. (#1874) - The user location annotation view now indicates the location reading’s accuracy and the device’s heading. (#2010)
- Eliminated linker warnings and errors when building against the iOS 9.0 SDK in Xcode 7. (#1962)
- Worked around a bug in the iOS 9.0 SDK that caused a crash on launch. (#1958)
- User location tracking no longer sends
MGLMapView
into an invalid region on iOS 9. (#1925) - Eliminated console spew in the iOS demo application that was related to Mapbox Metrics HTTP requests. (#1937)
- Implemented
-[MGLMapView showAnnotations:animated:]
. (#2050) - Fixed a crash adding a shape annotation with zero points. (#2098)
- Debug mode now displays information useful for debugging the label collision algorithm. (#1808)
- Minor style updates. (#1910)
- The CocoaPods pod now contains a
README.md
file. (#1886)
Repackaging 2.0.0-pre.1 as it contained no issues.
Repackaging 0.5.1 as the Mapbox iOS SDK 2.0.0 series.
- Added support for CocoaPods 0.38.0. (#1876)
- Support for runtime marker imagery. (#941)
- Added
Map::fitBounds()
for region-based viewport setting. (#1092) - Added a raster satellite bundled style and improved raster rendering. (#963)
- Improved round line joins for semi-transparent lines. (#1839)
- Improved map render lifecycle notifications. (#1026)
- Fixed a bug that caused annotations not to show at zoom level zero. (#1279)
- Fixed a bug with the ordering of shape layers. (#1866)
- Other bug fixes and performance improvements.
- Breaking: Headers now make use of lightweight generics, eliminating many unnecessary casts when working with annotations in Swift 2.0 in Xcode 7. (#1711)
- Breaking:
-mapView:symbolNameForAnnotation:
has been removed from theMGLMapViewDelegate
protocol. Implement-mapView:imageForAnnotation:
instead, which accepts images at runtime. (#941) - Breaking:
MGLMapView.direction
is now expressed in terms of degrees clockwise from true north, as indicated in the documentation, rather than counterclockwise. (#1789) - A Satellite style showing Mapbox Satellite imagery is now bundled with Mapbox GL. (#1845)
- Improved
UIView
tracking to the map. (#1813) - Delegate method
-[MGLMapViewDelegate mapView:didFailToLocateUserWithError:]
now works. (#1608) - It is now possible to fit the map’s viewport to a coordinate bounding box via
-[MGLMapView setVisibleCoordinateBounds:animated:]
or to a specific set of coordinates via-[MGLMapView setVisibleCoordinates:count:edgePadding:animated:]
. (#1783, #1795) - The logo and ℹ️ no longer disappear or get distorted after embedding MGLMapView in a different view, and you can now access these subviews directly via properties on MGLMapView. (#1779, #1815)
- Raster tiles now look sharper midway between two zoom levels. (#1843)
- Resetting the map rotation to north no longer also resets the user location tracking mode. (#1809)
-[MGLMapView convertPoint:toCoordinateFromView:]
now returns accurate coordinates on iPhone 6. (#1827)- Fixed an issue in which
-[MGLMapView direction]
would sometimes return 360 instead of 0. (#1829) - Build against iOS 8.4. (#1868)
- Support for polyline and polygon shape annotations. (#1655)
- Improved placement and density of labels. (#1666, blog)
- Improved z-ordering appearance of point markers. (#988)
- Fixed an issue in which certain features, such as roundabouts, were not rendered completely. (#1725)
- Many bug fixes and performance and stability improvements.
- Improved tests.
- Breaking:
MGLMapView
no longer manages Mapbox access tokens directly; an access token cannot be passed in when initializing the map view. Instead, setMGLMapboxAccessToken
to your access token in your app’sInfo.plist
file, or call+[MGLAccountManager setAccessToken:]
before initializing the map view. If you were setting the access token inside an Interface Builder inspectable, also remove it from the User Defined Runtime Attributes section of the Identity inspector. (#1553) - Breaking:
MGLAccountManager
's-setMapboxMetricsEnabledSettingShownInApp:
has been removed. If you implement a Mapbox Metrics switch inside your app, instead of inside a Settings bundle, setMGLMapboxMetricsEnabledSettingShownInApp
toYES
in theInfo.plist
file. (#1553) - Breaking:
MGLMapView
's-mapID
has been renamed to-styleID
. (#1561) - Headers have been audited for nullability, improving type safety in both Objective-C and Swift 1.2 when compiling with Xcode 6.3 or above. (#1578)
- Fixed an issue in which the map would sometimes spin 180° while rotating the map with two fingers. (#1453)
- Added a shortcut to the Mapbox Metrics switch in
MGLMapView
's action sheet that is attached to the ℹ️ button. (#1611) MGLMapView
now supports Interface Builder designables. When you add anMGLMapView
to a storyboard, it displays instructions for getting set up directly on the storyboard canvas. (#1573)- The default title for the user location annotation is now “You Are Here”. You can customize the title by setting
mapView.userAnnotation.title
. (#1559) - Internal use of the Reachability library has been cleaned up so that your app can include its own copy of Reachability. (#1718)
- Now distribute a binary stripped of debugging symbols by default with an optional, secondary symbols build. (#1650)
- Temporarily removed
IBDesignable
support on iOS.
- Initial iOS beta release.
Known issues:
- None.