Skip to main content

Releases

v3.0.0 latest - 12 April, 2024

  • Modules structure (mostly UI components modules) has been significantly changed. See migration guide for more information https://docs.mapbox.com/android/navigation/guides/migration-from-v2/#artifacts

  • Deprecated classes, functions and fields have been removed. See Nav SDK v2 documentation for more information about missing parts and migration guides.

  • com.mapbox.navigation.core.reroute.NavigationRerouteController has been merged with com.mapbox.navigation.core.reroute.RerouteController

  • Introduced support of Mapbox Map Matching API, see MapboxNavigation#requestMapMatching.

  • Changed LocationOptions API. Now custom location providers that emit mocked locations are allowed. See documentation to get more information.

  • Added Advanced Driver Assistance Systems (ADAS) functionality as an experimental API.

  • Added NavigationViewApi#recenterCamera() that allows to programatically recenter the camera position as if the recenter button was clicked.

  • Introduced support for highlighting 3D buildings.

  • Navigation Core Framework doesn't let creating NavigationRoute from json anymore. Use MapboxNavigation#requestRoutes and MapboxNavigation#requestMapMatching to request NavigationRoutes.

  • Changed type of RouterOrigin. Now it's an annotation which defines possible string values for router origin. RouterOrigin.Offboard is renamed to RouterOrigin.ONLINE, RouterOrigin.Onboard is renamed to RouterOrigin.OFFLINE, RouterOrigin.Custom is removed.

  • Navigation Core Framework automatically updates alternative routes and switches to an online alternative in case of an offline primary route. Register RoutesObserver to keep track of current routes. Use MapboxNavigation#setContinuousAlternativesEnabled to enable/disable automatic update.

  • NavigationRouteAlternativesObserver, RouteAlternativesObserver, NavigationRouteAlternativesRequestCallback, MapboxNavigation#registerRouteAlternativesObserver, MapboxNavigation#requestAlternativeRoutes were removed in favour of automatic alternatives update.

  • Added support for RouteOptions#suppressVoiceInstructionLocalNames to onboard router.

  • Changed the semantics of Location#timestamp that you receive in onLocationMatcherResult, instead of being set to current system time it is now has location input time + lookahead (extrapolation) time.

  • Route Line component has been refactored and significantly changed. See migration guide for more information: https://docs.mapbox.com/android/navigation/guides/migration-from-v2/#mapboxroutelineapi

  • Removed LongRoutesOptimisationOptions. Navigation Core Framework is now optimized to handle long routes by default.

  • RouterFailure.code has been replaced with RouterFailure.type. See RouterFailureType to find all possible error types.

  • Added "mbx.RouteLine" history events. They will be collected automatically by NavSDK for both manual recorder and Copilot recorder when the recording is started.
    You can enable route line events collection for Copilot using CopilotOptions#shouldRecordRouteLineEvents option. It is disabled by default.

  • Improved EHorizon path evaluation.

  • Added experimental property NavigationRoute#responseOriginAPI which describes API that Navigation CF used to generate data for NavigationRoute. NavigationRoute#responseOriginAPI could be used to form expectations from navigation experience given the fact that routes with ResponseOriginAPI.MAP_MATCHING_API has limited support currently.

  • Public data classes have been replaces with normal classes with generated equals, hashCode, toString. copy function and destructuring declarations are not available for affected classes.

  • Added support of seamless switch to an alternative route in case of deviation to the alternative route from a route received via MapboxNavigation#requestMapMatching.

  • Made MapboxNavigation constructor and onDestroy internal. To create an instance of MapboxNavigation use MapboxNavigationProvider#create; to destroy it use MapboxNavigationProvider#destroy. 3274

  • Fixed a bug with multiple instances of cache which resulted in excessive memory consumption.

  • Fixed an issue where reroute for multi-leg routes used to fail in case waypoint_names or waypoint_targets parameters were specified without an explicit waypoint_indices parameter.

  • Improved handling of no storage available during navigation tiles downloading.

  • Improved handling of invalid config in DeviceProfile#customConfig.

  • Fixed a native crash in E-Horizon implementation caused by internal race condition.

  • Made MapboxReplayer constructor public.

  • Removed OnlineRouteAlternativesSwitch. Use NavigationRouteAlternativesObserver to receive an online alternative for the current offline route. Unlike OnlineRouteAlternativesSwitch, NavigationRouteAlternativesObserver doesn't switch to an online alternative automatically.

  • Changed structure of NavigationRoute. Now it can represent routes received from Mapbox Map Matching API as well as Mapbox Directions API. NavigationRoute#directionsResponse has been removed. Use NavigationRoute#waypoints and NavigationRoute#responseUUID to access data which used to be available via NavigationRoute#directionsResponse. NavigationRoute#routeOptions has been removed. Try to utilise data available in NavigationRoute, for example instead of using coordinates from route options, use NavigationRoute#waypoints. Temporary property NavigationRoute#evMaxCharge has been added to access maximum possible charge for the vehicle the route was requested for instead of navigationRoute.routeOptions.getUnrecognizedProperty("ev_max_charge").

  • Improve GNSS jump detection for better pitch based map-matching in tunnels

  • Eliminate border crossing object when moving to neutral waters and back

  • Fixed leak of CarAppLifecycleOwner on every copilot start.

  • Resolved an issue where a crash could occur if telemetry sending settings were changed after creating MapboxNavigation.

  • Fixed an issue with vanishing route line not working for single-leg routes.

  • Eliminated waiting for online route in case of reroute if onboard is ready. For rerouting return the route that was calculated sooner will be returned, and the back-online feature is expected to handle the case of switching back to online.

  • Improved highway exits detection.

  • Improved passed alternatives handling.

  • Fixed an issue when onboard route calculation might have been cancelled if online router returned critical error.

  • Fixed an issue in processing ETC signals when distant projections where treated as valid map-matched locations.

  • Fixed leak of CarAppLifecycleOwner on every copilot start.

  • Started sending special type POSITION messages in OFF-ROAD mode.

  • Fixed ANR at com.mapbox.common.LifecycleUtils.hasServiceRunningInForeground(LifecycleUtils.kt:25). #dd

  • Added RerouteOptions#enableLegacyBehaviorForMapMatchedRoute which lets enable reroute logic from Nav SDK v2 for routes generated by Mapbox Map Matching API.

  • Changed reroute state transition in case of deviation from a primary route which is received via MapboxNavigation#requestMapMatching when no alternative routes available to switch to. Reroute state used to be Idle, but now performs the following transition: Idle -> FetchingRoute -> Failed -> Idle.

  • Made RouteShieldError#url and RouteShieldOrigin#originalUrl nullable. They can be null in case the request had been cancelled before the URL was formed.

  • Improved road shield rendering behaviour for long text: now the closest length-wise available icon will be downloaded, previously it had been fixed to a maximum of 6 characters.

  • Added a Copilot option that allows to provide a different user id for history recording context.

  • Fixed an issue where incidents and closures far ahead along the route might have disappeared after route refresh.

  • Made RouteShieldError#url and RouteShieldOrigin#originalUrl nullable. They can be null in case the request had been cancelled before the URL was formed.

  • Improved road shield rendering behaviour for long text: now the closest length-wise available icon will be downloaded, previously it had been fixed to a maximum of 6 characters.

  • Improved tunnel exit detection.

  • Internal dependencies updated, which includes removal of unwanted URLs from the binary.

  • Improved incidents behavior: far away incidents are kept after partial route refresh.

  • Improved incidents behavior: expired incidents are removed on route refresh.

  • Improved incidents behavior: incidents with incorrect endTime are not removed.

  • Fixed EV route parsing issue.

  • Fixed a crash that could happen on incorrect waypoints in the route response.

  • Fixed continuous alternatives bugs leading to excessive getRoute calls. Mapbox dependencies:

  • Mapbox Maps SDK v11.3.0 (release notes)

  • Mapbox Navigation Native v305.0.0

  • Mapbox Core Common v24.3.1

  • Mapbox Java v6.15.0 (release notes)

API Reference
Previous versions

v1.0.0-beta.1 - 13 December, 2023

API Reference

v1.0.0-beta.2 - 22 December, 2023

API Reference

v1.0.0-beta.3 - 19 January, 2024

Changelog

  • Introduced support of Mapbox Map Matching API, see MapboxNavigation#requestMapMatching.
  • Support more options for MapMatchingOptions.
  • Made MapboxNavigation constructor and onDestroy internal. To create an instance of MapboxNavigation use MapboxNavigationProvider#create; to destroy it use MapboxNavigationProvider#destroy.

API Reference

v1.0.0-beta.4 - 26 January, 2024

Changelog

  • Improved CustomRouterRule to work independently from device network setup.
  • Removed CustomRouterRule#baseUrl. Now CustomRouterRule intercepts all route and route refresh requests to Mapbox Directions API.
  • Fixed a bug with multiple instances of cache which resulted in excessive memory consumption.
  • Fixed an issue where reroute for multi-leg routes used to fail in case waypoint_names or waypoint_targets parameters were specified without an explicit waypoint_indices parameter.
  • Improved Map Matching to avoid false deviation of the location puck to a parallel street.
  • Improved handling of no storage available during navigation tiles downloading.
  • Improved handling of invalid config in DeviceProfile#customConfig.
  • Fixed a native crash in E-Horizon implementation caused by internal race condition.
  • Made MapboxReplayer constructor public.
  • Removed OnlineRouteAlternativesSwitch. Use NavigationRouteAlternativesObserver to receive an online alternative for the current offline route. Unlike OnlineRouteAlternativesSwitch, NavigationRouteAlternativesObserver doesn't switch to an online alternative automatically.
  • Changed structure of NavigationRoute. Now it can represent routes received from Mapbox Map Matching API as well as Mapbox Directions API. NavigationRoute#directionsResponse has been removed. Use NavigationRoute#waypoints, NavigationRoute#responseUUID, and NavigationRoute#responseMetadata to access data which used to be available via NavigationRoute#directionsResponse. NavigationRoute#routeOptions has been removed. Try to utilise data available in NavigationRoute, for example instead of using coordinates from route options, use NavigationRoute#waypoints. Temporary property NavigationRoute#evMaxCharge has been added to access maximum possible charge for the vehicle the route was requested for instead of navigationRoute.routeOptions.getUnrecognizedProperty("ev_max_charge").
  • Added MapMatchingSuccessfulResult#navigationRoutes which represent routes that could be set to navigator using MapboxNavigation#setNavigationRoutes.
  • Changed type of MapMatchingSuccessfulResult#matches from List<NavigationRoute> to List<MapMatchingMatch>. Now every item from MapMatchingSuccessfulResult#matches represents a Match Object from Mapbox Map Matching API.
  • Changed LocationOptions API. Now custom location providers that emit mocked locations are allowed. In order to set a custom location provider, you now need to invoke LocationOptions.Builder#locationProviderFactory and pass a factory that will create a DeviceLocationProvider implementation based on a request parameter together will location provider type, which can be one of: REAL, MOCKED, MIXED. Note that if your provider can emit non-real locations, it must set isMock extra flag value to true for such locations. To set this flag, use:
Location.Builder#extra(Value.valueOf(hashMapOf(LocationExtraKeys.IS_MOCK to Value.valueOf(true/false))))
  • Added Advanced Driver Assistance Systems (ADAS) functionality as an experimental API.
  • Added NavigationViewApi#recenterCamera() that allows to programatically recenter the camera position as if the recenter button was clicked.

API Reference

v1.0.0-beta.5 - 02 February, 2024

Changelog

  • The maneuver module now offers only API related to maneuver logic. Views was removed from the module
  • MapboxRecenterButton, MapboxRouteOverviewButton, MapboxRoadNameView, MapboxCameraModeButton have been removed from ui-maps module. MapboxExtendableButtonLayoutBinding has been removed from ui-base module.
  • New module libnavigation-tripdata is available. It accumulates core api from libnavui-shield , libnavui-tripprogress, libnavui-maneuver, libnavui-speedlimit modules, which have been removed.
  • Introduced support for highlighting 3D buildings.
  • Navigation Core Framework doesn't let creating NavigationRoute from json anymore. Use MapboxNavigation#requestRoutes and MapboxNavigation#requestMapMatching to request NavigationRoutes.
  • Added NavigationRoute#serialize and NavigationRoute#deserializeFrom to support immediate transfer of NavigationRoute between applications and processes with the same Navigation Core Framework version.
  • Fixed crash in CustomRouterRule caused by invalid url schema in request

API Reference

v1.0.0-rc.1 - 06 February, 2024

Changelog

  • Changed type of RouterOrigin. Now it's an annotation which defines possible string values for router origin.
  • RouterOrigin.Offboard is renamed to RouterOrigin.ONLINE.
  • RouterOrigin.Onboard is renamed to RouterOrigin.OFFLINE.
  • RouterOrigin.Custom is removed.
  • Navigation Core Framework automatically updates alternative routes and switches to an online alternative in case of an offline primary route. Register RoutesObserver to keep track of current routes. Use MapboxNavigation#setContinuousAlternativesEnabled to enable/disable automatic update.
  • NavigationRouteAlternativesObserver, RouteAlternativesObserver, NavigationRouteAlternativesRequestCallback, MapboxNavigation#registerRouteAlternativesObserver, MapboxNavigation#requestAlternativeRoutes were removed in favour of automatic alternatives update.
  • libnav-ui module has been renamed to libnavigation-voice. Package name has been changed to com.mapbox.navigation.voice.
  • Added support for RouteOptions#suppressVoiceInstructionLocalNames to onboard router.
  • Changed the semantics of Location#timestamp that you receive in onLocationMatcherResult, instead of being set to current system time it is now has location input time + lookahead (extrapolation) time.
  • Implement ADASIS message batching.
  • Split MapboxRouteLineOptions into MapboxRouteLineApiOptions and MapboxRouteLineViewOptions.
  • Split MapboxRouteLineOptions#displayRestrictedRoadSections into MapboxRouteLineApiOptions#calculateRestrictedRoadSections and MapboxRouteLineViewOptions#displayRestrictedRoadSections. You can have a set-up where some of your MapboxRouteLineViews display the restricted data and others don't. Set MapboxRouteLineApiOptions#calculateRestrictedRoadSections if at least one of your MapboxRouteLineViews will display the restricted data. Set MapboxRouteLineViewOptions#displayRestrictedRoadSections only to those views, who are going to display it.
  • Moved:
  1. MapboxRouteLineOptions.Builder#withRouteLineBelowLayerId to MapboxRouteLineViewOptions.Builder#routeLineBelowLayerId;
  2. MapboxRouteLineOptions.Builder#withTolerance to MapboxRouteLineViewOptions.Builder#tolerance;
  3. MapboxRouteLineOptions.Builder#withVanishingRouteLineEnabled to MapboxRouteLineApiOptions.Builder#vanishingRouteLineEnabled;
  4. MapboxRouteLineOptions#styleInactiveRouteLegsIndependently, MapboxRouteLineOptions#vanishingRouteLineEnabled and MapboxRouteLineOptions#vanishingRouteLineUpdateIntervalNano to MapboxRouteLineApiOptions.
  5. MapboxRouteLineOptions#softGradientTransition, MapboxRouteLineOptions#displaySoftGradientForTraffic, MapboxROuteLineOptions#shareLineGeometrySources, MapboxRouteLineOptions#lineDepthOcclusionFactor, MapboxRouteLineOptions#waypointLayerIconOffset, MapboxRouteLineOptions#waypointLayerIconAnchor and MapboxRouteLineOptions#iconPitchAlignment to MapboxRouteLineViewOptions.
  • Removed RouteLineResources class:
  1. routeLineColorResources, originWaypointIcon, destinationWaypointIcon, restrictedRoadDashArray, restrictedRoadOpacity and restrictedRoadLineWidth were moved to MapboxRouteLineViewOptions
  2. trafficBackfillRoadClasses was moved to MapboxRouteLineApiOptions
  3. scaleExpression properties were moved to MapboxRouteLineViewOptions#scaleExpressions wrapper of type RouteLineScaleExpressions
  4. roundedLineCap property was removed
  • Moved congestionRange properties from RouteLineColorResources to MapboxRouteLineApiOptions.
  • Removed MapboxRouteLineOptions#routeStyleDescriptors option.
  • Removed the possibility of modify and reading data from RouteLineSetValue, RouteLineClearValue and RouteLineUpdateValue. Do not use these classes on your side, just pass the objects between MapboxRouteLineAPI and MapboxRouteLineView.
  • MapboxRouteLineAPI#options and MapboxRouteLineView#options properties are no longer public.
  • Made RouteLineExpressionProvider and RouteLineTrimExpressionProvider internal.
  • Added a possibility to change a subset of MapboxRouteLineViewOptions in runtime without the need to recreate the components. The subset that can be changed is defined in MapboxRouteLineViewDynamicOptionsBuilder. To change the dynamic options in runtime, use the following code:
routeLineView.updateDynamicOptions(style) {
    routeLineColorResources(newColors)
    // ...
}
routeLineApi.getRouteDrawData {
    routeLineView.renderRouteDrawData(style, it)
}
  • Split RouteLineConfig#options into RouteLineConfig#apiOptions and RouteLineConfig#viewOptions
  • Added RouteLineConfig#viewOptionsUpdates.
  • Removed MapboxRouteLineApi#showRouteWithLegIndexHighlighted, MapboxRouteLineApi#setPrimaryTrafficColor and MapboxRouteLineApi#setAlternativeTrafficColor methods.
  • Changed MapboxRouteLineApi#setVanishingOffset method behavior in the following way: if the route had not been set to MapboxRouteLineApi prior to the point when setVanishingOffset was invoked, it will return an error now. Previously it used to return a value, which was, however, useless for rendering without the route.
  • Fixed an issue when soft gradient was not applied correctly in MapboxRouteLineApi#setVanishingOffset result.
  • Fix adas tiles eviction algorithm
  • Fixed a mapmatching issue where the position might have been snapped to the wrong part of a highway after leaving tunnel
  • Improve GNSS jump detection for better pitch based map-matching in tunnels
  • Eliminate border crossing object when moving to neutral waters and back

API Reference

v1.0.0-rc.2 - 16 February, 2024

Changelog

  • Removed LongRoutesOptimisationOptions. Navigation Core Framework is now optimized to handle long routes by default.
  • Added billing explanation logs. Now Navigation SDK explains in the logs why certain Active Guidance or Free Drive Trip session started/stopped/paused/resumed. Billing explanations have [BillingExplanation] prefix in the logcat.
  • Removed NavigaitonRoute#deserializeFrom and NavigationRoute#serialize from public API because it's too easy to misuse them and create a leak of resources.
  • RouterFailure.code has been replaced with RouterFailure.type. See RouterFailureType to find all possible error types.
  • Improve map-matching on elevated roads.
  • Added "mbx.RouteLine" history events. They will be collected automatically by NavSDK for both manual recorder and Copilot recorder when the recording is started. You can enable route line events collection for Copilot using CopilotOptions#shouldRecordRouteLineEvents option. It is disabled by default.
  • Improved EHorizon path evaluation.
  • Fixed leak of CarAppLifecycleOwner on every copilot start.
  • Added Polish translation for UI elements.

API Reference

v1.0.0-rc.3 - 01 March, 2024

Changelog

  • Resolved an issue where a crash could occur if telemetry sending settings were changed after creating MapboxNavigation.
  • Fixed an issue with vanishing route line not working for single-leg routes.
  • Eliminated waiting for online route in case of reroute if onboard is ready. For rerouting return the route that was calculated sooner will be returned, and the back-online feature is expected to handle the case of switching back to online.
  • Improved highway exits detection.
  • Improved passed alternatives handling.
  • Fixed an issue when onboard route calculation might have been cancelled if online router returned critical error.
  • Fixed an issue in processing ETC signals when distant projections where treated as valid map-matched locations.
  • Fixed leak of CarAppLifecycleOwner on every copilot start.
  • Fixed ADASIS generator errors related to the split edges.
  • Fixed ADAS cache tiles eviction mechanism.
  • Started handling "unlilimited" speed limits in ADASIS.
  • Started sending special type POSITION messages in OFF-ROAD mode.
  • Fixed ANR at com.mapbox.common.LifecycleUtils.hasServiceRunningInForeground(LifecycleUtils.kt:25).

Mapbox dependencies:

  • Mapbox Maps SDK v11.2.0 (release notes)
  • Mapbox Navigation Native v303.0.0
  • Mapbox Core Common v24.2.0
  • Mapbox Java v6.15.0 (release notes)

API Reference

v1.0.0-rc.4 - 18 March, 2024

Changelog

  • Added experimental property NavigationRoute#responseOriginAPI which describes API that Navigation CF used to generate data for NavigationRoute. NavigationRoute#responseOriginAPI could be used to form expectations from navigation experience given the fact that routes with ResponseOriginAPI.MAP_MATCHING_API has limited support currently.
  • Public data classes have been replaces with normal classes with generated equals, hashCode, toString. copy function and destructuring declarations are not available for affected classes. Affected classes are: ExclusionViolation, TripNotificationData, MatchableOpenLr, MatchableGeometry, MatchablePoint, ReplayEvents, ReplayEventGetStatus, ReplayEventUpdateLocation, ReplayEventLocation, RerouteState.Failed, RerouteState.RouteFetched, RouteOptionsResult.Succes, RouteOptionsResult.Error, NavigationSessionState.FreeDrive, NavigationSessionState.ActiveGuidance, SearchResultsEvent, SearchResultUsedEvent, HistoryPoint, HistoryRoutablePoint, HistorySearchResult, SearchResultUsed, SearchResults, FocalPoint, ViewportData, NavigationRouteLine, RouteLineDistancesIndex, RouteLineScaleValue.
  • Added support of seamless switch to an alternative route in case of deviation to the alternative route from a route received via MapboxNavigation#requestMapMatching.
  • Added RerouteOptions#enableLegacyBehaviorForMapMatchedRoute which lets enable reroute logic from Nav SDK v2 for routes generated by Mapbox Map Matching API.
  • Changed reroute state transition in case of deviation from a primary route which is received via MapboxNavigation#requestMapMatching when no alternative routes available to switch to. Reroute state used to be Idle, but now performs the following transition: Idle -> FetchingRoute -> Failed -> Idle.

Mapbox dependencies:

  • Mapbox Maps SDK v11.2.1 (release notes)
  • Mapbox Navigation Native v303.0.0-36f123f
  • Mapbox Core Common v24.2.0
  • Mapbox Java v6.15.0 (release notes)

API Reference

v3.0.0-rc.5 - 30 March, 2024

Changelog

  • The new ui-components module is now available. This module offers UI components that were previously accessible in Nav SDK v2.
  • Made RouteShieldError#url and RouteShieldOrigin#originalUrl nullable. They can be null in case the request had been cancelled before the URL was formed.
  • Improved road shield rendering behaviour for long text: now the closest length-wise available icon will be downloaded, previously it had been fixed to a maximum of 6 characters.
  • Added a Copilot option that allows to provide a different user id for history recording context.

Mapbox dependencies:

  • Mapbox Maps SDK v11.2.2 (release notes)
  • Mapbox Navigation Native v304.0.0
  • Mapbox Core Common v24.2.3
  • Mapbox Java v6.15.0 (release notes)

API Reference
Was this page helpful?