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.CurrentLocationViewModelas an experimental API. - Expose LLV experimental styles.
- Update map documentation according to Usability testers' feedback.
Navigation
Breaking changes
- Add optional authentication URI parameter for SafetyLocations and Hazards.
- Remove
TomTomSDKHorizonEngineHybrid.HybridHorizonEngineFactoryfrom the public API. - Remove
TomTomSDKHorizonEngineTileStore.TileStoreHorizonEngineFactoryfrom the public API. - Remove
TomTomSDKHazardsfrom the public API. - Remove
TomTomSDKHorizonEngineOffline.OfflineHorizonEngineFactoryfrom the public API. - Remove
TomTomSDKHorizonEngineTileStore.TileStoreHorizonEngineFactory.create(dataStore:dataAdapters:)from the public API. - Remove
TomTomSDKHorizonEngineUnified.HorizonEngineFactoryfrom the public API. - Remove
TomTomSDKNavigationEngines.RouteProgress.remainingTimeandTomTomSDKNavigationEngines.RouteProgress.remainingDistancefrom the constructor.- The property
TomTomSDKNavigationEngines.RouteProgress.remainingTimebecomes computed. - The property
TomTomSDKNavigationEngines.RouteProgress.remainingDistancebecomes computed.
- The property
- Remove
TomTomSDKNavigationEngines.SafetyLocationElement.isZonefrom the public API. - Remove
TomTomSDKNavigationHorizonDataAdapter. HorizonDataChangedObserverfrom the public API. - Remove
TomTomSDKNavigationHorizonDataAdapter.HorizonDataAdapteras internal API. - Remove
TomTomSDKNavigationHorizonDataAdapter.HorizonDataObjectfrom the public API. - Remove
TomTomSDKNavigationHorizonDataAdapter.HorizonDataSnapshotfrom the public API. - Remove
TomTomSDKNavigationHorizonDataAdapter.HorizonDataTypefrom the public API. - Remove
TomTomSDKNavigationHorizonDataAdapter.LocationReferencefrom the public API. - Remove
TomTomSDKSafetyCamerasfrom 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 constructorTomTomSDKNavigationOnline.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 constructorTomTomSDKNavigationHybrid.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 constructorTomTomSDKNavigationOffline.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
remainingTrafficDelayfromRouteProgressconstructor. Make the propertyRouteProgress.remainingTrafficDelaycomputed. - Remove the initializer
TomTomSDKNavigationEngines.SafetyLocationElement.init(id:pathID:startOffset:endOffset:safetyLocation:isZone:)from the public API. Instead, useTomTomSDKNavigationEngines.SafetyLocationElement.init(id:pathID:startOffset:endOffset:safetyLocation:). - Rename
TomTomNavigation.NavigationActiveRouteChangedObservertoTomTomNavigation.NavigationActiveRouteChangeObserver. - Rename
TomTomNavigation.NavigationRouteAddedObservertoTomTomNavigation.NavigationRouteAddObserver. - Rename
TomTomNavigation.NavigationRouteRemovedObservertoTomTomNavigation.NavigationRouteRemovedObserver. - The argument
remainingRouteStopsProgressmust be non-empty array in the constructor`RouteProgress.init(distanceAlongRoute:remainingRouteStopsProgress:remainingTrafficDelay:)`. The program stops execution if the arrayremainingRouteStopsProgressis 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.DecodedLocationfrom experimental API. - Remove
NavigationHorizonDataAdapter.DecodingFailurefrom experimental API. - Remove
NavigationHorizonDataAdapter.HorizonDataAdapterfrom experimental API. - Remove
TomTomSDKCommon.SafetyLocationTypefrom public API. - Rename
TomTomSDKCommon.SafetyLocationTypetoTomTomSDKCommon.InternalSafetyLocationType.
Updates
- Add
remainingTrafficDelayproperty toRouteStopProgress. Use theremainingTrafficDelayargument in the constructorRouteStopProgress.init(routeStopID:remainingTime:remainingDistance:remainingTrafficDelay:). - Add inline documentation for
TomTomSDKNavigation.DefaultTomTomNavigation.persistentNavigationStateproperty. - Add inline documentation for
TomTomSDKNavigation.DefaultTomTomNavigation.resume(persistentNavigationState:)method. - Add inline documentation for
TomTomSDKNavigation.PersistentNavigationStatepublic methods. - Add inline documentation for
TomTomSDKNavigation.TomTomNavigation.persistentNavigationStateproperty. - Add inline documentation for
TomTomSDKNavigation.TomTomNavigation.resume(persistentNavigationState:)method. - Add the argument
remainingTrafficDelaytoRouteStopProgressconstructor. Use theremainingTrafficDelayargument in the constructorRouteStopProgress.init(routeStopID:remainingTime:remainingDistance:remainingTrafficDelay:). - Added
TomTomSDKCommon.SafetyLocation.SafetyLocationTypeenum as public representation for safety locations types. - Remove
DispatchQueue.main.asyncwrapper from delegate calls. - The following API is available in General Availability:
TomTomSDKNavigationEngines.DangerousGoodsRestrictionsElement
Routing
Breaking changes
- Rename
TomTomSDKRoutingCommon.Vignetteenum toTomTomSDKRoutingCommon.Vignettes. - Rename the
TomTomSDKRoutingCommon.Request.vignette.allowVignettefield toTomTomSDKRoutingCommon.Request.vignettes.allow(countries). - Rename the
TomTomSDKRoutingCommon.Request.vignette.avoidVignettefield toTomTomSDKRoutingCommon.Request.vignettes.avoid(countries). - Rename the
TomTomSDKRoutingCommon.Request.vignettefield toTomTomSDKRoutingCommon.Request.vignettes.
Deprecations
- Deprecate the
TomTomSDKRoute.AutoTransportType.skyCableTransporterBridgecase. It was not used within NavSDK.
Updates
- Document unsupported long-distance EV routing options.
Search
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.HybridSearchErrorto Public Preview. - Return
TomTomSDKSearchHybrid.HybridSearchError.cancelledwhen cancelling a hybridsearchquery. - Update search documentation according to Usability testers' feedback.