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.
Navigation
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
andTomTomSDKNavigationEngines.RouteProgress.remainingDistance
from the constructor.- The property
TomTomSDKNavigationEngines.RouteProgress.remainingTime
becomes computed. - The property
TomTomSDKNavigationEngines.RouteProgress.remainingDistance
becomes computed.
- The property
- 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 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
remainingTrafficDelay
fromRouteProgress
constructor. Make the propertyRouteProgress.remainingTrafficDelay
computed. - 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.NavigationActiveRouteChangedObserver
toTomTomNavigation.NavigationActiveRouteChangeObserver
. - Rename
TomTomNavigation.NavigationRouteAddedObserver
toTomTomNavigation.NavigationRouteAddObserver
. - Rename
TomTomNavigation.NavigationRouteRemovedObserver
toTomTomNavigation.NavigationRouteRemovedObserver
. - The argument
remainingRouteStopsProgress
must be non-empty array in the constructor`RouteProgress.init(distanceAlongRoute:remainingRouteStopsProgress:remainingTrafficDelay:)`. The program stops execution if the arrayremainingRouteStopsProgress
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
toTomTomSDKCommon.InternalSafetyLocationType
.
Updates
- Add
remainingTrafficDelay
property toRouteStopProgress
. Use theremainingTrafficDelay
argument in the constructorRouteStopProgress.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
toRouteStopProgress
constructor. Use theremainingTrafficDelay
argument in the constructorRouteStopProgress.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 toTomTomSDKRoutingCommon.Vignettes
. - Rename the
TomTomSDKRoutingCommon.Request.vignette.allowVignette
field toTomTomSDKRoutingCommon.Request.vignettes.allow(countries)
. - Rename the
TomTomSDKRoutingCommon.Request.vignette.avoidVignette
field toTomTomSDKRoutingCommon.Request.vignettes.avoid(countries)
. - Rename the
TomTomSDKRoutingCommon.Request.vignette
field toTomTomSDKRoutingCommon.Request.vignettes
.
Deprecations
- Deprecate the
TomTomSDKRoute.AutoTransportType.skyCableTransporterBridge
case. 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.HybridSearchError
to Public Preview. - Return
TomTomSDKSearchHybrid.HybridSearchError.cancelled
when cancelling a hybridsearch
query. - Update search documentation according to Usability testers' feedback.