Release Notes

Version 0.40.0 - 16/02/2024

General

New features

  • Add a route clicking listener to routing and Navigation Visualization.
  • Implement TelemetryConfigProvider.

Updates

  • Fix route splitter to use route offset instead of geopoint distances.

Map

Fixes

  • Adapt hillshading to style modes in Genesis map to prevent aggressive hillshading.
  • Fix flakiness in better route proposal collaboration tests.
  • Fix marker position not changing after setting the coordinate property.

Updates

  • Expose TomTomSDKMapDisplay.CurrentLocationViewModel as an experimental API.
  • Expose LLV experimental styles.
  • Update map documentation according to Usability testers' feedback.

Breaking changes

  • Add optional authentication URI parameter for SafetyLocations and Hazards.
  • Remove TomTomSDKHorizonEngineHybrid.HybridHorizonEngineFactory from the public API.
  • Remove TomTomSDKHorizonEngineTileStore.TileStoreHorizonEngineFactory from the public API.
  • Remove TomTomSDKHazards from the public API.
  • Remove TomTomSDKHorizonEngineOffline.OfflineHorizonEngineFactory from the public API.
  • Remove TomTomSDKHorizonEngineTileStore.TileStoreHorizonEngineFactory.create(dataStore:dataAdapters:) from the public API.
  • Remove TomTomSDKHorizonEngineUnified.HorizonEngineFactory from the public API.
  • Remove TomTomSDKNavigationEngines.RouteProgress.remainingTime and TomTomSDKNavigationEngines.RouteProgress.remainingDistance from the constructor.
    • The property TomTomSDKNavigationEngines.RouteProgress.remainingTime becomes computed.
    • The property TomTomSDKNavigationEngines.RouteProgress.remainingDistance becomes computed.
  • Remove TomTomSDKNavigationEngines.SafetyLocationElement.isZone from the public API.
  • Remove TomTomSDKNavigationHorizonDataAdapter. HorizonDataChangedObserver from the public API.
  • Remove TomTomSDKNavigationHorizonDataAdapter.HorizonDataAdapter as internal API.
  • Remove TomTomSDKNavigationHorizonDataAdapter.HorizonDataObject from the public API.
  • Remove TomTomSDKNavigationHorizonDataAdapter.HorizonDataSnapshot from the public API.
  • Remove TomTomSDKNavigationHorizonDataAdapter.HorizonDataType from the public API.
  • Remove TomTomSDKNavigationHorizonDataAdapter.LocationReference from the public API.
  • Remove TomTomSDKSafetyCameras from the public API.
  • Remove constructor TomTomSDKNavigationOnline.OnlineTomTomNavigationFactory.Configuration.init(locationProvider:routeReplanner:apiKey:navigationTileStore:dataStoreMaintenanceEngine:mapMatchingEngine:horizonEngine:routeTrackingEngine:routeProjectionEngine:guidanceEngine:arrivalDetectionEngine:routeProgressEngine:routeReplanningEngine:routeReplanningRetryPolicy:routeDeviationReplanningRetryPolicy:betterProposalAcceptanceMode:deviationReplanningMode:vehicleProvider:). instead, use constructor TomTomSDKNavigationOnline.OnlineTomTomNavigationFactory.Configuration.init(locationProvider:routeReplanner:apiKey:navigationTileStore:dataStoreMaintenanceEngine:mapMatchingEngine:horizonEngine:routeTrackingEngine:routeProjectionEngine:guidanceEngine:arrivalDetectionEngine:routeProgressEngine:routeReplanningEngine:routeReplanningRetryPolicy:routeDeviationReplanningRetryPolicy:betterProposalAcceptanceMode:deviationReplanningMode:vehicleProvider:safetyLocationsConfiguration:hazardsConfiguration:) instead.
  • Remove constructor. TomTomSDKNavigationHybrid.HybridTomTomNavigationFactory.Configuration.init(locationProvider:apiKey:navigationTileStore:ndsMapContext:hybridNavigationDataStore:dataStoreMaintenanceEngine:dataSourceSelectionEngine:mapMatchingEngine:horizonEngine:routeTrackingEngine:routeProjectionEngine:onlineRoutePlanner:offlineRoutePlanner:routeReplanner:guidanceEngine:arrivalDetectionEngine:routeProgressEngine:routeReplanningEngine:routeReplanningRetryPolicy:routeDeviationReplanningRetryPolicy:betterProposalAcceptanceMode:deviationReplanningMode:vehicleProvider:) instead, use constructor TomTomSDKNavigationHybrid.HybridTomTomNavigationFactory.Configuration.init(locationProvider:apiKey:navigationTileStore:ndsMapContext:hybridNavigationDataStore:dataStoreMaintenanceEngine:dataSourceSelectionEngine:mapMatchingEngine:horizonEngine:routeTrackingEngine:routeProjectionEngine:onlineRoutePlanner:offlineRoutePlanner:routeReplanner:guidanceEngine:arrivalDetectionEngine:routeProgressEngine:routeReplanningEngine:routeReplanningRetryPolicy:routeDeviationReplanningRetryPolicy:betterProposalAcceptanceMode:deviationReplanningMode:vehicleProvider:safetyLocationsConfiguration:hazardsConfiguration:) instead
  • Remove constructor. TomTomSDKNavigationOffline.OfflineTomTomNavigationFactory.Configuration.init(locationProvider:routeReplanner:ndsMapContext:mapMatchingEngine:horizonEngine:routeTrackingEngine:routeProjectionEngine:dataStoreMaintenanceEngine:guidanceEngine:arrivalDetectionEngine:routeProgressEngine:routeReplanningEngine:routeReplanningRetryPolicy:routeDeviationReplanningRetryPolicy:betterProposalAcceptanceMode:deviationReplanningMode:vehicleProvider:). instead, use constructor TomTomSDKNavigationOffline.OfflineTomTomNavigationFactory.Configuration.init(locationProvider:routeReplanner:ndsMapContext:mapMatchingEngine:horizonEngine:routeTrackingEngine:routeProjectionEngine:dataStoreMaintenanceEngine:guidanceEngine:arrivalDetectionEngine:routeProgressEngine:routeReplanningEngine:routeReplanningRetryPolicy:routeDeviationReplanningRetryPolicy:betterProposalAcceptanceMode:deviationReplanningMode:vehicleProvider:safetyLocationsConfiguration:hazardsConfiguration:) instead.
  • Remove the argument remainingTrafficDelay from RouteProgress constructor. Make the property RouteProgress.remainingTrafficDelay computed.
  • Remove the initializer TomTomSDKNavigationEngines.SafetyLocationElement.init(id:pathID:startOffset:endOffset:safetyLocation:isZone:) from the public API. Instead, use TomTomSDKNavigationEngines.SafetyLocationElement.init(id:pathID:startOffset:endOffset:safetyLocation:).
  • Rename TomTomNavigation.NavigationActiveRouteChangedObserver to TomTomNavigation.NavigationActiveRouteChangeObserver.
  • Rename TomTomNavigation.NavigationRouteAddedObserver to TomTomNavigation.NavigationRouteAddObserver.
  • Rename TomTomNavigation.NavigationRouteRemovedObserver to TomTomNavigation.NavigationRouteRemovedObserver.
  • The argument remainingRouteStopsProgress must be non-empty array in the constructor`RouteProgress.init(distanceAlongRoute:remainingRouteStopsProgress:remainingTrafficDelay:)`. The program stops execution if the array remainingRouteStopsProgress is empty.

Fixes

  • Fix flaky disappearance of safety locations on the horizon when navigation is stopped and then restarted.
  • Fix MapMatchingEngine reporting wrong match on leaving NDS map boundaries.
  • Fix simulating navigation with GPX file.

Removals

  • Remove NavigationHorizonDataAdapter.DecodedLocation from experimental API.
  • Remove NavigationHorizonDataAdapter.DecodingFailure from experimental API.
  • Remove NavigationHorizonDataAdapter.HorizonDataAdapter from experimental API.
  • Remove TomTomSDKCommon.SafetyLocationType from public API.
  • Rename TomTomSDKCommon.SafetyLocationType to TomTomSDKCommon.InternalSafetyLocationType.

Updates

  • Add remainingTrafficDelay property to RouteStopProgress. Use the remainingTrafficDelay argument in the constructor RouteStopProgress.init(routeStopID:remainingTime:remainingDistance:remainingTrafficDelay:).
  • Add inline documentation for TomTomSDKNavigation.DefaultTomTomNavigation.persistentNavigationState property.
  • Add inline documentation for TomTomSDKNavigation.DefaultTomTomNavigation.resume(persistentNavigationState:) method.
  • Add inline documentation for TomTomSDKNavigation.PersistentNavigationState public methods.
  • Add inline documentation for TomTomSDKNavigation.TomTomNavigation.persistentNavigationState property.
  • Add inline documentation for TomTomSDKNavigation.TomTomNavigation.resume(persistentNavigationState:) method.
  • Add the argument remainingTrafficDelay to RouteStopProgress constructor. Use the remainingTrafficDelay argument in the constructor RouteStopProgress.init(routeStopID:remainingTime:remainingDistance:remainingTrafficDelay:).
  • Added TomTomSDKCommon.SafetyLocation.SafetyLocationType enum as public representation for safety locations types.
  • Remove DispatchQueue.main.async wrapper from delegate calls.
  • The following API is available in General Availability:
    • TomTomSDKNavigationEngines.DangerousGoodsRestrictionsElement

Routing

Breaking changes

  • Rename TomTomSDKRoutingCommon.Vignette enum to TomTomSDKRoutingCommon.Vignettes.
  • Rename the TomTomSDKRoutingCommon.Request.vignette.allowVignette field to TomTomSDKRoutingCommon.Request.vignettes.allow(countries).
  • Rename the TomTomSDKRoutingCommon.Request.vignette.avoidVignette field to TomTomSDKRoutingCommon.Request.vignettes.avoid(countries).
  • Rename the TomTomSDKRoutingCommon.Request.vignette field to TomTomSDKRoutingCommon.Request.vignettes.

Deprecations

  • Deprecate the TomTomSDKRoute.AutoTransportType.skyCableTransporterBridge case. It was not used within NavSDK.

Updates

  • Document unsupported long-distance EV routing options.

Fixes

  • Prevent search operations from spanning after callback in TomTomSDKSearchOffline.OfflineSearch.search() to avoid unsynchronized access to the map and potential crash.

Updates

  • Add TomTomSDKSearchHybrid.HybridSearchError to Public Preview.
  • Return TomTomSDKSearchHybrid.HybridSearchError.cancelled when cancelling a hybrid search query.
  • Update search documentation according to Usability testers' feedback.