Release Notes
Version 0.38.1 - 29/01/2024
General
Fixes
- Updated routing default endpoint, which was incorrectly set in Guidance v2, making route calculations impossible for some customers.
Version 0.38.0 - 17/01/2024
General
Breaking changes
TomTomSDKNDSStoreUpdater.CompositeRegion.childrenproperty is now optional. Existing checks forCompositeRegion.children.isEmptyshould be replaced withCompositeRegion.children == nilchecks. An alternative when iterating over the children is to use an empty list in case ofnilas follows:CompositeRegion.children ?? []
Fixes
- Avoiding now downloading the same file more than once and send only one finished callback for each download.
- Fixed: could not build module
TomTomSDKBindingMapDisplayInternal.
Removals
- Decommissioned the TomTom Legacy SDK.
Updates
- Promoted the
TomTomSDKCommon.TTUnitRatioto General Availability.
Known issues
An incorrect routing endpoint is set by default in Guidance v2, making route calculations impossible with version 0.38.0 for some customers. Potential problems include prompts for a valid API key, such as:
"Your API key is invalid." "Your API key does not support either the Routing API or the Routing API with Extended Guidance endpoints.".
Resolution of the issue involves upgrading SDK to version 0.39.1 or later.
Location
Breaking changes
- Made the
TomTomSDKLocationProvider.MatchedLocation.mapPositionas internal. - Renamed the
TomTomSDKLocationProvider.MatchedLocation.positionIDtoTomTomSDKLocationProvider.MatchedLocation.id.
Map
Breaking changes
- Promoted the
RouteAPI to GA. - Renamed the
TomTomSDKMapDisplay.CameraOperatorRoadClassclass toTomTomSDKMapDisplay. FollowCameraOperatorConfig.RoadClass.
New Features
- Introduced
TrafficVisualizationin the Routing visualization module.
Updates
- Aligned documentation in
TomTomSDKMapDisplay.Camerabefore promotion to GA. - Introduced
CameraTrackingMode.followNorthUp,CameraTrackingMode.followRouteDirectioncases. - Updated camera properties for default follow route operators.
Navigation
Breaking changes
TomTomSDKNavigationEngines.RouteProgressEngine.calculateProgress(navigationSnapshot:)has a return type change fromRouteProgressto[UUID : RouteProgress].- Added a new framework
TomTomSDKNDSStoreUpdater. Details:- Moved all of the
TomTomSDKDataManagementOffline.NDSStoremethods and theupdatesEnabledproperty toTomTomSDKNDSStoreUpdater.NDSStoreUpdater. This was done to encapsulate the required functionalities better (so now theTomTomSDKDataManagementOfflinemodule provides only read-only access to the NDS map, while theTomTomSDKNDSStoreUpdateris used only for the update functionality). - Moved all of the existing types related to the map updates from
TomTomSDKDataManagementOfflinetoTomTomSDKNDSStoreUpdater. - Added the
TomTomSDKDataManagementOffline.NDSMapUpdaterprotocol to allow the use of a custom NDS update implementation in the TomTom SDK. - Added the
TomTomSDKDataManagementOffline.NDSMapContextprotocol to group together theNDSStoreand the associated updater. - Removed
TomTomSDKDataManagementOffline.NDSStoreConfiguration.ndsStoreUpdateConfig. Manually instantiatingTomTomSDKNDSStoreUpdater.NDSStoreUpdaterinstead of using the NDS map update functionality. - Changed the argument from
ndsStore: NDSStoretondsStoreUpdater: NDSStoreUpdaterinCompositeRegionsUpdater.init. - Changed the argument from
ndsStore: NDSStoretondsMapContext: NDSMapContextin the following places:TomTomSDKNavigationDataStoreHybrid.HybridNavigationDataStore.initTomTomSDKNavigationHybrid.HybridTomTomNavigationFactory.Configuration.initTomTomSDKNavigationOffline.OfflineTomTomNavigationFactory.Configuration.init
- Protocol
TomTomSDKDataManagement.MapDataStoreAccessSyncingnow inheritsAnyObject, so it's no longer possible to implement it on astruct(it has to be aclass). - Removed the
NDSStoreUpdateConfig.geopoliticalView. Using theNDSStoreConfiguration.geopoliticalViewinstead.NDSStoreUpdaterwill use the geopolitical view of the suppliedNDSStore(which is constructed with theNDSStoreConfiguration).
- Moved all of the
- Changed the parameter type for
TomTomSDKDataManagement. MapDataStoreAccessSyncing.addObserver(_:)fromTomTomSDKDataManagement.OnStoreAccessChangedObservertoTomTomSDKDataManagement.StoreAccessChangedObserver. - Changed the parameter type for
TomTomSDKDataManagement. MapDataStoreAccessSyncing.releaseWriteAccess(_:)fromTomTomSDKDataManagement.OnStoreAccessChangedObservertoTomTomSDKDataManagement.StoreAccessChangedObserver. - Changed the parameter type for
TomTomSDKDataManagement. MapDataStoreAccessSyncing.removeObserver(_:)fromTomTomSDKDataManagement.OnStoreAccessChangedObservertoTomTomSDKDataManagement.StoreAccessChangedObserver. - Changed the parameter type for
TomTomSDKDataManagement. MapDataStoreAccessSyncing.requestWriteAccess(_:)fromTomTomSDKDataManagement.OnStoreAccessChangedObservertoTomTomSDKDataManagement.StoreAccessChangedObserver. - Marked as internal and renamed
MapDataStoreAccesstoStoreAccessto align with Android. - Moved the
NDSStoreAccessSyncErrortoNDSStoreAccessSync.swiftand renamed toSyncError. - Removed the
didProposeRoutePlannotification fromNavigationRouteObserver. - Removed the
TomTomSDKNavigationEngines.DrivingHistorySnapshotfrom public API. - Removed the
TomTomSDKNavigationEngines.MapMatchingResult.init(location:predictions:followedRouteIds:mapPosition:). - Removed the
TomTomSDKNavigationEngines.MapMatchingResult.timestamp. - Removed the property
TomTomSDKNavigationEngines.RouteSnapshot.projectionfrom the public API. - Renamed the
TomTomSDKDataManagement.OnStoreAccessChangedObserver.onStoreAccessChangedObserverIdproperty toTomTomSDKDataManagement.StoreAccessChangedObserver.storeAccessChangedObserverID. - Renamed the
TomTomSDKDataManagement.OnStoreAccessChangedObserverprotocol toTomTomSDKDataManagement.StoreAccessChangedObserver. - Renamed the
TomTomSDKDataManagementOffline.RegionGraphNodeState.InstallStatetoTomTomSDKDataManagementOffline.InstallState. - Renamed the
TomTomSDKDataManagementOffline.RegionGraphNodeState.UpdateStatetoTomTomSDKDataManagementOffline.UpdateState. - Renamed the
TomTomSDKNavigationEngines.MapMatchingResult.predictionstoTomTomSDKNavigationEngines.MapMatchingResult.locationPredictions. - Restricted the
TomTomSDKVehicle.VehicleProvideradoption to classes. - The
TomTomSDKNavigationEngines.ConfigurationSnapshotconstructor is no longer part of the public API. - Updated
TomTomSDKNavigationEngines.MapMatchingResult.init(matchedLocation:timestamp:predictions:followedRouteIds:alternativeMatchedLocations:)parameters. - Using
didAddRoute(:),didRemoveRoute(:)anddidChangeActiveRoute()ofNavigationRouteAddedObserver,NavigationRouteRemovedObserverandNavigationActiveRouteChangedObserverrespectively. - Using the existential
VehicleUpdateObserverinTomTomSDKVehicle.VehicleProvider.addVehicleUpdateObserver(:)andTomTomSDKVehicle.VehicleProvider.removeVehicleUpdateObserver(:).
New Features
- Tracking route progress for multiple routes (active route and better proposal).
Fixes
- Added documentation to the
NavigationTileStore. - Avoiding unsafe unwrapping optionals in
NavigationTileStore.checkConfiguration. - Removed the display of the Location Preview Panel if we are on the road.
- Using correct unit for speed limits.
- Сhanged the
noNextInstructionserror on theunavailableRoutePlan.
Updates
TomTomSDKDataManagement.StoreAccessChangedObserveris now available in General Availability.TomTomSDKLocationProvider.MatchedLocationis now available in General Availability.TomTomSDKNavigationEngines.BetterProposalAcceptanceModeis added to theTomTomSDKNavigation.TomTomNavigationprotocol.TomTomSDKNavigationEngines.ConfigurationSnapshotis now available in General Availability.TomTomSDKNavigationEngines.MapMatchingResultis now available in General Availability.TomTomSDKNavigationTileStore.NavigationTileStoreis now available in General Availability.- Merged horizon elements if they are continuous.
- Moved
TomTomSDKNavigation.TomTomNavigation.betterProposalAcceptanceModeproperty to GA in theTomTomSDKNavigation.TomTomNavigationprotocol scope. - Updated documentation in
TomTomSDKNavigationEngines.WaypointArrivalStateandTomTomSDKNavigationEngines.WaypointArrivalStatus. - Updated guides and code snippets to include the following new observers,
TomTomNavigation.NavigationRouteAddedObserver,TomTomNavigation.NavigationRouteRemovedObserver,TomTomNavigation.NavigationRouteUpdateObserverandTomTomNavigation.NavigationActiveRouteChangedObserver. - Updated the documentation for the
TomTomSDKNavigation.ProjectedRoute.
Routing
Breaking changes
TomTomRoutePlanner.OnlineAPIVersionis now available in General Availability.
Deprecations
- Deprecated
TomTomRoutePlanner.OnlineAPIVersion.v1 value. Use theTomTomSDKRoutePlanner.OnlineAPIVersion.v2enum case instead.
New Features
- Introduced new
Tollsection. The section presents parts of the road with the usage-based toll collection system (i.e., distance-based tolls, toll bridges and tunnels, weight-based tolls). - Provided a version of the
RouteProjectionEnginethat supportsUnifiedDataAccessfactory exposed by theUnifiedMapDataStoreAccessProvider.
Search
Deprecations
- Deprecated the
TomTomSDKSearchOffline.OfflineSearchclass. Instead, use theTomTomSDKSearchOffline.OfflineSearchFactoryto create an instance of offline search. - Deprecated the
TomTomSDKStructuredSearchOffline.OfflineStructuredSearchclass. Instead, use theTomTomSDKStructuredSearchOffline.OfflineStructuredSearchFactoryto instantiateTomTomSDKStructuredSearch.StructuredSearchthat provides offline support. - Deprecated the
TomTomSDKStructuredSearchOffline.OfflineStructuredSearchSessionclass. Instead, use theTomTomSDKStructuredSearch.StructuredSearchSessionprotocol instead to access structured search functionality.
Updates
TomTomSDKReverseGeocoderHybrid.HybridReverseGeocoderFactoryis now available in Public Preview.TomTomSDKReverseGeocoderOffline. OfflineReverseGeocoderErroris now available in General Availability.TomTomSDKReverseGeocoderOffline. OfflineReverseGeocoderErroris now available in Public Preview.TomTomSDKReverseGeocoderOffline.OfflineReverseGeocoderFactoryis now available in General Availability.TomTomSDKSearchHybrid.HybridSearchFactory.create(apiKey:store:timeout:customPOIProviders:customAPIURL:)is now available in Public Preview.TomTomSDKSearchHybrid.HybridSearchFactoryis now available in Public Preview.TomTomSDKStructuredSearch.StructuredSearchSession.goBack(step:completion:)is now available in General Availability.TomTomSDKStructuredSearchOffline.OfflineStructuredSearchFactory.create(store:)is now available in General Availability.
Traffic
Breaking changes
- Changed the
configurationparameter type in functionTrafficFactory.createWithTPEGProvider(store:configuration:locationEngine:)fromTomTomSDKBindingTPEGTrafficInternal.TPEGTrafficClientConfigurationtoTomTomSDKTrafficEngine.TPEGTrafficClientConfiguration. - Renamed
TomTomSDKTraffic.TrafficServiceprotocol toTomTomSDKTraffic.Trafficand madeTomTomSDKTraffic.TrafficServicea type alias ofTomTomSDKTraffic.Traffic. Changed type oftrafficServiceargument ofTomTomSDKRoutePlannerOffline.OfflineRangeCalculator.init(store:trafficService:)fromTomTomSDKTraffic.TrafficServicetoTomTomSDKTraffic.Traffic. Changed type oftrafficServiceargument ofTomTomSDKRoutePlannerOffline.OfflineRoutePlanner.init(store:trafficService:)fromTomTomSDKTraffic.TrafficServicetoTomTomSDKTraffic.Traffic. Changed type oftrafficServiceargument ofTomTomSDKTrafficDataProvider.TrafficDataProviderFactory.createTrafficDataProvider(trafficService:)fromTomTomSDKTraffic.TrafficServicetoTomTomSDKTraffic.Traffic. Changed the return type ofTomTomSDKTrafficEngine.TrafficFactory.create(apiKey:store:locationEngine:)fromTomTomSDKTraffic.TrafficServicetoTomTomSDKTraffic.Traffic. Changed the return type ofTomTomSDKTrafficEngine.TrafficFactory.createWithTPEGProvider(apiKey:store:locationEngine:)fromTomTomSDKTraffic.TrafficServicetoTomTomSDKTraffic.Traffic.
Deprecations
- Deprecated
TomTomSDKTrafficTPEG.TPEGTrafficService. UseTomTomSDKTrafficEngine.TrafficFactoryinstead. - Deprecated the
TomTomSDKTrafficTPEG.TPEGTrafficClientConfiguration. UseTomTomSDKTrafficEngine.TPEGTrafficClientConfigurationinstead.