Waypoint object is extended with TimeZoneInformation.AVAudioSession.tryDuckAudio()AVAudioSession.tryUnduckAudio()CarPlayNavigationViewControllerDelegate to NavigationMapViewDelegate.RouteOptions initialization with url query items with invalid target coordinates parameters set. The failure pattern is:
RouteOptions.init(waypoints:profileIdentifier:queryItems:) initializer.waypoint_targets query item with empty data for at least one waypoint. It may look like this: waypoint_targets=;-86.790838,36.152884. More information here: Optional parametersCarPlayNavigationViewController showed a midpoint arrival view even when arrived at the final destination.RouteOptions initialization with url query items with invalid target coordinates parameters set. The failure pattern is:
RouteOptions.init(waypoints:profileIdentifier:queryItems:) initializer.waypoint_targets query item with empty data for at least one waypoint. It may look like this: waypoint_targets=;-86.790838,36.152884. More information here: Optional parametersAVAudioSession handling for playback of the reroute sound and voice instructions. Activation and deactivation of AVAudioSession no longer occur on the main thread, and these operations are synchronized. This eliminates UI freezes that occurred to a lesser extent during activation and to a greater extent during deactivation.Waypoint object is extended with TimeZoneInformation.AVAudioSession.tryDuckAudio()AVAudioSession.tryUnduckAudio()CarPlayNavigationViewControllerDelegate to NavigationMapViewDelegate.MapboxCopilot.startActiveGuidanceSession(requestIdentifier:route:searchResultUsed:), MapboxCopilot.startFreeDriveSession(), and MapboxCopilot.completeNavigationSession() are deprecated in favor of MapboxCopilot.startActiveGuidanceSessionAsync(requestIdentifier:route:searchResultUsed:), MapboxCopilot.startFreeDriveSessionAsync(), MapboxCopilot.completeNavigationSessionAsync(). Using deprecated methods may lead to losing events in the recorded history files.NavigationViewControllerDelegate.navigationViewController(_:didAdd:pointAnnotationManager:)CarPlayNavigationViewControllerDelegate.carPlayNavigationViewController(_:didAdd:pointAnnotationManager:)CarPlayMapViewControllerDelegate.carPlayMapViewController(_:didAdd:pointAnnotationManager:)CarPlayManagerDelegate.carPlayManager(_:didAdd:to:pointAnnotationManager:)CPTemplate:
CarPlayManagerDelegate.carPlayManager(_:leadingNavigationBarButtonsCompatibleWith:in:for:)CarPlayManagerDelegate.carPlayManager(_:trailingNavigationBarButtonsCompatibleWith:in:for:)CPMapTemplate:
CarPlayManagerDelegate.carPlayManager(_:leadingNavigationBarButtonsCompatibleWith:in:for:)CarPlayManagerDelegate.carPlayManager(_:trailingNavigationBarButtonsCompatibleWith:in:for:)SimulatedLocationManager when starting the simulation at the point on the route far away from the start.SimulatedLocationManager.RouteProgress in NavigationController.SimulatedLocationManager.RouteProgress in NavigationController.MapboxCopilot.startActiveGuidanceSession(requestIdentifier:route:searchResultUsed:), MapboxCopilot.startFreeDriveSession(), and MapboxCopilot.completeNavigationSession() are deprecated in favor of MapboxCopilot.startActiveGuidanceSessionAsync(requestIdentifier:route:searchResultUsed:), MapboxCopilot.startFreeDriveSessionAsync(), MapboxCopilot.completeNavigationSessionAsync(). Using deprecated methods may lead to losing events in the recorded history files.NavigationViewControllerDelegate.navigationViewController(_:didAdd:pointAnnotationManager:)CarPlayNavigationViewControllerDelegate.carPlayNavigationViewController(_:didAdd:pointAnnotationManager:)CarPlayMapViewControllerDelegate.carPlayMapViewController(_:didAdd:pointAnnotationManager:)CarPlayManagerDelegate.carPlayManager(_:didAdd:to:pointAnnotationManager:)SimulatedLocationManager when starting the simulation at the point on the route far away from the start.NavigationViewController transitions navigation to the idle state when its presented controllers disappear. Instead, it happens only when it disappears.RerouteConfig.optionsCustomization is deprecated in favor of RerouteConfig.urlOptionsCustomization. Using the deprecated optionsCustomization may lead to losing custom query items at reroutes.NavigationMapViewDelegate.navigationMapView(_:shapeFor:legIndex:) documentation.NavigationMapView.customRouteLineLayerPosition was not applied in runtime.mapbox-navigationCore-ios was mistakenly used for these frameworks.NavigationRoutes.RerouteConfig.optionsCustomization is deprecated in favor of RerouteConfig.urlOptionsCustomization. Using the deprecated optionsCustomization may lead to losing custom query items at reroutes.NavigationRoutes.NavigationMapViewDelegate.navigationMapView(_:shapeFor:legIndex:) documentation.NavigationMapView.customRouteLineLayerPosition was not applied in runtime.mapbox-navigationCore-ios was mistakenly used for these frameworks.AnnotationOrchestrator.makePointAnnotationManager() to create your own annotation manager to add the final destination annotation to the map. For more information see the following guide: https://docs.mapbox.com/ios/maps/guides/markers-and-annotations/annotations/#markers. To hide a particular waypoint, use NavigationMapViewDelegate.navigationMapView(_:shapeFor:legIndex:) method to supply Feature.properties with data that allows distinguishing waypoints. Use these properties data in CircleLayer.circleOpacity expression to control waypoints visibility.NavigationMapViewDelegate.navigationMapView(_:waypointCircleLayerWithIdentifier:sourceIdentifier:) method to create your own CircleLayer for waypoints.NavigationMapView.pointAnnotationManager property is deprecated and should no longer be used, as the final destination annotation is no longer added to the map.NavigationMapView.navigationMapView(_, didAdd:pointAnnotationManager:) method is deprecated and should no longer be used, as the final destination annotation is no longer added to the map.RoutingConfig.init(alternativeRoutesDetectionSettings:fasterRouteDetectionSettings:rerouteSettings:initialManeuverAvoidanceRadius:routeRefreshPeriod:routingProviderSource:prefersOnlineRoute:detectsReroute:) initializer is deprecated in favor of RoutingConfig.init(alternativeRoutesDetectionConfig:fasterRouteDetectionConfig:rerouteConfig:initialManeuverAvoidanceRadius:routeRefreshPeriod:routingProviderSource:prefersOnlineRoute:).NavigationComponent.onDidReroute()..relativeDurationsOnAlternativeManuever annotations can be visible even if they were hidden previously.NavigationMapView.customRouteLineLayerPosition.CarPlayMapViewController does not automatically change the state to free drive when it appears, if the previous state was different from the idle state.nil unwrapping in NavigationViewController.styleManager.NavigationViewController transitions navigation to the idle state when it is dismissed.PredictiveCacheConfig.predictiveCacheSearchConfig.Info.plist for pre-releases.NavigationMapViewDelegate.navigationMapView(_:shapeFor:legIndex:) method to supply Feature.properties with data that allow to distinguish waypoints. Use these properties data in CircleLayer.circleOpacity expression to control waypoints visibility.NavigationMapViewDelegate.navigationMapView(_:waypointCircleLayerWithIdentifier:sourceIdentifier:) method to create your own CircleLayer for waypoints.NavigationMapView.pointAnnotationManager property is deprecated and should no longer be used, as the final destination annotation is no longer added to the map.NavigationMapView.navigationMapView(_, didAdd:pointAnnotationManager:) method is deprecated and should no longer be used, as the final destination annotation is no longer added to the map.CarPlayMapViewController does not automatically change the state to free drive when it appears if the previous state was different than idle.nil unwrapping in NavigationViewController.styleManager.s.resource_bundle usage instead of s.resources in the podspec to avoid extra inclusion of Privacy Manifest resource in Cocoapods.RouteResponse.refreshTTL into account when refreshing a route. Now it will no longer be possible to attmept to refresh and outdated route, and Router will inform that current route has expired using RouterDelegate.routerDidFailToRefreshExpiredRoute(:_) method. (#4672)StepsViewController after reroutes when using a custom top bar. (#4716)Documentation is available online or within Xcode.
RoutingConfig.init(alternativeRoutesDetectionSettings:fasterRouteDetectionSettings:rerouteSettings:initialManeuverAvoidanceRadius:routeRefreshPeriod:routingProviderSource:prefersOnlineRoute:detectsReroute:) initializer is deprecated in favor of RoutingConfig.init(alternativeRoutesDetectionConfig:fasterRouteDetectionConfig:rerouteConfig:initialManeuverAvoidanceRadius:routeRefreshPeriod:routingProviderSource:prefersOnlineRoute:).NavigationComponent.onDidReroute()..relativeDurationsOnAlternativeManuever annotations can be visible even if they were hidden previously.NavigationMapView.customRouteLineLayerPosition.NavigationViewController transitions navigation to the idle state when it is dismissed.PredictiveCacheConfig.predictiveCacheSearchConfig.lookaheadDistance for the maneuver added for the following navigation camera calculation. The camera frame can now be configured correctly by IntersectionDensity.NavigationMapView.excludedRouteAlertTypes for controlling the visibility of road alerts on the map.PitchNearManeuver.enabled. The distance to maneuver can be configured correctly by PitchNearManeuver.triggerDistanceToManeuver.Slot 'middle' missing for layer.previewRoutes(to destination: Waypoint) async in CarPlayManager.previewRoutes(between waypoints: [Waypoint]) async in CarPlayManager.previewRoutes(for options: RouteOptions) async in CarPlayManager.MapMatchingState.location. Switch to MapMatchingState.enhancedLocation if you need a map-matched location.NavigationRouteOptions and NavigationMatchOptions no longer include .numericCongestionLevel attribute by default for profiles other than .automobileAvoidingTraffic.NavigatorErrors.UnexpectedNavigationStatus is now public.SAME_TIME label localization.NavigationMapView.excludedRouteAlertTypes for controlling the visibility of road alerts on the map.PitchNearManeuver.enabled. The distance to maneuver can be configured correctly by PitchNearManeuver.triggerDistanceToManeuver.