Skip to content

Releases: mapbox/mapbox-navigation-ios

v0.15.0-beta.1

09 Mar 00:05
Compare
Choose a tag to compare
v0.15.0-beta.1 Pre-release
Pre-release

Changes since v0.14.1:

Breaking changes

  • NavigationMapViewDelegate and RouteMapViewControllerDelegate: navigationMapView(_:didTap:) is now navigationMapView(_:didSelect:) #1063
  • The Constants that concern Route-Snapping logic have been re-named. The new names are: RouteSnappingMinimumSpeed, RouteSnappingMaxManipulatedCourseAngle, and RouteSnappingMinimumHorizontalAccuracy.

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 is nil.
  • RouteController's MBRouteControllerProgressDidChange notification now exposes the raw location in it's update, accessible by MBRouteControllerRawLocationKey

Voice guidance

  • Fixed an issue that caused RouteVoiceController and MabpboxVoiceController 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 the NSAttributedStringKey.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

26 Feb 21:31
b32247c
Compare
Choose a tag to compare

Changes since v0.14.0:

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

22 Feb 19:17
Compare
Choose a tag to compare

Changes since v0.13.1:

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 use durationRemaining instead which can be found on the RouteProgress. #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 the RouteControllerNotificationUserInfoKey struct in Swift and the MBRouteControllerNotificationUserInfoKey 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:) to routeController(: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 within MGLMapViewDelegate.mapView(_:didFinishLoading:) for standalone NavigationMapViews 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:) on InstructionBannerView. 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

07 Feb 19:41
Compare
Choose a tag to compare

Changes since v0.13.0:

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

22 Jan 16:33
63abc38
Compare
Choose a tag to compare

Changes since v0.12.2:

Packaging

User location

  • Removed RouteControllerDelegate.routeController(_:shouldIncrementLegWhenArrivingAtWaypoint:) and NavigationViewControllerDelegate.navigationViewController(_:shouldIncrementLegWhenArrivingAtWaypoint:). RouteControllerDelegate.routeController(_:didArriveAt:) and NavigationViewControllerDelegate.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 of WayNameLabel and renamed the LanesContainerView class to LanesView. (#981 )
  • Added a NavigationMapView.tracksUserCourse property for enabling course tracking mode when using the map view independently of NavigationViewController. (#1015)

Documentation is available online or within Xcode.

v0.12.2

12 Jan 23:08
5c01eb1
Compare
Choose a tag to compare

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.

Changes since v0.12.1:

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 initializing NavigationViewController. (#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 if navigationViewController(_: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

06 Jan 00:21
Compare
Choose a tag to compare

Changes since v0.12.0:

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

21 Dec 17:52
202c83d
Compare
Choose a tag to compare

Changes since v0.11.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 the RouteOptions.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 a precondition. (#947)

Documentation is available online or within Xcode.

v0.11.0

29 Nov 17:10
32a334f
Compare
Choose a tag to compare

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 the VoiceControllerDelegate 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

22 Nov 23:53
Compare
Choose a tag to compare
v0.11.0-rc.1 Pre-release
Pre-release

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 the VoiceControllerDelegate 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.