Navigation SDK v3.17.0
Navigation SDK Core Framework 3.17.0 - 04 December, 2025
Features
- 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.
Bug fixes and improvements
-
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.
Mapbox dependencies
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)