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.children
property is now optional. Existing checks forCompositeRegion.children.isEmpty
should be replaced withCompositeRegion.children == nil
checks. An alternative when iterating over the children is to use an empty list in case ofnil
as 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.TTUnitRatio
to 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.mapPosition
as internal. - Renamed the
TomTomSDKLocationProvider.MatchedLocation.positionID
toTomTomSDKLocationProvider.MatchedLocation.id
.
Map
Breaking changes
- Promoted the
Route
API to GA. - Renamed the
TomTomSDKMapDisplay.CameraOperatorRoadClass
class toTomTomSDKMapDisplay. FollowCameraOperatorConfig.RoadClass
.
New Features
- Introduced
TrafficVisualization
in the Routing visualization module.
Updates
- Aligned documentation in
TomTomSDKMapDisplay.Camera
before promotion to GA. - Introduced
CameraTrackingMode.followNorthUp
,CameraTrackingMode.followRouteDirection
cases. - Updated camera properties for default follow route operators.
Navigation
Breaking changes
TomTomSDKNavigationEngines.RouteProgressEngine.calculateProgress(navigationSnapshot:)
has a return type change fromRouteProgress
to[UUID : RouteProgress]
.- Added a new framework
TomTomSDKNDSStoreUpdater
. Details:- Moved all of the
TomTomSDKDataManagementOffline.NDSStore
methods and theupdatesEnabled
property toTomTomSDKNDSStoreUpdater.NDSStoreUpdater
. This was done to encapsulate the required functionalities better (so now theTomTomSDKDataManagementOffline
module provides only read-only access to the NDS map, while theTomTomSDKNDSStoreUpdater
is used only for the update functionality). - Moved all of the existing types related to the map updates from
TomTomSDKDataManagementOffline
toTomTomSDKNDSStoreUpdater
. - Added the
TomTomSDKDataManagementOffline.NDSMapUpdater
protocol to allow the use of a custom NDS update implementation in the TomTom SDK. - Added the
TomTomSDKDataManagementOffline.NDSMapContext
protocol to group together theNDSStore
and the associated updater. - Removed
TomTomSDKDataManagementOffline.NDSStoreConfiguration.ndsStoreUpdateConfig
. Manually instantiatingTomTomSDKNDSStoreUpdater.NDSStoreUpdater
instead of using the NDS map update functionality. - Changed the argument from
ndsStore: NDSStore
tondsStoreUpdater: NDSStoreUpdater
inCompositeRegionsUpdater.init
. - Changed the argument from
ndsStore: NDSStore
tondsMapContext: NDSMapContext
in the following places:TomTomSDKNavigationDataStoreHybrid.HybridNavigationDataStore.init
TomTomSDKNavigationHybrid.HybridTomTomNavigationFactory.Configuration.init
TomTomSDKNavigationOffline.OfflineTomTomNavigationFactory.Configuration.init
- Protocol
TomTomSDKDataManagement.MapDataStoreAccessSyncing
now inheritsAnyObject
, so it's no longer possible to implement it on astruct
(it has to be aclass
). - Removed the
NDSStoreUpdateConfig.geopoliticalView
. Using theNDSStoreConfiguration.geopoliticalView
instead.NDSStoreUpdater
will 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.OnStoreAccessChangedObserver
toTomTomSDKDataManagement.StoreAccessChangedObserver
. - Changed the parameter type for
TomTomSDKDataManagement. MapDataStoreAccessSyncing.releaseWriteAccess(_:)
fromTomTomSDKDataManagement.OnStoreAccessChangedObserver
toTomTomSDKDataManagement.StoreAccessChangedObserver
. - Changed the parameter type for
TomTomSDKDataManagement. MapDataStoreAccessSyncing.removeObserver(_:)
fromTomTomSDKDataManagement.OnStoreAccessChangedObserver
toTomTomSDKDataManagement.StoreAccessChangedObserver
. - Changed the parameter type for
TomTomSDKDataManagement. MapDataStoreAccessSyncing.requestWriteAccess(_:)
fromTomTomSDKDataManagement.OnStoreAccessChangedObserver
toTomTomSDKDataManagement.StoreAccessChangedObserver
. - Marked as internal and renamed
MapDataStoreAccess
toStoreAccess
to align with Android. - Moved the
NDSStoreAccessSyncError
toNDSStoreAccessSync.swift
and renamed toSyncError
. - Removed the
didProposeRoutePlan
notification fromNavigationRouteObserver
. - Removed the
TomTomSDKNavigationEngines.DrivingHistorySnapshot
from public API. - Removed the
TomTomSDKNavigationEngines.MapMatchingResult.init(location:predictions:followedRouteIds:mapPosition:)
. - Removed the
TomTomSDKNavigationEngines.MapMatchingResult.timestamp
. - Removed the property
TomTomSDKNavigationEngines.RouteSnapshot.projection
from the public API. - Renamed the
TomTomSDKDataManagement.OnStoreAccessChangedObserver.onStoreAccessChangedObserverId
property toTomTomSDKDataManagement.StoreAccessChangedObserver.storeAccessChangedObserverID
. - Renamed the
TomTomSDKDataManagement.OnStoreAccessChangedObserver
protocol toTomTomSDKDataManagement.StoreAccessChangedObserver
. - Renamed the
TomTomSDKDataManagementOffline.RegionGraphNodeState.InstallState
toTomTomSDKDataManagementOffline.InstallState
. - Renamed the
TomTomSDKDataManagementOffline.RegionGraphNodeState.UpdateState
toTomTomSDKDataManagementOffline.UpdateState
. - Renamed the
TomTomSDKNavigationEngines.MapMatchingResult.predictions
toTomTomSDKNavigationEngines.MapMatchingResult.locationPredictions
. - Restricted the
TomTomSDKVehicle.VehicleProvider
adoption to classes. - The
TomTomSDKNavigationEngines.ConfigurationSnapshot
constructor is no longer part of the public API. - Updated
TomTomSDKNavigationEngines.MapMatchingResult.init(matchedLocation:timestamp:predictions:followedRouteIds:alternativeMatchedLocations:)
parameters. - Using
didAddRoute(:)
,didRemoveRoute(:)
anddidChangeActiveRoute()
ofNavigationRouteAddedObserver
,NavigationRouteRemovedObserver
andNavigationActiveRouteChangedObserver
respectively. - Using the existential
VehicleUpdateObserver
inTomTomSDKVehicle.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
noNextInstructions
error on theunavailableRoutePlan
.
Updates
TomTomSDKDataManagement.StoreAccessChangedObserver
is now available in General Availability.TomTomSDKLocationProvider.MatchedLocation
is now available in General Availability.TomTomSDKNavigationEngines.BetterProposalAcceptanceMode
is added to theTomTomSDKNavigation.TomTomNavigation
protocol.TomTomSDKNavigationEngines.ConfigurationSnapshot
is now available in General Availability.TomTomSDKNavigationEngines.MapMatchingResult
is now available in General Availability.TomTomSDKNavigationTileStore.NavigationTileStore
is now available in General Availability.- Merged horizon elements if they are continuous.
- Moved
TomTomSDKNavigation.TomTomNavigation.betterProposalAcceptanceMode
property to GA in theTomTomSDKNavigation.TomTomNavigation
protocol scope. - Updated documentation in
TomTomSDKNavigationEngines.WaypointArrivalState
andTomTomSDKNavigationEngines.WaypointArrivalStatus
. - Updated guides and code snippets to include the following new observers,
TomTomNavigation.NavigationRouteAddedObserver
,TomTomNavigation.NavigationRouteRemovedObserver
,TomTomNavigation.NavigationRouteUpdateObserver
andTomTomNavigation.NavigationActiveRouteChangedObserver
. - Updated the documentation for the
TomTomSDKNavigation.ProjectedRoute
.
Routing
Breaking changes
TomTomRoutePlanner.OnlineAPIVersion
is now available in General Availability.
Deprecations
- Deprecated
TomTomRoutePlanner.OnlineAPIVersion.v1 value
. Use theTomTomSDKRoutePlanner.OnlineAPIVersion.v2
enum case instead.
New Features
- Introduced new
Toll
section. 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
RouteProjectionEngine
that supportsUnifiedDataAccess
factory exposed by theUnifiedMapDataStoreAccessProvider
.
Search
Deprecations
- Deprecated the
TomTomSDKSearchOffline.OfflineSearch
class. Instead, use theTomTomSDKSearchOffline.OfflineSearchFactory
to create an instance of offline search. - Deprecated the
TomTomSDKStructuredSearchOffline.OfflineStructuredSearch
class. Instead, use theTomTomSDKStructuredSearchOffline.OfflineStructuredSearchFactory
to instantiateTomTomSDKStructuredSearch.StructuredSearch
that provides offline support. - Deprecated the
TomTomSDKStructuredSearchOffline.OfflineStructuredSearchSession
class. Instead, use theTomTomSDKStructuredSearch.StructuredSearchSession
protocol instead to access structured search functionality.
Updates
TomTomSDKReverseGeocoderHybrid.HybridReverseGeocoderFactory
is now available in Public Preview.TomTomSDKReverseGeocoderOffline. OfflineReverseGeocoderError
is now available in General Availability.TomTomSDKReverseGeocoderOffline. OfflineReverseGeocoderError
is now available in Public Preview.TomTomSDKReverseGeocoderOffline.OfflineReverseGeocoderFactory
is now available in General Availability.TomTomSDKSearchHybrid.HybridSearchFactory.create(apiKey:store:timeout:customPOIProviders:customAPIURL:)
is now available in Public Preview.TomTomSDKSearchHybrid.HybridSearchFactory
is 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
configuration
parameter type in functionTrafficFactory.createWithTPEGProvider(store:configuration:locationEngine:)
fromTomTomSDKBindingTPEGTrafficInternal.TPEGTrafficClientConfiguration
toTomTomSDKTrafficEngine.TPEGTrafficClientConfiguration
. - Renamed
TomTomSDKTraffic.TrafficService
protocol toTomTomSDKTraffic.Traffic
and madeTomTomSDKTraffic.TrafficService
a type alias ofTomTomSDKTraffic.Traffic
. Changed type oftrafficService
argument ofTomTomSDKRoutePlannerOffline.OfflineRangeCalculator.init(store:trafficService:)
fromTomTomSDKTraffic.TrafficService
toTomTomSDKTraffic.Traffic
. Changed type oftrafficService
argument ofTomTomSDKRoutePlannerOffline.OfflineRoutePlanner.init(store:trafficService:)
fromTomTomSDKTraffic.TrafficService
toTomTomSDKTraffic.Traffic
. Changed type oftrafficService
argument ofTomTomSDKTrafficDataProvider.TrafficDataProviderFactory.createTrafficDataProvider(trafficService:)
fromTomTomSDKTraffic.TrafficService
toTomTomSDKTraffic.Traffic
. Changed the return type ofTomTomSDKTrafficEngine.TrafficFactory.create(apiKey:store:locationEngine:)
fromTomTomSDKTraffic.TrafficService
toTomTomSDKTraffic.Traffic
. Changed the return type ofTomTomSDKTrafficEngine.TrafficFactory.createWithTPEGProvider(apiKey:store:locationEngine:)
fromTomTomSDKTraffic.TrafficService
toTomTomSDKTraffic.Traffic
.
Deprecations
- Deprecated
TomTomSDKTrafficTPEG.TPEGTrafficService
. UseTomTomSDKTrafficEngine.TrafficFactory
instead. - Deprecated the
TomTomSDKTrafficTPEG.TPEGTrafficClientConfiguration
. UseTomTomSDKTrafficEngine.TPEGTrafficClientConfiguration
instead.