GeoUtils: addedgetWayIdoverloads to retrieve OSM way id(s) by directed edge id or polyline span
- Fixed an issue where the navigator would cycle between alternative routes after missing a turn at a waypoint, when the current position was already on the second leg of both the primary and alternative routes.
- Fixed an issue in
PredictiveCacheControllerthat caused excessive resource consumption when the same map styles were requested for download multiple times. - Added
geometryPointAt(index, precision)extension onRouteLegthat decodes leg geometry one step at a time and stops at the target index, avoiding allocation of all subsequent points. - Fixed an issue where requesting road cameras using
RoadCamerasProvidercould potential stall the main thread. - Fix redundant leg geometry decoding in
SlowTrafficSegmentsFinderby caching decoded points per route instance, and eliminate iterator allocations in congestion range lookup. - Added a minimum speed threshold for applying avoid-maneuver-radius for continuou alternative route, so that Nav SDK can suggest alternatives with maneuver being close in case of low speed.
- Improved off-road mode detection in parking aisles that are marked as tunnels.
- Improved ADAS cache performance.
- Fixed a crash that could occur after navigation shutdown.
- Improved performance on routes with a large number of road alerts.
This release depends on, and has been tested with, the following Mapbox dependencies:
- Mapbox Maps SDK
v11.21.0(release notes) - Mapbox Navigation Native
v324.21.0 - Mapbox Core Common
v24.21.0 - Mapbox Java
v7.10.0(release notes)
- Added
geometryPointAt(index, precision)extension onRouteLegthat decodes leg geometry one step at a time and stops at the target index, avoiding allocation of all subsequent points. - Fixed an issue where requesting road cameras using
RoadCamerasProvidercould potential stall the main thread. - Fix redundant leg geometry decoding in
SlowTrafficSegmentsFinderby caching decoded points per route instance, and eliminate iterator allocations in congestion range lookup. - Added a minimum speed threshold for applying avoid-maneuver-radius for continuou alternative route, so that Nav SDK can suggest alternatives with maneuver being close in case of low speed.
- Improved off-road mode detection in parking aisles that are marked as tunnels.
- Improved ADAS cache performance.
- Fixed a crash that could occur after navigation shutdown.
- Improved performance on routes with a large number of road alerts.
This release depends on, and has been tested with, the following Mapbox dependencies:
- Mapbox Maps SDK
v11.21.0-rc.1(release notes) - Mapbox Navigation Native
v324.21.0-rc.1 - Mapbox Core Common
v24.21.0-rc.1 - Mapbox Java
v7.10.0(release notes)
This release depends on, and has been tested with, the following Mapbox dependencies:
- Mapbox Maps SDK
v11.20.2(release notes) - Mapbox Navigation Native
v324.20.2 - Mapbox Core Common
v24.20.2 - Mapbox Java
v7.10.0(release notes)
- Introduced unknown status charger counts in EvStationMarker and EvseGroup models.
- Added metadata passthrough support for route refresh to enable app-side correlation
- Default navigation arrow width set to match the route line width.
- Made the navigation arrowhead shape more pointed.
- Changed the navigation arrow casing (border) color.
- The
EvseGroupmodel is extended withpowerTypeproperty indicating electrical power configuration. - The
EvStationMarkermodel is extended with achargersGroupsproperty, which is a list of all charging groups at the station.
- Fixed the case when ASZ notification for speed zones missed when route is built inside a speed zone.
- Reduced main thread CPU usage in
MapboxTripSessionby dispatching route progress observer notifications asynchronously and moving the foreground notification update to an IO thread. - Fixed a bug that caused the average speed zone to not update properly when a reroute occurred inside an active zone.
- Fixed a bug where, at the beginning of active guidance, users received a notification about a speed camera from the end of the route.
- SDK now supports dynamic access token update for voice guidance and map gpt
- Fix route arrow scale when pixelRatio doesn't match density
- Ignore query param at geo deeplink parsing
- Introducing a new
RouterFailureType.ROUTE_EXPIRY_ERRORrouter failure type to inform customers when an issue due to route expiry occurs. - Improved internal flow of location updates for
LocationProviderSource.GPS, which fixes delays in case main thread is blocked by the application. - Made default rounding increment in
DistanceFormatterOptionsdependent on distance numerical value.
This release depends on, and has been tested with, the following Mapbox dependencies:
- Mapbox Maps SDK
v11.20.1(release notes) - Mapbox Navigation Native
v324.20.1 - Mapbox Core Common
v24.20.1 - Mapbox Java
v7.10.0(release notes)
- Introduced unknown status charger counts in EvStationMarker and EvseGroup models.
- Added metadata passthrough support for route refresh to enable app-side correlation
- Default navigation arrow width set to match the route line width.
- Made the navigation arrowhead shape more pointed.
- Changed the navigation arrow casing (border) color.
- The
EvseGroupmodel is extended withpowerTypeproperty indicating electrical power configuration. - The
EvStationMarkermodel is extended with achargersGroupsproperty, which is a list of all charging groups at the station.
- Reduced main thread CPU usage in
MapboxTripSessionby dispatching route progress observer notifications asynchronously and moving the foreground notification update to an IO thread. - Fixed a bug that caused the average speed zone to not update properly when a reroute occurred inside an active zone.
- Fixed a bug where, at the beginning of active guidance, users received a notification about a speed camera from the end of the route.
- SDK now supports dynamic access token update for voice guidance and map gpt
- Fix route arrow scale when pixelRatio doesn't match density
- Ignore query param at geo deeplink parsing
- Introducing a new
RouterFailureType.ROUTE_EXPIRY_ERRORrouter failure type to inform customers when an issue due to route expiry occurs. - Improved internal flow of location updates for
LocationProviderSource.GPS, which fixes delays in case main thread is blocked by the application. - Made default rounding increment in
DistanceFormatterOptionsdependent on distance numerical value.
-
Alternative Route Gap at Fork Points. The
AlternativeRouteMetadata#forkIntersectionOfAlternativeRouteproperty currently references a location slightly downstream (ahead) of the actual logical fork point. As a result, alternative routes may appear to start with a physical gap relative to the primary route at the junction. -
Loss of Original Route After Waypoint. When a user switches from the primary to an alternative route after passing the first waypoint, the original primary route may be discarded by the navigator. This results in the UI displaying only the newly selected route, preventing the user from easily switching back to the previous path.
-
Bearing Discrepancy After Map Re-attachment. The location puck's visual bearing may diverge from the bearing reported by the navigator following a map detachment/re-attachment cycle. This synchronization lag occurs when the Nav Coordination MapComponent instance is destroyed and recreated, causing a temporary mismatch between the UI's orientation and the underlying navigation state.
This release depends on, and has been tested with, the following Mapbox dependencies:
- Mapbox Maps SDK
v11.20.0-rc.1(release notes) - Mapbox Navigation Native
v324.20.0-rc.1 - Mapbox Core Common
v24.20.0-rc.1 - Mapbox Java
v7.10.0(release notes)
- Fixed an issue where the navigator would cycle between alternative routes after missing a turn at a waypoint, when the current position was already on the second leg of both the primary and alternative routes.
This release depends on, and has been tested with, the following Mapbox dependencies:
- Mapbox Maps SDK
v11.19.5(release notes) - Mapbox Navigation Native
v324.19.5 - Mapbox Core Common
v24.19.5 - Mapbox Java
v7.10.0(release notes)
- Fixed an issue where
RouteLineColorResources.routeClosureColorwasn't being applied to the route correctly when there is a road closure.
This release depends on, and has been tested with, the following Mapbox dependencies:
- Mapbox Maps SDK
v11.19.3(release notes) - Mapbox Navigation Native
v324.19.3 - Mapbox Core Common
v24.19.3 - Mapbox Java
v7.10.0(release notes)
This release depends on, and has been tested with, the following Mapbox dependencies:
- Mapbox Maps SDK
v11.19.2(release notes) - Mapbox Navigation Native
v324.19.2 - Mapbox Core Common
v24.19.2 - Mapbox Java
v7.10.0(release notes)
- Update
LaneIndicatorto include a new attributeaccessDesignated, which contains a list of the designated supported access types for a lane. - Added support of route refresh in case native route object is enabled.
- Added optional parameter
ImmediateRouteRefreshCallbacktoRouteRefreshController.requestImmediateRouteRefresh()to receive request result notifications viaImmediateRouteRefreshResult.
- Fixed a bug that caused the average speed zone to not update properly when a reroute occurred inside an active zone.
- Fixed a bug where, at the beginning of active guidance, users received a notification about a speed camera from the end of the route.
- Introducing a new
RouterFailureType.ROUTE_EXPIRY_ERRORrouter failure type to inform customers when an issue due to route expiry occurs. - Fix route arrow scale when pixelRatio doesn't match density
- Improved internal flow of location updates for
LocationProviderSource.GPS, which fixes delays in case main thread is blocked by the application. - Fixed an issue where arrival maneuver arrow used to point in an incorrect direction. Now the arrows for arrival maneuvers are not displayed.
- Improve
MapboxRouteArrowViewrendering logic to better handle render attempts when the previous attempt fails.
This release depends on, and has been tested with, the following Mapbox dependencies:
- Mapbox Maps SDK
v11.19.0(release notes) - Mapbox Navigation Native
v324.19.0 - Mapbox Core Common
v24.19.0 - Mapbox Java
v7.10.0(release notes)
- Introducing a new
RouterFailureType.ROUTE_EXPIRY_ERRORrouter failure type to inform customers when an issue due to route expiry occurs. - Fix route arrow scale when pixelRatio doesn't match density
- Improved internal flow of location updates for
LocationProviderSource.GPS, which fixes delays in case main thread is blocked by the application.
This release depends on, and has been tested with, the following Mapbox dependencies:
- Mapbox Maps SDK
v11.19.0-rc.1(release notes) - Mapbox Navigation Native
v324.19.0-rc.1 - Mapbox Core Common
v24.19.0-rc.1 - Mapbox Java
v7.10.0(release notes)
- Update
LaneIndicatorto include a new attributeaccessDesignated, which contains a list of the designated supported access types for a lane. - Added support of route refresh in case native route object is enabled.
- Added optional parameter
ImmediateRouteRefreshCallbacktoRouteRefreshController.requestImmediateRouteRefresh()to receive request result notifications viaImmediateRouteRefreshResult.
- Fixed an issue where arrival maneuver arrow used to point in an incorrect direction. Now the arrows for arrival maneuvers are not displayed.
- Improve
MapboxRouteArrowViewrendering logic to better handle render attempts when the previous attempt fails.
This release depends on, and has been tested with, the following Mapbox dependencies:
- Mapbox Maps SDK
v11.19.0-beta.1(release notes) - Mapbox Navigation Native
v324.19.0-beta.1 - Mapbox Core Common
v24.19.0-beta.1 - Mapbox Java
v7.9.0(release notes)
This release depends on, and has been tested with, the following Mapbox dependencies:
- Mapbox Maps SDK
v11.18.3(release notes) - Mapbox Navigation Native
v324.18.3 - Mapbox Core Common
v24.18.3 - Mapbox Java
v7.9.0(release notes)
This release depends on, and has been tested with, the following Mapbox dependencies:
- Mapbox Maps SDK
v11.18.2(release notes) - Mapbox Navigation Native
v324.18.2 - Mapbox Core Common
v24.18.2 - Mapbox Java
v7.9.0(release notes)
- Added support of route refresh in case native route object is enabled.
- Fixed an issue where arrival maneuver arrow used to point in an incorrect direction. Now the arrows for arrival maneuvers are not displayed.
- Improve
MapboxRouteArrowViewrendering logic to better handle render attempts when the previous attempt fails.
This release depends on, and has been tested with, the following Mapbox dependencies:
- Mapbox Maps SDK
v11.18.1(release notes) - Mapbox Navigation Native
v324.18.1 - Mapbox Core Common
v24.18.1 - Mapbox Java
v7.9.0(release notes)
- Improved internal flow of location updates for
LocationProviderSource.GPS, which fixes delays in case main thread is blocked by the application.
This release depends on, and has been tested with, the following Mapbox dependencies:
- Mapbox Maps SDK
v11.17.2(release notes) - Mapbox Navigation Native
v324.17.2 - Mapbox Core Common
v24.17.2 - Mapbox Java
v7.9.0(release notes)
- Fix the race condition when canceling Active Guidance from a background thread that does not immediately cancel Route Progress updates.
- Fix ConcurrentModificationException in RoadCamerasByTileProvider
This release depends on, and has been tested with, the following Mapbox dependencies:
- Mapbox Maps SDK
v11.17.1(release notes) - Mapbox Navigation Native
v324.17.1 - Mapbox Core Common
v24.17.1 - Mapbox Java
v7.9.0(release notes)
- Added Experimental API:
MapboxNavigation#registerVoiceInstructionsAvailableObserverandMapboxNavigation#unregisterVoiceInstructionsAvailableObserverto be notified when voice instructions become available or unavailable;MapboxNavigation#registerRelevantVoiceInstructionsCallbackto asynchronously fetch the relevant voice instructions. The callback is automatically unregistered after receiving the result, register again for subsequent voice instructions.
- Adjust
FollowingFrameOptions#maxZoom: The value is applied directly when the zoom level cannot be calculated precisely, e.g., when there is only one point to frame. - Added experimental
NavigationOptions#nativeRouteObjectwhich replacesNavigationRoute#directionsRoutewith a thin wrapper that accesses route data stored in native memory instead of the Java heap. This is an early preview feature. When this option is enabled, some functionality is disabled or not fully supported. SeeNavigationOptions#nativeRouteObjectfor details. - Added new class
RerouteStateV2: it allows you to observe RerouteStates with additional substates which are not present in the originalRerouteState.
Current additional states are:RerouteStateV2.Deviation.ApplyingRouteandRerouteStateV2.Deviation.RouteIgnored. See the corresponding API reference for details. To observeRerouteStateV2, register a new type of observer:RerouteController#registerRerouteStateV2Observer. - Capabilities list added to Connector object, so it is now compliant with OCPI v2.3.0
- Added an
isOfflineflag toEvStationMarkerto identify when charging station data is from an offline source. - Added support of connctor types in
MapboxEvViewOptionsto be able to customize the connector types in the EV view.
- Made
RerouteStateV2a sealed class. - Fixed an issue when adding a stop point on top of an already traversed route, which could show a carried-over vanishing portion from the previous route. That is accomplished by ensuring that
MapboxRouteLineApi.getVanishPointOffset()returns0.0in case the point was in theVanishingPointState.DISABLEDstate. - Obfuscated access token in
RouteShieldError#url#toString. - Improved EV SAR call to return requested number of charging stations.
- Fix an issue where transitionEndListener passed to
NavigationCamera#requestNavigationCameraTo...might not have been invoked. - Added RouterFailureType.ROUTER_RECREATION_ERROR when route request failed due to related reason and made this error retriable
- Improved EV SAR call to evenly distribute returned stations along the route.
- Fixed the routing tiles endpoint configuration to avoid redundant recreations of Navigator.
⚠️ Breaking change (preview API): removedMapboxRoadCamerasDisplayConfig::showOnlyOnRoute. Safe to remove. It's now a default behavior to show road cameras only on the route.- Fixed a bug that prevented road cameras from being removed from the map after passing them.
- Fixed an issue when re-route might take a few minutes, because of missing internal reroute state.
- Fixed Copilot issues that caused recordings to be lost.
- Fix ConcurrentModificationException in RoadCamerasByTileProvider
- Fix the race condition when canceling Active Guidance from a background thread that does not immediately cancel Route Progress updates.
- Avoid high CPU usage when user location is stationary.
- Improve DR accuracy after sharp turns.
- Update interface for retrieving last voice instructions.
- Incident positions after a mid-leg route refresh now use correct distance calculations.
- Disallow route refreshes in other than Tracking state.
- Native Route Object via Flatbuffers.
- Implement reaction on notification that user-provided-charging-station is not needed.
This release depends on, and has been tested with, the following Mapbox dependencies:
- Mapbox Maps SDK
v11.18.0(release notes) - Mapbox Navigation Native
v324.18.0 - Mapbox Core Common
v24.18.0 - Mapbox Java
v7.9.0(release notes)
- Adjust
FollowingFrameOptions#maxZoom: The value is applied directly when the zoom level cannot be calculated precisely, e.g., when there is only one point to frame. - Added experimental
NavigationOptions#nativeRouteObjectwhich replacesNavigationRoute#directionsRoutewith a thin wrapper that accesses route data stored in native memory instead of the Java heap. This is an early preview feature. When this option is enabled, some functionality is disabled or not fully supported. SeeNavigationOptions#nativeRouteObjectfor details. - Added new class
RerouteStateV2: it allows you to observe RerouteStates with additional substates which are not present in the originalRerouteState.
Current additional states are:RerouteStateV2.Deviation.ApplyingRouteandRerouteStateV2.Deviation.RouteIgnored. See the corresponding API reference for details. To observeRerouteStateV2, register a new type of observer:RerouteController#registerRerouteStateV2Observer. - Capabilities list added to Connector object, so it is now compliant with OCPI v2.3.0
- Added an
isOfflineflag toEvStationMarkerto identify when charging station data is from an offline source. - Added support of connctor types in
MapboxEvViewOptionsto be able to customize the connector types in the EV view.
- Fixed an issue when adding a stop point on top of an already traversed route, which could show a carried-over vanishing portion from the previous route. That is accomplished by ensuring that
MapboxRouteLineApi.getVanishPointOffset()returns0.0in case the point was in theVanishingPointState.DISABLEDstate. - Obfuscated access token in
RouteShieldError#url#toString. - Improved EV SAR call to return requested number of charging stations.
- Fix an issue where transitionEndListener passed to
NavigationCamera#requestNavigationCameraTo...might not have been invoked. - Added RouterFailureType.ROUTER_RECREATION_ERROR when route request failed due to related reason and made this error retriable
- Improved EV SAR call to evenly distribute returned stations along the route.
- Fixed the routing tiles endpoint configuration to avoid redundant recreations of Navigator.
⚠️ Breaking change (preview API): removedMapboxRoadCamerasDisplayConfig::showOnlyOnRoute. Safe to remove. It's now a default behavior to show road cameras only on the route.- Fixed a bug that prevented road cameras from being removed from the map after passing them.
- Fixed an issue when re-route might take a few minutes, because of missing internal reroute state.
- Fixed Copilot issues that caused recordings to be lost.
- Fix ConcurrentModificationException in RoadCamerasByTileProvider
- Fix the race condition when canceling Active Guidance from a background thread that does not immediately cancel Route Progress updates.
- Avoid high CPU usage when user location is stationary.
- Improve DR accuracy after sharp turns.
- Update interface for retrieving last voice instructions.
- Incident positions after a mid-leg route refresh now use correct distance calculations.
- Disallow route refreshes in other than Tracking state.
- Native Route Object via Flatbuffers.
- Implement reaction on notification that user-provided-charging-station is not needed.
This release depends on, and has been tested with, the following Mapbox dependencies:
- Mapbox Maps SDK
v11.18.0-beta.1(release notes) - Mapbox Navigation Native
v324.18.0-beta.1 - Mapbox Core Common
v24.18.0-beta.1 - Mapbox Java
v7.8.0(release notes)
- Added support of connctor types in
MapboxEvViewOptionsto be able to customize the connector types in the EV view. - Introduce RouterFailureType::MISSING_TILES_ERROR to indicate inability to build a route due to missing routing tiles
- Added ZStd support.
- Reduce map-matcher latency in urban areas with lots of small tunnels
- Add a feature to override location bearing with yaw from orientation data (inactive by default)
- Improve behavior on elevated highways (new ramp detection algorithm)
- Improve tunnel mode behavior after tunnel exists
- Added
freeFlowSpeedandconstrainedFlowSpeedproperties toEHorizonEdgeMetadatato provide free flow and constrained flow speed information for edges - Reworked tile-loading delay in the predictive cache: both tile loading and tile calculation are now deferred for improved performance.
- Improved routing logic to prevent fallback to the onboard router when the online router encounters a
RouteCreationError. - Added
MapMatchingOptions.voiceUnitswhich allows applications to specify the unit system used for voice instructions in Map Matching. - Improved performance of
MapboxEvViewClient, its API was slightly changed for this purpose. - Renamed
EvStationMarker.maxOutputPowertoEvStationMarker.maxOutputPowerkWfor clarity. - Added new field
EvStationMarker.capabilitiesto describe supported charging capabilities. - Expose roadEdgeId to LocationMatcherResult
- Added
styleSlotparameter toMapboxEvViewOptionsto give more control over EV layer placement.
-
Fix ANR when calling
MapboxVoiceInstructionsPlayer::stop -
Fixed waypoint handling when multiple matches are returned in
MapMatchingSuccessfulResult.matches; waypoints are now assigned to the correct match. -
⚠️ Breaking change (preview API): removedMapMatchingSuccessfulResult#navigationRoutes.
Why: the navigationRoutes property encouraged incorrect usage — calling
mapboxNavigation.setNavigationRoutes(result.navigationRoutes) treats each
match as an alternative route. Matches are results of map-matching and are
not true route alternatives; passing them together will make the
navigator accept only first route rejecting the others.
Migration guide: select navigation route from a single match mapboxNavigation.setNavigationRoutes(listOf(result.matches.first().navigationRoute)).
- Fixed an issue where
FollowingFrameOptions#defaultPitchupdates were not applied in Free Drive. - Fix NullPointerException when using
MapboxVoiceInstructionsPlayer. - Fix the bug that causes road cameras on alternative routes to not be removed from the road when its road is not active or passed during active guidance.
- Optimize the performance of road cameras in Free Drive mode.
- Add the
RoadCamerasConfig::belowLayerIdoption to set thebelowLayerIdof the road camera icons layer. By default, the road camera icons are below the 2D CPP icon. ⚠️ Breaking changes in Experimental API:RoadCamerasConfigconstructor is now private. Use theRoadCamerasConfig.Builderto create an instance ofRoadCamerasConfig.- Fix an issue where transitionEndListener passed to
NavigationCamera#requestNavigationCameraTo...might not have been invoked. - Added RouterFailureType.ROUTER_RECREATION_ERROR when route request failed due to related reason and made this error retriable
- Fixed an issue when adding a stop point on top of an already traversed route, which could show a carried-over vanishing portion from the previous route. That is accomplished by ensuring that
MapboxRouteLineApi.getVanishPointOffset()returns0.0in case the point was in theVanishingPointState.DISABLEDstate.
This release depends on, and has been tested with, the following Mapbox dependencies:
- Mapbox Maps SDK
v11.17.0(release notes) - Mapbox Navigation Native
v324.17.0 - Mapbox Core Common
v24.17.0 - Mapbox Java
v7.9.0(release notes)
- Added ZStd support.
- Fixed an issue when adding a stop point on top of an already traversed route, which could show a carried-over vanishing portion from the previous route. That is accomplished by ensuring that
MapboxRouteLineApi.getVanishPointOffset()returns0.0in case the point was in theVanishingPointState.DISABLEDstate.
This release depends on, and has been tested with, the following Mapbox dependencies:
- Mapbox Maps SDK
v11.17.0-rc.3(release notes) - Mapbox Navigation Native
v324.17.0-rc.3 - Mapbox Core Common
v24.17.0-rc.3 - Mapbox Java
v7.9.0(release notes)
This release depends on, and has been tested with, the following Mapbox dependencies:
- Mapbox Maps SDK
v11.17.0-rc.2(release notes) - Mapbox Navigation Native
v324.17.0-rc.2 - Mapbox Core Common
v24.17.0-rc.2 - Mapbox Java
v7.9.0(release notes)
- Reduce map-matcher latency in urban areas with lots of small tunnels
- Add a feature to override location bearing with yaw from orientation data (inactive by default)
- Improve behavior on elevated highways (new ramp detection algorithm)
- Improve tunnel mode behavior after tunnel exists
- Added
freeFlowSpeedandconstrainedFlowSpeedproperties toEHorizonEdgeMetadatato provide free flow and constrained flow speed information for edges
- Fix an issue where transitionEndListener passed to
NavigationCamera#requestNavigationCameraTo...might not have been invoked. - Added RouterFailureType.ROUTER_RECREATION_ERROR when route request failed due to related reason and made this error retriable
This release depends on, and has been tested with, the following Mapbox dependencies:
- Mapbox Maps SDK
v11.17.0-rc.1(release notes) - Mapbox Navigation Native
v324.17.0-rc.1 - Mapbox Core Common
v24.17.0-rc.1 - Mapbox Java
v7.9.0(release notes)
- Reworked tile-loading delay in the predictive cache: both tile loading and tile calculation are now deferred for improved performance.
- Improved routing logic to prevent fallback to the onboard router when the online router encounters a
RouteCreationError. - Added
MapMatchingOptions.voiceUnitswhich allows applications to specify the unit system used for voice instructions in Map Matching. - Improved performance of
MapboxEvViewClient, its API was slightly changed for this purpose. - Renamed
EvStationMarker.maxOutputPowertoEvStationMarker.maxOutputPowerkWfor clarity. - Added new field
EvStationMarker.capabilitiesto describe supported charging capabilities. - Expose roadEdgeId to LocationMatcherResult
- Added
styleSlotparameter toMapboxEvViewOptionsto give more control over EV layer placement.
-
Fix ANR when calling
MapboxVoiceInstructionsPlayer::stop -
Fixed waypoint handling when multiple matches are returned in
MapMatchingSuccessfulResult.matches; waypoints are now assigned to the correct match. -
⚠️ Breaking change (preview API): removedMapMatchingSuccessfulResult#navigationRoutes.
Why: the navigationRoutes property encouraged incorrect usage — calling
mapboxNavigation.setNavigationRoutes(result.navigationRoutes) treats each
match as an alternative route. Matches are results of map-matching and are
not true route alternatives; passing them together will make the
navigator accept only first route rejecting the others.
Migration guide: select navigation route from a single match mapboxNavigation.setNavigationRoutes(listOf(result.matches.first().navigationRoute)).
- Fixed an issue where
FollowingFrameOptions#defaultPitchupdates were not applied in Free Drive. - Fix NullPointerException when using
MapboxVoiceInstructionsPlayer. - Fix the bug that causes road cameras on alternative routes to not be removed from the road when its road is not active or passed during active guidance.
- Optimize the performance of road cameras in Free Drive mode.
- Add the
RoadCamerasConfig::belowLayerIdoption to set thebelowLayerIdof the road camera icons layer. By default, the road camera icons are below the 2D CPP icon. ⚠️ Breaking changes in Experimental API:RoadCamerasConfigconstructor is now private. Use theRoadCamerasConfig.Builderto create an instance ofRoadCamerasConfig.
This release depends on, and has been tested with, the following Mapbox dependencies:
- Mapbox Maps SDK
v11.17.0-beta.1(release notes) - Mapbox Navigation Native
v324.17.0-beta.1 - Mapbox Core Common
v24.17.0-beta.1 - Mapbox Java
v7.8.0(release notes)
3.16.x is the next version after 3.12.x. For technical reasons, versions 3.13.x, 3.14.x and 3.15.x are skipped. Starting from 3.16.x, the Nav SDK minor version will be aligned with other Mapbox dependencies.
- Added
AdasEdgeAttributes#isBuiltUpAreaandAdasEdgeAttributes#roadItemsproperties. - Added a new
RoadObjectMatcherOptionsclass that configures the road object matching behavior. Available through theNavigationOptionsclass. - Added
RouteCalloutUiStateProviderclass that allows to listen to Route Callout UI data. Normally, route callouts are drawn under the hood in NavSDK when this feature is enabled inMapboxRouteLineApiOptions. However, there might be cases when app wants to only get the callout data from NavSDK and attach the DVA itself. An example of such a case is using Mapbox Maps SDK Compose extensions: attaching a DVA for Compose MapboxMap is done via compose-specific API, which is not currently supported by NavSDK. In this case you may listen toRouteCalloutUiStateDataupdates viaRouteCalloutUiStateProviderand use its information by attach a DVA. - Added experimental overloads for
MapboxManeuverApi#getRoadShieldsandMapboxRouteShieldApi#getRouteShieldsthat accept aShieldFontConfigparameter, enabling custom font selection for route shields. - Added experimental
MapboxNavigationSVGExternalFileResolverthat can resolve fonts for SVG rendering from assets or use system fonts. - Updated
MapboxNavigation.replanRoute()to now accept a new optional parameter of typeReplanRoutesCallback.
- Fix the bug that causes road cameras on alternative routes to be marked as passed but not removed from the map.
- Fixed the incorrect order of callbacks when notifying about road cameras on the route.
This release depends on, and has been tested with, the following Mapbox dependencies:
- Mapbox Maps SDK
v11.16.0-beta.1(release notes) - Mapbox Navigation Native
v324.16.0-beta.1 - Mapbox Core Common
v24.16.0-beta.1 - Mapbox Java
v7.8.0(release notes)
- Added ability to filter by data source in EV charging station search operations.
- Added
MapboxSpeedZoneInfoclass to represent speed zone information. Available throughUpcomingCamerasObserver::onSpeedZoneInfoandRoadCamerasMapCallback::onSpeedZoneInfocallbacks. - Added experimental support for ADAS tiles in the predictive cache. See
PredictiveCacheNavigationOptionsfor more information.
- Optimize the
MapboxRouteArrowViewto skip re-rendering arrows that have not changed. - Decrased excessively high GeoJSON buffer size from 128 to 32 to improve the memory footprint.
- Avoid unnecessary navigation arrow GeoJSON updates
- Optimized camera animations that involve significant zoom change.
- Fixed an issue where the closer part of route line might have been overlapped by a farther part in case they covered the same space within a single leg (e. g. U-turns on narrow roads).
- Don't reset the re-route request when on-route/off-route events are flaky.
- Use the
enhancedLocationin the RoadCamerasManager class to get a more accurate current speed for the vehicle.
This release depends on, and has been tested with, the following Mapbox dependencies:
- Navigation-native
324.15.0-beta.2 - Common SDK
24.15.0-beta.2 - Maps SDK
11.15.0-beta.2 - Android Search SDK
2.15.0-beta.2
- Added support for Android 16 KB page-size devices. To consume SDK compatible with NDK 27 you need to add
-ndk27suffix to the artifact name, for example,com.mapbox.navigationcore:navigation->com.mapbox.navigationcore:navigation-ndk27. - Added method overload
TilesetDescriptorFactory#getLatest(Boolean)that allows to specify whether to include ADAS tiles. - Extracted TTS functionality into a new module
audio. - DR improvements - more robust models for GNSS trust, road calibration, and wheel speed trust;
- Improve main thread utilization by removing unintended locks (visible on systems with overloaded CPU)
- Disable the defaults for collection of tunnel/bridge subgraphs in free drive. The clients will need to specify explicitly which objects to collect via AlertServiceOptions in the public SDK interface.
- Added support of immediate update of location puck bearing in [NavigationLocationProvider] in case of overlapping key points.
RoadCamerasManagerin active guidance now relies on newroad_cameraDirections API annotation, which improves the performance of the camera data retrieval and quality of the data.- Added
MapboxRoadCamera::activeGuidanceInfo, containing information about the route id, leg index, geometry index and step intersection of the camera in active guidance.
- Fixed an issue where after a reroute the vanishing point on the route line might have been ahead of the actual vehicle's position.
- Added
HistoryRecorderOptions#shouldRecordRouteLineEventsproperty to enable/disable route line events collection for manual recording (seeCopilotOptions#shouldRecordRouteLineEventsfor the same functionality with Copilot); it is disabled by default. - Fixed an issue where the Speed Camera notification would appear prematurely when the car's speed was 0.
- Fix Route replayer: normalize bearing values to be in the range of [0..360) degrees.
- Fixed a bug where alternative routes from
RoutesUpdatedResult#ignoredRouteswere set toRoutesUpdatedResult#navigationRoutesafter the first route progress update. - Fix when already passed part of route appears behind CCP
This release depends on, and has been tested with, the following Mapbox dependencies:
- Mapbox Java
v7.4.0(release notes)
⚠️ Breaking changes in Experimental API.MapboxEvSearchClientFactory.#getInstance()no longer accepts access token as a parameter. The defaultMapboxOptions.accessTokenwill be used.CarPlaceSearchOptions.accessTokenand corresponding builder function has been deprecated becauseaccessTokenis no longer in use as the search component now uses the defaultMapboxOptions.accessToken.- Used legacy/custom date primitives in EV modules to support older Android API levels.
- Added
DriverNotification,DriverNotificationProviderinterfaces withEvBetterRouteNotificationProviderandSlowTrafficNotificationProviderimplementations. Add newDriverNotificationManagerAPI to attach or detach providers andDriverNotificationManager.observeDriverNotification()to handle the flow of driver notifications. - Added default location providers.
- Added
EvBusyChargingStationNotificationProviderto notify when the EV is charging station is busy and propose alternative route. - Added experimental
NavigationPerformance#performanceTracingEnabledwhich enables/disables internal performance trace sections.
This release depends on, and has been tested with, the following Mapbox dependencies:
- Mapbox Maps SDK
v11.13.0-beta.1(release notes) - Mapbox Navigation Native
v324.13.0-beta.1 - Mapbox Core Common
v24.13.0-beta.1 - Mapbox Java
v7.4.0(release notes)
- Add
MapboxRoadCamera::inOnRouteflag which indicates if the roiad camera is on the current route. - Add
MapboxRoadCamerasDisplayConfig::showOnlyOnRouteconfig parameter to display only road cameras on the route. - Added support for EV charge point tariffs accessible via
EvStation.tariffs. - New experimental property
LocationMatcherResult.correctedLocationDatais available. - New experimental function
GraphAccessor.getAdasisEdgeAttributes()is available. It returns ADAS attributes for the requested edge. - Expose road type in the
MapboxRoadCamera - Added support for section control speed cameras.
- Extended
MapboxTripProgressApito provide information about time zone at leg/route destination. - Added
TripProgressUpdateFormatter.getEstimatedTimeToArrivaloverload that formats ETA using a given time zone. - Added curvatures support on intersections in ADAS tiles
- Reduced amount of error logs
- Added periodic logs of Navigator/Cache configs
- Added support for wheel speed usage during no signal simulation to determine passed distance for mobile profile
- Improved off road transitions
⚠️ Breaking changes in Experimental APIMapboxRouteCalloutView#renderCallouts(RouteCalloutData,MapboxRouteLineView). It's required to associate Route line with Callout View.- Added experimental
SearchAlongRouteUtilsclass to optimize search along routes scenario by providing optimally selected points.
- Fixed a crash that happened on foreground service start on Android APIs 28 and below.
- Deprecated EstimatedTimeToArrivalFormatter and introduced EstimatedTimeOfArrivalFormatter, which allows to format ETA with respect to destination time zone.
- Deprecated TripProgressUpdateFormatter.estimatedTimeToArrivalFormatter and introduced TripProgressUpdateFormatter.estimatedTimeOfArrivalFormatter, which allows to format ETA with respect to destination time zone.
- Fixed
MapboxNavigationSDKInitializerImpllogic so thatuxfKeyis properly retrieved and sent over. - Fixed the condition for verifying the last good signal state in the offroad detection logic
- Fixed incorrect calculation of a "missing part" of the route causing all lanes to be mark as divergent
- Fixed EHorizon rural road objects sometimes marked as urban
- Fixed a bug that happened during reroute in case if initial route was requested with
approachesoption specified.
This release depends on, and has been tested with, the following Mapbox dependencies:
- Mapbox Maps SDK
v11.10.0-beta.1(release notes) - Mapbox Navigation Native
v323.0.0-beta.2 - Mapbox Core Common
v24.10.0-beta.2 - Mapbox Java
v7.3.1(release notes)
- Added experimental
RoutingTilesOptions#hdTilesOptionsto configure HD tiles endpoint. DataInputsManagernow can be used from any thread.- Added experimental Road Cameras modules to provide notifications about road cameras along the route and show them on the map.
- Added option to display the route line with a blur effect.
- Added experimental functions
MapboxNavigation#startTripSessionWithPermissionCheck()andMapboxNavigation#startReplayTripSessionWithPermissionCheckthat immediately throwIllegalStateExceptionif they are called withwithForegroundServiceparameter set to true, but Android foreground service permissions requirements are not met.
- Improved reroute and alternative routes behavior
- Fixed map matching bug after leaving a tunnel
- Increased route stickiness in dead reckoning mode
- Added ability to send raw unfused GNSS location in addition to fused one
- Improved odometry and road graph fusing in urban canyons
- Signature of experimental
RawGnssSatelliteDatahas been changed, now it requiresresidualas a constructor parameter - Experimental
RawGnssLocationtype has been removed, nowRawGnssDatarequiresDilutionOfPrecisionas a parameter - Now service type is specified explicitly when foreground location service starts.
This release depends on, and has been tested with, the following Mapbox dependencies:
- Mapbox Maps SDK
v11.9.0-beta.1(release notes) - Mapbox Navigation Native
v322.0.0-beta.1 - Mapbox Core Common
v24.9.0-beta.1 - Mapbox Java
v7.3.1(release notes)
- Added support for SVG junction views, see
MapboxJunctionApi#generateJunction(instructions: BannerInstructions, @JunctionViewFormat format: String, consumer: MapboxNavigationConsumer<Expected<JunctionError, JunctionViewData>>). #6803 - Added experimental
NavigationRoute#routeRefreshMetadatawhich contains data related to refresh of the route object. #6736
- Nav SDK now removes passed alternative routes as soon as user passed fork point. #6813
- Fixed a potential route line layers visibility race, which might have happened if you invoked
MapboxRouteLineView#showPrimaryRouteandMapboxRouteLineView#renderRouteDrawDataapproximately at the same time. #6751 - Optimized CA routes handling by skiping route parsing if it's already exist in direction session #6868
- Fixed
CarSearchLocationProviderproduces NullPointerException when using Mapbox Search SDK. #6702 - Fixed an issue preventing Copilot from correctly recording history events. #6787
- Improved reroute and alternative routes behavior #6989
- Changed
AutoArrivalController: moves to a next waypoint immediately.
This release depends on, and has been tested with, the following Mapbox dependencies:
- Mapbox Maps SDK
v11.8.0-beta.1(release notes) - Mapbox Navigation Native
v321.0.0-beta.1 - Mapbox Core Common
v24.8.0-beta.1 - Mapbox Java
v7.3.1(release notes)
- Signature of experimental
EtcGateApi#updateEtcGateInfofunction has been changed, now it acceptsEtcGateApi.EtcGateInfoas a function parameter. #6508 - Experimental Data Inputs functionality has been removed from the
coremodule to a separatedatainputsmodule (MapboxNavigation#dataInputsand everything from the packagecom.mapbox.navigation.datainputshave been removed). Contact us to get more information on how to get access to the module. #6508 - Experimental Adasis functionality has been removed from the
coremodule (MapboxNavigation's functionssetAdasisMessageObserver,resetAdasisMessageObserver,updateExternalSensorData, andGraphAccessor#getAdasisEdgeAttributeshave been removed). Contact us in case you're interested in ADASIS functionality. #6508 - Added experimental
RoutingTilesOptions#fallbackNavigationTilesVersionwhich lets define version of navigation tiles to fallback in case of offline routing failure with navigation tiles defined inRoutingTilesOptions#tilesVersion. #6475 - Added experimental
MapboxRouteLineViewOptions#fadeOnHighZoomsConfigandMapboxRouteArrowOptions#fadeOnHighZoomsConfigto configure smooth fading out of route line or/and arrows on high zoom levels. #6367 - The
PredictiveCacheController(PredictiveCacheOptions)constructor is now deprecated. UsePredictiveCacheController(MapboxNavigation, PredictiveCacheOptions)instead. #6376 - Added
NavigationScaleGestureHandlerOptions#followingRotationAngleThresholdthat define threshold angle for rotation forFOLLOWINGNavigation Camera state. #6234 - Added the ability to filter road names based on the system language #6163
com.mapbox.navigation.base.road.model.RoadComponentobjects that contain only slashes in their text are filtered out #6163- Now
EHorizonResultType.Typehas a new element calledEHorizonResultType.NOT_AVAILABLE. #6290 - Old
MapboxNavigation.postUserFeedback()functions have been deprecated, use an overloading that acceptsUserFeedbackas a parameter. #5781 - Introduce MapboxRouteCalloutApi and MapboxRouteCalloutView to attach callouts to route lines with info about duration #2743
- Fixed a bug causing some history files recorded during the previous app sessions not to be uploaded by the Copilot. #6359
- Fixed an issue where native memory was not being properly released after the
MapboxNavigationobject was destroyed. #6376 - Fixed the issue of unwanted rerouting occurring immediately after setting a new route #6163
- Fixed a crash caused by an overflow in the JNI global reference table. #6290
- Fixed an issue with vignettes in Romania and Bulgaria for offline routing when tolls are excluded. #6290
- Addressed several issues that occurred when switching to an alternative route. #6290
This release depends on, and has been tested with, the following Mapbox dependencies:
- Mapbox Maps SDK
v11.7.0-beta.1(release notes) - Mapbox Navigation Native
v318.0.0 - Mapbox Core Common
v24.7.0-beta.2 - Mapbox Java
v7.2.0(release notes)
- Optimized memory usage in Directions API model classes by interning frequently occurring strings in JSON. #5854
- Added experimental
MapboxNavigation#replanRouteto handle cases when user changes route options during active guidance, #5286 for example enabling avoid ferries. - Added
DataInputsManagerto allow the provision of data from external sensors to the navigator, seeMapboxNavigation.dataInputsManager. ExperimentalEtcGateInfohas been moved tocom.mapbox.navigation.core.datainputspackage.EtcGateApihas been deprecated. #5957 - Removing the ExperimentalMapboxNavigationAPI flag for Search predictive cache. #5615
- [BREAKING CHANGE]
PredictiveCacheOptions.unrecognizedTilesetDescriptorOptionshas been renamed toPredictiveCacheOptions.predictiveCacheSearchOptionsList. Additionally,PredictiveCacheUnrecognizedTilesetDescriptorOptionshas been renamed toPredictiveCacheSearchOptions. Now, only search-related options can be passed toPredictiveCacheSearchOptions. #5244 - Introduced experimental traffic adjustment mechanism during a drive and added
TrafficOverrideOptionsto control this feature #2811 - Changed
Alternativesthat deviate close to a destination point are removed before a fork is reached. #5848
- Implementation of
RerouteController#registerRerouteStateObservernow invokes observer immediately with current state instead of posting invocation to the main looper. #5286 - Fixed UI jank caused by on-device TextToSpeech player. #5638
- Removed
PredictiveCacheController#removeSearchControllersandPredictiveCacheController#createSearchControllers. Now search predictive cache controller is created and destroyed together withPredictiveCacheControllerinstance ifPredictiveCacheOptions.predictiveCacheSearchOptionsListis provided. #5714 - Improve performance when handling large road objects on the eHorizon's MPP. #6014
- Fixed
Routesthat origin is out of primary route cannot be added as alternatives. #5848
This release depends on, and has been tested with, the following Mapbox dependencies:
- Mapbox Maps SDK
v11.6.0-beta.1(release notes) - Mapbox Navigation Native
v315.0.0 - Mapbox Core Common
v24.6.0-beta.1 - Mapbox Java
v7.1.0(release notes)
- Added
RerouteStrategyForMapMatchedRoutestoRerouteOptions. Reroute optionenableLegacyBehaviorForMapMatchedRoutewas removed, useNavigateToFinalDestinationstrategy instead. #5256
- Fixed a crash due to incorrect OpenLR input data #5400
- Fixed a bug with spinning smoothed coordinate #5400
- Fixed issue for calculating the trim-offset value for the vanishing route line feature when the current geometry index emitted by route progress is greater than the value expected.
This release depends on, and has been tested with, the following Mapbox dependencies:
- Mapbox Maps SDK
v11.5.0-beta.1(release notes) - Mapbox Navigation Native
v312.0.0 - Mapbox Core Common
v24.5.0-beta.4 - Mapbox Java
v6.15.0(release notes)
- Improved
MapboxNavigationViewportDataSourcebehavior, it updates view port data only when map size is calculated which prevents from using incorrect data. #5017 - Optimized network consumption of Continuous Alternatives feature.
This release depends on, and has been tested with, the following Mapbox dependencies:
- Mapbox Maps SDK
v11.4.0-rc.2(release notes) - Mapbox Navigation Native
v309.0.0 - Mapbox Core Common
v24.4.0-rc.2 - Mapbox Java
v6.15.0(release notes)
- Added
androidautomodule, that brings Navigation Android Auto SDK. The module was carried over from Nav SDK v2 and has been adapted to work with the Maps v11. #4454 - Optimized predictive cache usage. #4601
- Added a new option
PredictiveCacheMapsOptions.extraOptionsthat allows to specify extra tileset descriptor options. #4749 - Added a new option
AdasisConfigProfileShortTypeOptions.historyAverageSpeedwhich specifies whetherhistoryAverageSpeeddata should be generated in ADASis messages. #4931
- Made RerouteState.Failed retryable in case reroute failed due to not having yet received a route progress for a new route that had just been set. #4861
- Added support for custom users in map matching requests. #4808
- Fixed an issue where there was no fallback to onboard router in some cases. Now we allow onboard routing in all cases except when the request was cancelled. #4754
- Fixed an issue related to cached ADAS data not being released. #4754
- Removed route alerts for border crossings in neutral waters. #4754
- Fixed a crash caused by filtered alternatives in cases where the primary route status is different from the incoming route status. #4754
- Fixed
PredictiveCacheLocationOptions::routeBufferRadiusInMetersdefault value. #4673 - Fixed an issue where there was no fallback to onboard router in some cases. Now we allow onboard routing in all cases except when the request was cancelled. #4931
- Fixed an issue related to cached ADAS data not being released. #4931
- Removed route alerts for border crossings in neutral waters. #4931
- Fixed a crash caused by filtered alternatives in cases where the primary route status is different from the incoming route status. #4931
- Fixed context leak on Activity recreation #4626
- Improved alternative routes Navigation SDK generates during reroute. #4831
This release depends on, and has been tested with, the following Mapbox dependencies:
- Mapbox Maps SDK
v11.4.0-beta.3(release notes) - Mapbox Navigation Native
v308.0.0 - Mapbox Core Common
v24.4.0-beta.3 - Mapbox Java
v6.15.0(release notes)
- 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.NavigationRerouteControllerhas been merged withcom.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
NavigationRoutefrom json anymore. UseMapboxNavigation#requestRoutesandMapboxNavigation#requestMapMatchingto requestNavigationRoutes. - Changed type of
RouterOrigin. Now it's an annotation which defines possible string values for router origin.RouterOrigin.Offboardis renamed toRouterOrigin.ONLINE,RouterOrigin.Onboardis renamed toRouterOrigin.OFFLINE,RouterOrigin.Customis removed. - Navigation Core Framework automatically updates alternative routes and switches to an online alternative in case of an offline primary route. Register
RoutesObserverto keep track of current routes. UseMapboxNavigation#setContinuousAlternativesEnabledto enable/disable automatic update. NavigationRouteAlternativesObserver,RouteAlternativesObserver,NavigationRouteAlternativesRequestCallback,MapboxNavigation#registerRouteAlternativesObserver,MapboxNavigation#requestAlternativeRouteswere removed in favour of automatic alternatives update.- Added support for
RouteOptions#suppressVoiceInstructionLocalNamesto onboard router. - Changed the semantics of
Location#timestampthat you receive inonLocationMatcherResult, 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. #3741 RouterFailure.codehas been replaced withRouterFailure.type. SeeRouterFailureTypeto find all possible error types. #3555- Added "mbx.RouteLine" history events. They will be collected automatically by NavSDK for both manual recorder and Copilot recorder when the recording is started. #3785
You can enable route line events collection for Copilot using
CopilotOptions#shouldRecordRouteLineEventsoption. It is disabled by default. - Improved EHorizon path evaluation. #3555
- Added experimental property
NavigationRoute#responseOriginAPIwhich describes API that Navigation CF used to generate data forNavigationRoute.NavigationRoute#responseOriginAPIcould be used to form expectations from navigation experience given the fact that routes withResponseOriginAPI.MAP_MATCHING_APIhas limited support currently. #4010 - Public data classes have been replaces with normal classes with generated
equals,hashCode,toString.copyfunction and destructuring declarations are not available for affected classes. #4142 - Added support of seamless switch to an alternative route in case of deviation to the alternative route from a route received via
MapboxNavigation#requestMapMatching. #3972
-
Made
MapboxNavigationconstructor andonDestroyinternal. To create an instance ofMapboxNavigationuseMapboxNavigationProvider#create; to destroy it useMapboxNavigationProvider#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
MapboxReplayerconstructor public. -
Removed
OnlineRouteAlternativesSwitch. UseNavigationRouteAlternativesObserverto receive an online alternative for the current offline route. UnlikeOnlineRouteAlternativesSwitch,NavigationRouteAlternativesObserverdoesn'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#directionsResponsehas been removed. UseNavigationRoute#waypointsandNavigationRoute#responseUUIDto access data which used to be available viaNavigationRoute#directionsResponse.NavigationRoute#routeOptionshas been removed. Try to utilise data available inNavigationRoute, for example instead of using coordinates from route options, useNavigationRoute#waypoints. Temporary propertyNavigationRoute#evMaxChargehas been added to access maximum possible charge for the vehicle the route was requested for instead ofnavigationRoute.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. #3803
-
Resolved an issue where a crash could occur if telemetry sending settings were changed after creating
MapboxNavigation. #3900 -
Fixed an issue with vanishing route line not working for single-leg routes. #3818
-
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. #3968
-
Improved highway exits detection. #3968
-
Improved passed alternatives handling. #3968
-
Fixed an issue when onboard route calculation might have been cancelled if online router returned critical error. #3968
-
Fixed an issue in processing ETC signals when distant projections where treated as valid map-matched locations. #3968
-
Fixed leak of CarAppLifecycleOwner on every copilot start. #3968
-
Started sending special type POSITION messages in OFF-ROAD mode. #3968
-
Fixed ANR
at com.mapbox.common.LifecycleUtils.hasServiceRunningInForeground(LifecycleUtils.kt:25). #dd -
Added
RerouteOptions#enableLegacyBehaviorForMapMatchedRoutewhich lets enable reroute logic from Nav SDK v2 for routes generated by Mapbox Map Matching API. #4130 -
Changed reroute state transition in case of deviation from a primary route which is received via
MapboxNavigation#requestMapMatchingwhen no alternative routes available to switch to. Reroute state used to beIdle, but now performs the following transition:Idle->FetchingRoute->Failed->Idle. #3972 -
Made
RouteShieldError#urlandRouteShieldOrigin#originalUrlnullable. They can be null in case the request had been cancelled before the URL was formed. #4164 -
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. #4164
-
Added a Copilot option that allows to provide a different user id for history recording context. #4301
-
Fixed an issue where incidents and closures far ahead along the route might have disappeared after route refresh. #4410
-
Made
RouteShieldError#urlandRouteShieldOrigin#originalUrlnullable. They can be null in case the request had been cancelled before the URL was formed. #4164 -
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. #4164
-
Improved tunnel exit detection. #4578
-
Internal dependencies updated, which includes removal of unwanted URLs from the binary. #4578
-
Improved incidents behavior: far away incidents are kept after partial route refresh. #4578
-
Improved incidents behavior: expired incidents are removed on route refresh. #4578
-
Improved incidents behavior: incidents with incorrect endTime are not removed. #4578
-
Fixed EV route parsing issue. #4578
-
Fixed a crash that could happen on incorrect waypoints in the route response. #4578
-
Fixed continuous alternatives bugs leading to excessive
getRoutecalls. #4578
This release depends on, and has been tested with, the following 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)
- The new
ui-componentsmodule is now available. This module offers UI components that were previously accessible in Nav SDK v2. #4235
- Made
RouteShieldError#urlandRouteShieldOrigin#originalUrlnullable. They can be null in case the request had been cancelled before the URL was formed. #4164 - 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. #4164
- Added a Copilot option that allows to provide a different user id for history recording context. #4301
This release depends on, and has been tested with, the following 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)
- Added new property
AdasisDataSendingConfig.treeTrailingLengththat allows to specify the trailing length of the path tree, relative to the map-matched position, in the ADASIS provider. #3968
- Resolved an issue where a crash could occur if telemetry sending settings were changed after creating
MapboxNavigation. #3900 - Fixed an issue with vanishing route line not working for single-leg routes. #3818
- 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. #3968
- Improved highway exits detection. #3968
- Improved passed alternatives handling. #3968
- Fixed an issue when onboard route calculation might have been cancelled if online router returned critical error. #3968
- Fixed an issue in processing ETC signals when distant projections where treated as valid map-matched locations. #3968
- Fixed leak of CarAppLifecycleOwner on every copilot start. #3968
- Fixed ADASIS generator errors related to the split edges. #3968
- Fixed ADAS cache tiles eviction mechanism. #3968
- Started handling "unlilimited" speed limits in ADASIS. #3968
- Started sending special type POSITION messages in OFF-ROAD mode. #3968
- Fixed ANR
at com.mapbox.common.LifecycleUtils.hasServiceRunningInForeground(LifecycleUtils.kt:25). #dd
- Improved performance of the
MapboxRouteLineView#renderRouteLineUpdatesfunction, especially whenMapboxRouteLineApiOptions#styleInactiveRouteLegsIndependentlyis enabled.
This release depends on, and has been tested with, the following 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)
- Removed
LongRoutesOptimisationOptions. Navigation Core Framework is now optimized to handle long routes by default. #3741 - 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. #3803 - Removed
NavigaitonRoute#deserializeFromandNavigationRoute#serializefrom public API because it's too easy to misuse them and create a leak of resources. #3767 RouterFailure.codehas been replaced withRouterFailure.type. SeeRouterFailureTypeto find all possible error types. #3555- Improve map-matching on elevated roads. #3555
- Added "mbx.RouteLine" history events. They will be collected automatically by NavSDK for both manual recorder and Copilot recorder when the recording is started. #3785
You can enable route line events collection for Copilot using
CopilotOptions#shouldRecordRouteLineEventsoption. It is disabled by default. - Improved EHorizon path evaluation. #3555
libnav-uimodule has been renamed tolibnavigation-voice. Package name has been changed tocom.mapbox.navigation.voice.
- Fixed leak of CarAppLifecycleOwner on every copilot start. #3803
- Added Polish translation for UI elements.
This release depends on, and has been tested with, the following Mapbox dependencies:
- Mapbox Maps SDK
v11.2.0-rc.1(release notes) - Mapbox Navigation Native
v302.0.0 - Mapbox Core Common
v24.2.0-rc.2 - Mapbox Java
v6.15.0(release notes)
- Changed type of
RouterOrigin. Now it's an annotation which defines possible string values for router origin. RouterOrigin.Offboardis renamed toRouterOrigin.ONLINE.RouterOrigin.Onboardis renamed toRouterOrigin.OFFLINE.RouterOrigin.Customis removed.- Navigation Core Framework automatically updates alternative routes and switches to an online alternative in case of an offline primary route. Register
RoutesObserverto keep track of current routes. UseMapboxNavigation#setContinuousAlternativesEnabledto enable/disable automatic update. NavigationRouteAlternativesObserver,RouteAlternativesObserver,NavigationRouteAlternativesRequestCallback,MapboxNavigation#registerRouteAlternativesObserver,MapboxNavigation#requestAlternativeRouteswere removed in favour of automatic alternatives update.libnavui-voicemodule has been renamed tolibnavigation-voice. Package name has been changed tocom.mapbox.navigation.voice.- Added support for
RouteOptions#suppressVoiceInstructionLocalNamesto onboard router. - Changed the semantics of
Location#timestampthat you receive inonLocationMatcherResult, instead of being set to current system time it is now has location input time + lookahead (extrapolation) time. - Implement ADASIS message batching.
- Split
MapboxRouteLineOptionsintoMapboxRouteLineApiOptionsandMapboxRouteLineViewOptions. - Split
MapboxRouteLineOptions#displayRestrictedRoadSectionsintoMapboxRouteLineApiOptions#calculateRestrictedRoadSectionsandMapboxRouteLineViewOptions#displayRestrictedRoadSections. You can have a set-up where some of yourMapboxRouteLineViews display the restricted data and others don't. SetMapboxRouteLineApiOptions#calculateRestrictedRoadSectionsif at least one of yourMapboxRouteLineViews will display the restricted data. SetMapboxRouteLineViewOptions#displayRestrictedRoadSectionsonly to those views, who are going to display it. - Moved:
MapboxRouteLineOptions.Builder#withRouteLineBelowLayerIdtoMapboxRouteLineViewOptions.Builder#routeLineBelowLayerId;MapboxRouteLineOptions.Builder#withTolerancetoMapboxRouteLineViewOptions.Builder#tolerance;MapboxRouteLineOptions.Builder#withVanishingRouteLineEnabledtoMapboxRouteLineApiOptions.Builder#vanishingRouteLineEnabled;MapboxRouteLineOptions#styleInactiveRouteLegsIndependently,MapboxRouteLineOptions#vanishingRouteLineEnabledandMapboxRouteLineOptions#vanishingRouteLineUpdateIntervalNanotoMapboxRouteLineApiOptions.MapboxRouteLineOptions#softGradientTransition,MapboxRouteLineOptions#displaySoftGradientForTraffic,MapboxROuteLineOptions#shareLineGeometrySources,MapboxRouteLineOptions#lineDepthOcclusionFactor,MapboxRouteLineOptions#waypointLayerIconOffset,MapboxRouteLineOptions#waypointLayerIconAnchorandMapboxRouteLineOptions#iconPitchAlignmenttoMapboxRouteLineViewOptions.
- Removed
RouteLineResourcesclass:
routeLineColorResources,originWaypointIcon,destinationWaypointIcon,restrictedRoadDashArray,restrictedRoadOpacityandrestrictedRoadLineWidthwere moved toMapboxRouteLineViewOptionstrafficBackfillRoadClasseswas moved toMapboxRouteLineApiOptionsscaleExpressionproperties were moved toMapboxRouteLineViewOptions#scaleExpressionswrapper of typeRouteLineScaleExpressionsroundedLineCapproperty was removed
- Moved
congestionRangeproperties fromRouteLineColorResourcestoMapboxRouteLineApiOptions. - Removed
MapboxRouteLineOptions#routeStyleDescriptorsoption. - Removed the possibility of modify and reading data from
RouteLineSetValue,RouteLineClearValueandRouteLineUpdateValue. Do not use these classes on your side, just pass the objects betweenMapboxRouteLineAPIandMapboxRouteLineView. MapboxRouteLineAPI#optionsandMapboxRouteLineView#optionsproperties are no longer public.- Made
RouteLineExpressionProviderandRouteLineTrimExpressionProviderinternal. - Added a possibility to change a subset of
MapboxRouteLineViewOptionsin runtime without the need to recreate the components. The subset that can be changed is defined inMapboxRouteLineViewDynamicOptionsBuilder. To change the dynamic options in runtime, use the following code:
routeLineView.updateDynamicOptions(style) {
routeLineColorResources(newColors)
// ...
}
routeLineApi.getRouteDrawData {
routeLineView.renderRouteDrawData(style, it)
}
- Split
RouteLineConfig#optionsintoRouteLineConfig#apiOptionsandRouteLineConfig#viewOptions - Added
RouteLineConfig#viewOptionsUpdates. - Removed
MapboxRouteLineApi#showRouteWithLegIndexHighlighted,MapboxRouteLineApi#setPrimaryTrafficColorandMapboxRouteLineApi#setAlternativeTrafficColormethods. - Changed
MapboxRouteLineApi#setVanishingOffsetmethod behavior in the following way: if the route had not been set toMapboxRouteLineApiprior to the point whensetVanishingOffsetwas 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#setVanishingOffsetresult.
- 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
This release depends on, and has been tested with, the following Mapbox dependencies:
- Mapbox Maps SDK
v11.1.0(release notes) - Mapbox Navigation Native
v301.0.1 - Mapbox Core Common
v24.1.0 - Mapbox Java
v6.15.0(release notes)
- The
maneuvermodule now offers only API related to maneuver logic. Views was removed from the module MapboxRecenterButton,MapboxRouteOverviewButton,MapboxRoadNameView,MapboxCameraModeButtonhave been removed from ui-maps module.MapboxExtendableButtonLayoutBindinghas been removed fromui-basemodule.- New module
libnavigation-tripdatais available. It accumulates core api fromlibnavui-shield,libnavui-tripprogress,libnavui-maneuver,libnavui-speedlimitmodules, which have been removed. - Introduced support for highlighting 3D buildings.
- Navigation Core Framework doesn't let creating
NavigationRoutefrom json anymore. UseMapboxNavigation#requestRoutesandMapboxNavigation#requestMapMatchingto requestNavigationRoutes. - Added
NavigationRoute#serializeandNavigationRoute#deserializeFromto support immediate transfer ofNavigationRoutebetween applications and processes with the same Navigation Core Framework version.
- Fixed crash in CustomRouterRule caused by invalid url schema in request
This release depends on, and has been tested with, the following Mapbox dependencies:
- Mapbox Maps SDK
v11.1.0(release notes) - Mapbox Navigation Native
v300.0.1 - Mapbox Core Common
v24.1.0 - Mapbox Java
v6.15.0(release notes)
-
Improved
CustomRouterRuleto work independently from device network setup. -
Removed
CustomRouterRule#baseUrl. NowCustomRouterRuleintercepts 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
MapboxReplayerconstructor public. -
Removed
OnlineRouteAlternativesSwitch. UseNavigationRouteAlternativesObserverto receive an online alternative for the current offline route. UnlikeOnlineRouteAlternativesSwitch,NavigationRouteAlternativesObserverdoesn'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#directionsResponsehas been removed. UseNavigationRoute#waypoints,NavigationRoute#responseUUID, andNavigationRoute#responseMetadatato access data which used to be available viaNavigationRoute#directionsResponse.NavigationRoute#routeOptionshas been removed. Try to utilise data available inNavigationRoute, for example instead of using coordinates from route options, useNavigationRoute#waypoints. Temporary propertyNavigationRoute#evMaxChargehas been added to access maximum possible charge for the vehicle the route was requested for instead ofnavigationRoute.routeOptions.getUnrecognizedProperty("ev_max_charge"). -
Added
MapMatchingSuccessfulResult#navigationRouteswhich represent routes that could be set to navigator usingMapboxNavigation#setNavigationRoutes. -
Changed type of
MapMatchingSuccessfulResult#matchesfromList<NavigationRoute>toList<MapMatchingMatch>. Now every item fromMapMatchingSuccessfulResult#matchesrepresents 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#locationProviderFactoryand 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 setisMockextra 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.
This release depends on, and has been tested with, the following Mapbox dependencies:
- Mapbox Maps SDK
v11.1.0(release notes) - Mapbox Navigation Native
v300.0.1 - Mapbox Core Common
24.1.0 - Mapbox Java
v6.15.0(release notes)
- Support more options for
MapMatchingOptions. - Made
MapboxNavigationconstructor andonDestroyinternal. To create an instance ofMapboxNavigationuseMapboxNavigationProvider#create; to destroy it useMapboxNavigationProvider#destroy. 3274
- Introduced support of Mapbox Map Matching API, see
MapboxNavigation#requestMapMatching.
This release depends on, and has been tested with, the following Mapbox dependencies:
- Mapbox Maps SDK
v11.1.0(release notes) - Mapbox Navigation Native
v300.0.1 - Mapbox Core Common
24.1.0 - Mapbox Java
v6.15.0(release notes)