Skip to content

Navigation SDK v3.17.0

Choose a tag to compare

Navigation SDK Core Framework 3.17.0 - 04 December, 2025

Features

  • Added support of connctor types in MapboxEvViewOptions to 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 freeFlowSpeed and constrainedFlowSpeed properties to EHorizonEdgeMetadata to 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.voiceUnits which 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.maxOutputPower to EvStationMarker.maxOutputPowerkW for clarity.
  • Added new field EvStationMarker.capabilities to describe supported charging capabilities.
  • Expose roadEdgeId to LocationMatcherResult
  • Added styleSlot parameter to MapboxEvViewOptions to 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): removed MapMatchingSuccessfulResult#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#defaultPitch updates 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::belowLayerId option to set the belowLayerId of the road camera icons layer. By default, the road camera icons are below the 2D CPP icon.
  • ⚠️ Breaking changes in Experimental API: RoadCamerasConfig constructor is now private. Use the RoadCamerasConfig.Builder to create an instance of RoadCamerasConfig.
  • 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() returns 0.0 in case the point was in the VanishingPointState.DISABLED state.

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)