Releases: mapbox/mapbox-navigation-ios
v0.15.0-beta.1
Breaking changes
NavigationMapViewDelegate
andRouteMapViewControllerDelegate
:navigationMapView(_:didTap:)
is nownavigationMapView(_:didSelect:)
#1063- The Constants that concern Route-Snapping logic have been re-named. The new names are:
RouteSnappingMinimumSpeed
,RouteSnappingMaxManipulatedCourseAngle
, andRouteSnappingMinimumHorizontalAccuracy
.
User interface
StepsViewController
's convienence initalizer (StepsViewController.init(routeProgress:)
) is now public. (#1167)- Fixed an issue preventing the distance from appearing in the turn banner when the system language was set to Hebrew and the system region was set to Israel or any other region that uses the metric system. (#1176)
- Various views and view controllers correctly mirror right-to-left in Hebrew. (#1182)
Core Navigation
RoteController
now has a new property,snappedLocation
. This property represents the raw location, snapped to the current route, if applicable. If not applicable, the value isnil
.RouteController
'sMBRouteControllerProgressDidChange
notification now exposes the raw location in it's update, accessible byMBRouteControllerRawLocationKey
Voice guidance
- Fixed an issue that caused
RouteVoiceController
andMabpboxVoiceController
to speak over one another. #1213
Other changes
- Fixed a crash while navigating that affected applications that do not use Mapbox-hosted styles or vector tiles. #1183
- The
DistanceFormatter.attributedString(for:)
method is now implemented. It returns an attributed string representation of the distance in which theNSAttributedStringKey.quantity
attribute is applied to the numeric quantity. (#1176) - Fixed an issue in which turn lanes were displayed in the wrong order when the system language was set to Hebrew. (#1175)
To install this prerelease via CocoaPods, point your Podfile to both the following URLs:
pod 'MapboxCoreNavigation', :podspec => 'https://raw.githubusercontent.com/mapbox/mapbox-navigation-ios/v0.15.0-beta.1/MapboxCoreNavigation.podspec'
pod 'MapboxNavigation', :podspec => 'https://raw.githubusercontent.com/mapbox/mapbox-navigation-ios/v0.15.0-beta.1/MapboxNavigation.podspec'
Documentation is available online or within Xcode.
v0.14.1
Core Navigation
- Voice instructions and banner updates always happen when beginning a route. #1155
User Interface
- Fixed an issue which prevented the
Weak GPS
status view from dismissing it self.
Documentation is available online or within Xcode.
v0.14.0
Breaking Changes
- Removed the dependency on AWSPolly. Voice announcements are now coming directly from Mapbox and for free for all developers. Because of this, PollyVoiceController has been removed. #617
- MapboxDirections.swift version 0.17.x is now required. #1085
- Removed the key
RouteControllerNotificationUserInfoKey.estimatedTimeUntilManeuverKey
from.routeControllerProgressDidChange
. Please usedurationRemaining
instead which can be found on theRouteProgress
. #1126 - Renamed notification names associated with
RouteController
in Objective-C code. #1122 - The user info keys of
RouteController
-related notifications have been renamed and are now members of theRouteControllerNotificationUserInfoKey
struct in Swift and theMBRouteControllerNotificationUserInfoKey
extensible enumeration in Objective-C. #1122
Here is reference for the new notification names:
Swift | Objective-C | ||
---|---|---|---|
Old | New | Old | New |
Notification.Name.navigationSettingsDidChange |
Notification.Name.navigationSettingsDidChange |
MBNavigationSettingsDidChange |
MBNavigationSettingsDidChangeNotification |
Notification.Name.routeControllerProgressDidChange |
Notification.Name.routeControllerProgressDidChange |
MBRouteControllerNotificationProgressDidChange |
MBRouteControllerProgressDidChangeNotification |
Notification.Name.routeControllerDidPassSpokenInstructionPoint |
Notification.Name.routeControllerDidPassSpokenInstructionPoint |
MBRouteControllerDidPassSpokenInstructionPoint |
MBRouteControllerDidPassSpokenInstructionPointNotification |
Notification.Name.routeControllerWillReroute |
Notification.Name.routeControllerWillReroute |
MBRouteControllerWillReroute |
MBRouteControllerWillRerouteNotification |
Notification.Name.routeControllerDidReroute |
Notification.Name.routeControllerDidReroute |
MBRouteControllerDidReroute |
MBRouteControllerDidRerouteNotification |
Notification.Name.routeControllerDidFailToReroute |
Notification.Name.routeControllerDidFailToReroute |
MBRouteControllerDidFailToReroute |
MBRouteControllerDidFailToRerouteNotification |
RouteControllerProgressDidChangeNotificationProgressKey |
RouteControllerNotificationUserInfoKey.routeProgressKey |
MBRouteControllerProgressDidChangeNotificationProgressKey |
MBRouteControllerRouteProgressKey |
RouteControllerProgressDidChangeNotificationLocationKey |
RouteControllerNotificationUserInfoKey.locationKey |
MBRouteControllerProgressDidChangeNotificationLocationKey |
MBRouteControllerLocationKey |
RouteControllerProgressDidChangeNotificationSecondsRemainingOnStepKey |
🚮 (removed) | MBRouteControllerProgressDidChangeNotificationSecondsRemainingOnStepKey |
🚮 (removed) |
RouteControllerNotificationLocationKey |
RouteControllerNotificationUserInfoKey.locationKey |
MBRouteControllerNotificationLocationKey |
MBRouteControllerLocationKey |
RouteControllerNotificationRouteKey |
🚮 (unused) | MBRouteControllerNotificationRouteKey |
🚮 (unused) |
RouteControllerNotificationErrorKey |
RouteControllerNotificationUserInfoKey.routingErrorKey |
MBRouteControllerNotificationErrorKey |
MBRouteControllerRoutingErrorKey |
RouteControllerDidFindFasterRouteKey |
RouteControllerNotificationUserInfoKey.isOpportunisticKey |
MBRouteControllerDidFindFasterRouteKey |
MBRouteControllerIsOpportunisticKey |
RouteControllerDidPassSpokenInstructionPointRouteProgressKey |
RouteControllerNotificationUserInfoKey.routeProgressKey |
MBRouteControllerDidPassSpokenInstructionPointRouteProgressKey |
MBRouteControllerRouteProgressKey |
Core Navigation
- Location updates sent via
.routeControllerProgressDidChange
are now always sent as long as the location is qualified. #1126 - Exposes
setOverheadCameraView(from:along:for:)
which is useful for fitting the camera to an overhead view for the remaining route coordinates. - Changed the heuristics needed for a the users location to unsnap from the route line. #1110
- Changes
routeController(:didDiscardLocation:)
torouteController(:shouldDiscardLocation:)
. Now if implemented, developers can choose to keep a location when RouteController deems a location unqualified. #1095
User Interface
- Added a
NavigationMapView.localizeLabels()
method that should be called withinMGLMapViewDelegate.mapView(_:didFinishLoading:)
for standaloneNavigationMapView
s to ensure that map labels are in the correct language. #1111 - The
/
delimiter is longer shown when a shield is shown on either side of the delimiter. This also removes the dependency SDWebImage. #1046 - Exposes constants used for styling the route line. #1124
- Exposes
update(for:)
onInstructionBannerView
. This is helpful for developers creating a custom user interface. #1085
Voice Guidance
- Exposes
RouteVoiceController.speak(_:)
which would allow custom subclass of MapboxVoiceController to override this method and pass a modified SpokenInstruction to our superclass implementation.
Documentation is available online or within Xcode.
v0.13.1
Core Navigation
- Fixes a bug where the
spokenInstructionIndex
was incremented beyond the number of instructions for a step. (#1080) - Fixed a bug that crashed when navigating beyond the final waypoint. (#1087)
User Interface
- Added support for spoken instructions in Danish. (#1041)
- Fixed a bug that prevented the user puck from laying flat when rotating the map. (#1090)
- Updated translations for Russian, Swedish, Spanish, Vietnamese, Hebrew, Ukrainian, and German. (#1064, #1089)
Documentation is available online or within Xcode.
v0.13.0
Packaging
- Upgraded to MapboxDirections.swift v0.16.0, which makes
ManeuverType
,ManeuverDirection
, andTransportType
non-optional. (#1040) - Added Danish and Hebrew localizations. Help us speak your language! (#1031, #1043)
User location
- Removed
RouteControllerDelegate.routeController(_:shouldIncrementLegWhenArrivingAtWaypoint:)
andNavigationViewControllerDelegate.navigationViewController(_:shouldIncrementLegWhenArrivingAtWaypoint:)
.RouteControllerDelegate.routeController(_:didArriveAt:)
andNavigationViewControllerDelegate.navigationViewController(_:didArriveAt:)
now return a Boolean that determines whether the route controller automatically advances to the next leg of the route. (#1038) - Fixed an issue where
NavigationViewControllerDelegate.navigationViewController(_:didArriveAt:)
was called twice at the end of the route. (#1038) - Improved the reliability of user location tracking when several location updates arrive simultaneously. (#1021)
User interface
- Removed the
WayNameView
class in favor ofWayNameLabel
and renamed theLanesContainerView
class toLanesView
. (#981 ) - Added a
NavigationMapView.tracksUserCourse
property for enabling course tracking mode when using the map view independently ofNavigationViewController
. (#1015)
Documentation is available online or within Xcode.
v0.12.2
Beginning with this release, we’ve compiled a set of examples showing how to accomplish common tasks with this SDK. You can also check out the navigation-ios-examples project and run the included application on your device.
User interface
- Fixed a crash loading
NavigationViewController
. (#977) - Fixed issues causing the user puck to animate at the wrong framerate while the device is unplugged. (#970)
- Fixed unexpected behavior that occurred if only one
Style
was specified when initializingNavigationViewController
. (#990) - A UIView can be supplied to be used for the user puck. #1012
Core Navigation
- If
RouteController
initially follows an alternative route, it now attempts to follow the most similar route after rerouting. (#995) - Fixed an issue preventing the
RouteControllerDelegate.routeController(_:didArriveAt:)
method from being called ifnavigationViewController(_:shouldIncrementLegWhenArrivingAtWaypoint:)
was unimplemented. (#984) - Added a
VoiceControllerDelegate.voiceController(_:willSpeak:routeProgress:)
method for changing spoken instructions on an individual basis. (#988)
Documentation is available online or within Xcode.
v0.12.1
User interface
- Fixed an issue where the “then” banner appeared at the wrong times. (#957)
- Fixed an issue where the user location view spun around at the end of a leg. (#966)
Core Navigation
- Fixed an issue that triggered unnecessary reroutes. (#959)
- The
RouteControllerDelegate.routeController(_:didArriveAt:)
method is now called when arriving at any waypoint, not just the last waypoint. (#972) - Added a
RouteController.setEndOfRoute(_:comment:)
method for collecting feedback about the route before the user cancels it. (#965)
Documentation is available online or within Xcode.
v0.12.0
Breaking changes 🚨
- If you install this SDK using Carthage, you must now include each of this SDK’s dependencies in your Run Script build phase: AWSCore.framework, AWSPolly.framework, Mapbox.framework, MapboxDirections.framework, MapboxMobileEvents.framework, Polyline.framework, SDWebImage.framework, Solar.framework, and Turf.framework. These dependencies are no longer embedded inside MapboxNavigation.framework. See the Carthage documentation for details. (#930)
- This library no longer depends on OSRM Text Instructions for Swift. If you have previously installed this SDK using Carthage, you may need to remove OSRMTextInstructions.framework from a Run Script build step. (#925)
- Notification names are now members of
Notification.Name
. (#943)
User interface
- When the user approaches the final waypoint, a panel appears with options for sending feedback about the route. (#848)
- Fixed an issue preventing the “Then” banner from appearing. (#940)
- Fixed an issue that sometimes prevented the night style from being applied. (#904)
- The turn banner’s labels and route shield images are now derived from the Directions API response. (#767)
- Roundabout icons in the turn banner now go clockwise in regions that drive on the left. (#911)
- Fixed an issue that turned the estimated arrival time to black when traffic congestion data was unavailable. (#912)
- Added a Bulgarian localization. Help us speak your language! (#954)
- Updated Dutch, Spanish, Swedish, and Vietnamese translations. (#944)
Voice guidance
- Tapping the mute button immediately silences any current announcement. (#936)
- Improved announcements near roundabouts and rotaries when using
NavigationRouteOptions
. You can also set theRouteOptions.includesExitRoundaboutManeuver
property manually to take advantage of this improvement. (#945) - You can customize the AWS region used for Amazon Polly spoken instructions using the
PollyVoiceController(identityPoolId:regionType:)
initializer. (#914) - Certain roads tagged with pronunciations in OpenStreetMap are pronounced correctly when Amazon Polly is unavailable. (#624)
- Refined the appearance of the spoken instruction map labels that are enabled via the
NavigationViewController.annotatesSpokenInstructions
property. (#907)
User location
- When
SimulatedLocationManager
is active, the user can swipe on the “Simulating Navigation” banner to adjust the rate of travel. (#915) - Fixed unnecessary rerouting that sometimes occurred if the user advanced to a subsequent step earlier than expected. (#910)
- If your application’s Info.plist file lacks a location usage description,
NavigationViewController
will immediately fail aprecondition
. (#947)
Documentation is available online or within Xcode.
v0.11.0
Beginning with this release, the navigation SDK and Core Navigation are written in Swift 4 (#663). Other changes since v0.10.1:
Feedback
- Removed the audio feedback recording feature. You no longer need to add an
NSMicrophoneUsageDescription
to your Info.plist. (#870) - The Report Feedback button no longer appears after rerouting if
NavigationViewController.showsReportFeedback
is disabled. (#890)
User interface
- Added a
StepsViewController
class for displaying the route’s upcoming steps in a table view. (#869) - The bottom bar is more compact in landscape orientation. (#863)
- Fixed an issue where the “then” banner appeared too soon. (#865)
- Maneuver arrows are no longer shown for arrival maneuvers. (#884)
- Fixed a crash that sometimes occurred after returning to the application from the background. (#888)
Voice guidance
- A new
RouteVoiceController.voiceControllerDelegate
property lets an object conforming to theVoiceControllerDelegate
protocol know when a spoken instruction fails or gets interrupted by another instruction. (#800, #864)
User location
- Fixed an issue that sometimes prevented
NavigationViewControllerDelegate.navigationViewController(_:didArriveAt:)
from getting called. (#883) - Fixed an issue where the user location indicator floated around when starting a new leg. (#886)
Documentation is available online or within Xcode.
v0.11.0-rc.1
Beginning with this release, the navigation SDK and Core Navigation are written in Swift 4 (#663). Other changes since v0.10.1:
- Removed the audio feedback recording feature. You no longer need to add an
NSMicrophoneUsageDescription
to your Info.plist. (#870) - Added a
StepsViewController
class for displaying the route’s upcoming steps in a table view. (#869) - The bottom bar is more compact in landscape orientation. (#863)
- A new
RouteVoiceController.voiceControllerDelegate
property lets an object conforming to theVoiceControllerDelegate
protocol know when a spoken instruction fails or gets interrupted by another instruction. (#800, #864) - Fixed an issue where the “then” banner appeared too soon. (#865)
Documentation is available online or within Xcode.