Announcements
This page contains important announcements about new iOS features, fixes, or breaking changes shared in advance with our developer community. For the latest changes make sure to check the Release notes page.
Announcing breaking changes: September 18, 2023
General
Minor changes
- We are changing the optionality of the
RoadProperties.numberOfLanes
property. - We are changing the optionality of parameter 0 in the
RoadProperties
constructor. - We are removing the default argument from parameter 0 in the
RoadProperties
constructor. - We are removing the
NumberOfLanes.init(inDrivingDirection:inOppositeDirection:)
constructor.
Maps
What is changing?
- We are renaming
CompositeRegionsUpdater.cancelAllMapOperations(regionIDs:)
to funccancelAllMapOperations(for:)
. - We are renaming
NDSStore.cancelAllMapOperations(regionIDs:)
to funccancelAllMapOperations(for:)
.
Announcing breaking changes: September 11, 2023
Search
What is changing?
In TomTomSDKSearchVisualization
:
- We are renaming func
SearchVisualization.clearAllPOIs()
to funcclear()
. - We are renaming func
SearchVisualization.displayPOIs(from:)
to funcdisplayPOIsAlongRoute(geometry:configuration:completion:)
. - We are renaming func
SearchVisualizationFactory.createSearchVisualization(map:)
to funccreate(with:and:)
. - We are renaming
Import UIKit
toImport CoreLocation
. - Func
SearchVisualization.displayPOIs(from:)
has a parameter 0 type change from[TomTomSDKSearch.SearchResult]
to[CoreLocation.CLLocationCoordinate2D]
. - Func
SearchVisualizationFactory.createSearchVisualization(map:)
has a parameter 0 type change fromTomTomSDKMapDisplay.TomTomMap
toTomTomSDKSearch.Search
.
Navigation
What is changing?
In TomTomSDKNavigationCommon
:
- We are adding:
- enum
GeneralRoadPropertiesError
. - enum
RoadCondition
. - enum
RoadPropertiesError
. - struct
LocationContext.RoadProperties
.
- enum
- We are removing struct
NumberOfLanes
.
In TomTomSDKNavigationEngines
we are removing:
- enum
FormOfWay
. - enum
GeneralRoadPropertiesError
. - enum
RoadCondition
. - enum
RoadPropertiesError
. - struct
LocationContext.RoadProperties
. - struct
NumberOfLanes
.
In LocationContext
:
- We are making var
LocationContext.address
optional.
In GeneralRoadProperties
:
- We are adding:
- Constructor
GeneralRoadProperties.init(id:pathID:startOffset:endOffset:roadProperties)
. - Var
GeneralRoadProperties.roadProperties
.
- Constructor
- We are removing constructor
GeneralRoadProperties.init(id:pathID:startOffset:endOffset:numberOfLanes:functionalRoadClass:formOfWay:roadCondition:drivingSide:isOverpass:isUnderpass:isDividedRoad:isTransitProhibited:isTollRoad:isUrbanArea:isComplexIntersection:isTunnel:tunnelName:isBridge:bridgeName:)
. - We are removing the following:
- Var
GeneralRoadProperties.bridgeName
. - Var
GeneralRoadProperties.drivingSide
. - Var
GeneralRoadProperties.formOfWay
. - Var
GeneralRoadProperties.functionalRoadClass
. - Var
GeneralRoadProperties.isBridge
. - Var
GeneralRoadProperties.isComplexIntersection
. - Var
GeneralRoadProperties.isDividedRoad
. - Var
GeneralRoadProperties.isOverpass
. - Var
GeneralRoadProperties.isTollRoad
. - Var
GeneralRoadProperties.isTransitProhibited
. - Var
GeneralRoadProperties.isTunnel
. - Var
GeneralRoadProperties.isUnderpass
. - Var
GeneralRoadProperties.isUrbanArea
. - Var
GeneralRoadProperties.numberOfLanes
. - Var
GeneralRoadProperties.roadCondition
. - Var
GeneralRoadProperties.tunnelName
.
- Var
In TomTomSDKNavigationVisualization
:
- We are adding func
NavigationVisualization.setCameraTrackingMode(_:)
as a protocol requirement.
Announcing breaking changes: September 04, 2023
General
What is changing?
- We are removing
TomTomSDKNetworking.HTTPInterceptorObserver
,TomTomSDKNetworking.HTTPResponse
andTomTomSDKNetworking.HTTPStatusCode
. Everything inside theTomTomSDKNetworking
framework was supposed to be marked as "internal-only", but these types were accidentally excluded.
Maps
What is changing?
- We are removing the public initializers for
TomTomSDKDataManagementOffline.RegionGraphNodeID
andTomTomSDKDataManagementOffline.CompositeRegionID
. As there is no guarantee that these IDs will be valid across the application sessions, and to prevent issues when an unexpected value is provided (and also to avoid breaking changes in the future [because the internal fields could be changed]), we're removing the public initializers of these objects.
Navigation
What is changing?
-
We are renaming:
- The
TomTomSDKNavigationEngines.EngineActions
protocol toTomTomSDKNavigation.TomTomNavigation
. - The
TomTomSDKNavigation.Navigation
class toTomTomSDKNavigation.DefaultTomTomNavigation
.
- The
-
We are also adding missing functions and properties to the
TomTomSDKNavigationEngines.TomTomNavigation
protocol, so theTomTomSDKNavigationEngines.TomTomNavigation
protocol andTomTomSDKNavigation.DefaultTomTomNavigation
class have the same APIs. From now onTomTomSDKNavigationEngines.TomTomNavigation
protocol could be used instead ofTomTomSDKNavigation.DefaultTomTomNavigation
class. We will eventually deprecate theTomTomSDKNavigation.DefaultTomTomNavigation
class and later remove it from the public API to discourage the usage of the concrete implementation class.- The Navigation setup code before the change:
let navigation: Navigation = try OnlineTomTomNavigationFactory.create(configuration: configuration) as! Navigation- The Navigation setup code after the change:
let navigation: TomTomNavigation = try OnlineTomTomNavigationFactory.create(configuration: configuration)- Do the following to adapt your project to these API changes:
- Replace the usage of the
Navigation
class with theTomTomNavigation
protocol. - Remove the force casts from the
Navigation
class when registering navigation observers.
- Replace the usage of the
Announcing breaking changes: August 30, 2023
Navigation
What is changing?
- We are changing
DataSourceSelectionEngine.process(navigationSnapshot:)
toDataSourceSelectionEngine.select(navigationSnapshot:)
. - We are changing
NavigationDataSourceType
toNavigationDataSource
. - We are changing
NavigationDataStoreUpdateMode
toDataStoreUpdateMode
.
Announcing breaking changes: August 21, 2023
Maps
What is changing?
In TomTomSDKTrafficTPEG
:
-
Func
TPEGTrafficService.updateCurrentPosition(_:)
is now throwing an invalid coordinate. Existing code should be updated with try and catch. -
Func
TPEGTrafficService.updateRoutesForTraffic(_:)
is now throwing an invalid coordinate. Existing code should be updated with try and catch.
In TomTomSDKNavigationVisualization
:
- We are renaming enumElement
SafetyLocationCountOptions.firstNLocations
toSafetyLocationCountOptions.numberOfLocations
. - We are removing func
NavigationVisualization.selectGuidanceType(_:)
. - We are adding accessor
NavigationVisualization.guidanceType.Set()
as a protocol requirement.
Announcing breaking changes: August 14, 2023
Maps
What is changing?
- We are removing the
RenderedFeatureQueryBuilder
class; clients are advised to initializeRenderedFeatureQueryOptions
directly. - Range is validated when creating an instance of
RouteSection
, therefore, theinit
may throw.
NavigationVisualization
:
In StyleConfiguration
we are renaming the following:
StyleConfiguration.init(route:routeTraffic:horizonStyle:destinationConnectionLine:)
toStyleConfiguration.init(route:routeTrafficIncident:safetyLocationStyle:destinationConnectionLine:)
.StyleConfiguration.horizonStyle
toStyleConfiguration.safetyLocationStyle
.StyleConfiguration.routeTraffic
torouteTrafficIncident
.
In NavigationVisualization
we are renaming the following:
NavigationVisualization.trafficOnRoute(route:)
toNavigationVisualization.trafficIncidents(on:)
.NavigationVisualization.horizonVisualization
toNavigationVisualization.safetyLocationVisualization
.NavigationVisualization.zoomToRoutesEnabled
toNavigationVisualization.isZoomToRoutePlanEnabled
.NavigationVisualization.clear()
toclearRoutePlan()
.NavigationVisualization.trafficIncidentsEnabled
toareTrafficIncidentsEnabled
.
Minor changes
RenderedFeatureQueryOptions
initializer now has default parameters.
Announcing breaking changes: August 7, 2023
General
Minor changes
- The Struct Address now conforms to the Equatable protocol.
Navigation
What is changing?
In TomTomSDKNavigationEngines:
-
We are removing:
- Constructor LocationContext.init(speed:speedLimit:road:address:).
- Enum TypeOfRoad.
- Struct LocationContext.Address.
-
We are renaming struct
LocationContext.Road
to structRoadProperties
. -
Accessor
LocationContext.Road.roadType.Get()
has a return type change fromTomTomSDKNavigationEngines.TypeOfRoad?
toTomTomSDKCommon.RoadType?
-
Accessor
LocationContext.road.Get()
has a return type change fromTomTomSDKNavigationEngines.LocationContext.Road?
toTomTomSDKNavigationEngines.LocationContext.RoadProperties?
-
Constructor
LocationContext.Road.init(functionalRoadClass:isTunnel:isUnderpass:roadType:isLeftHandDriving:)
has a parameter 3 type change fromTomTomSDKNavigationEngines.TypeOfRoad?
toTomTomSDKCommon.RoadType?
-
Constructor
LocationContext.Road.init(functionalRoadClass:isTunnel:isUnderpass:roadType:isLeftHandDriving:)
has a return type change fromTomTomSDKNavigationEngines.LocationContext.Road
toTomTomSDKNavigationEngines.LocationContext.RoadProperties
. -
Func
LocationContext.Road.==(_:_:)
has a parameter 0 type change fromTomTomSDKNavigationEngines.LocationContext.Road
toTomTomSDKNavigationEngines.LocationContext.RoadProperties
. -
Func
LocationContext.Road.==(_:_:)
has parameter 1 type change fromTomTomSDKNavigationEngines.LocationContext.Road
toTomTomSDKNavigationEngines.LocationContext.RoadProperties
. -
Var
LocationContext.Road.roadType
has declared type change fromTomTomSDKNavigationEngines.TypeOfRoad?
toTomTomSDKCommon.RoadType?
. -
Var
LocationContext.road
has declared type change fromTomTomSDKNavigationEngines.LocationContext.Road?
toTomTomSDKNavigationEngines.LocationContext.RoadProperties?
-
Constructor
LocationContext.Road.init(functionalRoadClass:isTunnel:isUnderpass:roadType:isLeftHandDriving:)
is now throwingTomTomSDKNavigationEngines.EngineActions
protocol toTomTomSDKNavigation.TomTomNavigation
andTomTomSDKNavigation.Navigation
class toTomTomSDKNavigation.DefaultTomTomNavigation
. -
We are also adding missing functions and properties to the
TomTomSDKNavigationEngines.TomTomNavigation
protocol, so theTomTomSDKNavigationEngines.TomTomNavigation
protocol andTomTomSDKNavigation.DefaultTomTomNavigation
class have the same APIs. From now onTomTomSDKNavigationEngines.TomTomNavigation
protocol could be used instead ofTomTomSDKNavigation.DefaultTomTomNavigation
class. We will eventually deprecate theTomTomSDKNavigation.DefaultTomTomNavigation
class and later remove it from the public API to discourage the usage of the concrete implementation class.
The Navigation setup code before the change:
let navigation: Navigation = try OnlineTomTomNavigationFactory.create(configuration: configuration) as! Navigation
The Navigation setup code after the change:
let navigation: TomTomNavigation = try OnlineTomTomNavigationFactory.create(configuration: configuration)
Minor changes
In TomTomSDKNavigation
we are removing the following:
- constructor
RouteReplanningEngineOptions.init(routeUpdateMode:routeReplanInterval:minTrafficDelay:minTimeDifference:routeReplanningPolicy:)
. - Var
RouteReplanningEngineOptions.Defaults.routeReplanningPolicy
. - Var
RouteReplanningEngineOptions.defaultRouteReplanningPolicy
. - Var
RouteReplanningEngineOptions.routeReplanningPolicy
. TomTomSDKRouteReplanner
: EnumContinuousReplanningPolicy
.
Routing
What is changing?
In TomTomSDKVehicle
we are changing the following:
- Protocol
VehicleUpdateObserver
has generic signature change and is now based onTomTomSDKCommon.Observer
.
In TomTomSDKVehicle
we are removing the following:
- Class
AnyVehicleUpdateObserver
. - Func
DefaultVehicleProvider.registerVehicleUpdateObserver(_:)
. - Func
DefaultVehicleProvider.registerVehicleUpdateObserver(_:options:)
. - Func
DefaultVehicleProvider.unregisterVehicleUpdateObserver(_:)
. - Func
VehicleProvider.registerVehicleUpdateObserver(_:)
. - Func
VehicleProvider.registerVehicleUpdateObserver(_:options:)
. - Func
VehicleProvider.unregisterVehicleUpdateObserver(_:)
.
In TomTomSDKVehicle
we are adding the following:
- Protocol
VehicleUpdateObserver
has added inherited protocolObserver
. - Func
VehicleProvider.addObserver(_:)
has been added as a protocol requirement. - Func
VehicleProvider.addObserver(_:for:)
has been added as a protocol requirement. - Func
VehicleProvider.removeObserver(_:)
has been added as a protocol requirement.
In TomTomSDKNavigationEngines
:
- Func
MapMatchingEngine.extrapolateLocation(navigationSnapshot:)
has a return type change fromTomTomSDKNavigationEngines.MapMatchingResult?
toTomTomSDKNavigationEngines.MapMatchingResult
.
Announcing breaking changes: August 1, 2023
Maps
- Automatic Offline Map Updates configuration changes:
What is changing?
In the upcoming weeks we are changing the creation and configuration of NDSStoreUpdateConfig
.
What do you need to do?
You must change the way NDSStoreUpdateConfig
is instantiated. The iqMaps
prefix was removed from iqMapsAllRegionsEnabled
, iqMapsRelevantRegionsEnabled
, iqMapsRelevantRegionsRadius
, iqMapsRelevantRegionsUpdateInterval
, iqMapsRegionsAlongRouteEnabled
, and iqMapsRegionsAlongRouteRadius
fields.
All of them were moved to the AutomaticUpdatesConfiguration
class, an NDSStoreUpdateConfig
inner class.
How it was:
1let ndsStoreUpdateConfig = NDSStoreUpdateConfig(2 updateStoragePath: UPDATE_STORAGE_PATH,3 persistentStoragePath: MAP_UPDATE_PERSISTENCE_PATH,4 updateServerURL: UPDATE_SERVER_URI,5 updateServerAPIKey: MAP_UPDATE_SERVER_API_KEY,6 iqMapsAllRegionsEnabled: false,7 iqMapsRelevantRegionsEnabled: true,8 iqMapsRelevantRegionsRadius: RELEVANT_REGIONS_RADIUS,9 iqMapsRelevantRegionsUpdateInterval: RELEVANT_REGIONS_UPDATE_INTERVAL,10 iqMapsRegionsAlongRouteEnabled: true,11 iqMapsRegionsAlongRouteRadius: REGIONS_ALONG_ROUTE_RADIUS12)
How it is now:
1let ndsStoreUpdateConfig = NDSStoreUpdateConfig(2 updateStoragePath: UPDATE_STORAGE_PATH,3 persistentStoragePath: MAP_UPDATE_PERSISTENCE_PATH,4 updateServerUri: UPDATE_SERVER_URI,5 updateServerApiKey: MAP_UPDATE_SERVER_API_KEY,6 automaticUpdatesConfiguration: NDSStoreUpdateConfig.AutomaticUpdatesConfiguration(7 allRegionsEnabled: false,8 relevantRegionsEnabled: true,9 relevantRegionsRadius: RELEVANT_REGIONS_RADIUS,10 relevantRegionsUpdateInterval: RELEVANT_REGIONS_UPDATE_INTERVAL,11 regionsAlongRouteEnabled: true,12 regionsAlongRouteRadius: REGIONS_ALONG_ROUTE_RADIUS13 )14)
RoutingVisualization
RoutingVisualization.zoomToRoutesEnabled
toisZoomToRoutePlanEnabled
.RoutingVisualization.zoomToRoutesEnabled.trafficIncidentsEnabled
toRoutingVisualization.zoomToRoutesEnabled.areTrafficIncidentsEnabled
.RoutingVisualization.trafficOnRoute
toRoutingVisualization.trafficIncidents(on:)
.RoutingVisualization.clear()
toRoutingVisualization.clearRoutePlan()
.RoutingVisualizationFactory.createRoutingVisualization(tomtomMap:styleConfiguration:)
toRoutingVisualizationFactory.create(map:styleConfiguration:)
.
StyleConfiguration
StyleConfiguration.routeTraffic
toStyleConfiguration.routeTrafficIncidents
.StyleConfiguration.init(route:routeTraffic:destinationConnectionLine:)
toRouteStyle.routeDepartureMarker to RouteStyle.departureMarkerImage
.
RouteStyle
RouteStyle.init(activeLineColor:activeLineWidths:activeOutlineWidths:alternativeLineColor:alternativeLineWidths:alternativeOutlineWidths:alternativeLineColorOverrule:routeDepartureMarker:routeDestinationMarker:routeWaypointsMarker:waypointsVisible:)
toRouteStyle.init(activeLineColor:activeLineWidths:activeOutlineWidths:alternativeLineColor:alternativeLineWidths:alternativeOutlineWidths:alternativeLineColorOverrule:departureMarkerImage:destinationMarkerImage:waypointsMarkerImage:areWaypointsVisible:)
RouteStyle.routeDestinationMarker
toRouteStyle.destinationMarkerImage
.RouteStyle.routeWaypointsMarker
toRouteStyle.waypointsMarkerImage
.RouteStyle.waypointsVisible
toRouteStyle.areWaypointsVisible
.RouteStyle.Defaults.lineZoomByWidthLevels
toRouteStyle.Defaults.activeLineWidths
.RouteStyle.Defaults.outlineWidthsWithZoomLevels
toRouteStyle.Defaults.activeOutlineWidths
.RouteStyle.Defaults.lineZoomByWidthLevels
toRouteStyle.Defaults.alternativeLineWidths
.RouteStyle.Defaults.outlineZoomByWidthLevels
toRouteStyle.Defaults.alternativeOutlineWidths
.RouteStyle.Defaults.destinationMarker
toRouteStyle.Defaults.destinationMarkerImage
.RouteStyle.Defaults.waypointMarker
toRouteStyle.waypointsMarkerImage
.RouteStyle.Defaults.waypointsVisible
toRouteStyle.Defaults.areWaypointsVisible
.
RouteTrafficIncidentStyle
RouteTrafficIncidentStyle.outlineWidths
toRouteTrafficIncidentStyle.lineOutlineWidths
.RouteTrafficIncidentStyle.markerLabelOutlineWidth
toRouteTrafficIncidentStyle.markerLabelTextOutlineWidth
.RouteTrafficIncidentStyle.magnitudeOfDelayStyles
toRouteTrafficIncidentStyle.propertiesByMagnitudeOfDelay
.RouteTrafficIncidentStyle.PropertiesByMagnitudeOfDelay
toRouteTrafficIncidentStyle.MagnitudeOfDelayProperties
.RouteTrafficIncidentStyle.init(lineWidths:outlineWidths:lineStartCapType:lineEndCapType:lineJointType:markerLabelFontURL:markerLabelTextSize:markerLabelOutlineWidth:markerLabelTextOffset:markerLabelTextAnchoring:markerVisibilityByCategory:magnitudeOfDelayStyles:)
toRouteTrafficIncidentStyle.init(lineOutlineWidths:outlineWidths:lineStartCapType:lineEndCapType:lineJointType:markerLabelFontURL:markerLabelTextSize:markerLabelTextOutlineWidth:markerLabelTextOffset:markerLabelTextAnchoring:markerVisibilityByCategory:propertiesByMagnitudeOfDelay:)
RouteTrafficIncidentStyle.Defaults.outlineWidths
toRouteTrafficIncidentStyle.Defaults.lineOutlineWidths
.RouteTrafficIncidentStyle.Defaults.markerLabelOutlineWidth
toRouteTrafficIncidentStyle.Defaults.markerLabelTextOutlineWidth
.RouteTrafficIncidentStyle.Defaults.magnitudeOfDelayStyles
toRouteTrafficIncidentStyle.Defaults.propertiesByMagnitudeOfDelay
.
MagnitudeOfDelayStyle
MagnitudeOfDelayStyle
toMagnitudeOfDelayProperties
.MagnitudeOfDelayStyle.markerPinBaseByCategory
toMagnitudeOfDelayStyle.markerPinImageByCategory
.MagnitudeOfDelayStyle.markerPinIconByCategory
toMagnitudeOfDelayStyle.markerIconImageByCategory
.MagnitudeOfDelayStyle.linePatternTexture
toMagnitudeOfDelayStyle.linePatternImage
.
TrafficIncident
TrafficIncident.maker
toTrafficIncident.marker
.
DestinationConnectionLineStyle
DestinationConnectionLineStyle.lineWidth
toDestinationConnectionLineStyle.width
.DestinationConnectionLineStyle.linePatternTexture
toDestinationConnectionLineStyle.patternTexture.
DestinationConnectionLineStyle.init(PatternTexture:Width:)
toDestinationConnectionLineStyle.init(patternTexture:Width:)
.DestinationConnectionLineStyle.Defaults.linePatternTexture
toDestinationConnectionLineStyle.Defaults.patternTexture
.DestinationConnectionLineStyle.Defaults.lineWidth
toDestinationConnectionLineStyle.Defaults.width
.
Navigation
What is changing?
- The
NavigationTileStoreAccess
interface uses a different tile store access inNavigationTileStore
. - We are replacing
TomTomSDKNavigationEngines.CountryInformation.DrivingSide
withTomTomSDKCommon.DrivingSide
. - We are replacing the boolean flags
LocationContext.Road.isLeftHandDriving
andGeneralRoadElements.isRightHandDriving
withTomTomSDKCommon.DrivingSide
. - We are replacing
LocationContext.Address
withTomTomSDKCommon.Address
. - We are renaming
LocationContext.Road
toLocationContext.RoadProperties
. - We are replacing the enum
TypeOfRoad
inLocationContext
withTomTomSDKCommon.RoadType
. - We are re-arranging the order of properties in
LocationContext.Road
andGeneralRoadElements.isTunnel
andtunnelName
will be grouped together, as well asisBridge
andbridgeName
. - In
GeneralRoadElements
,numLanesDrivingDirection
andnumLanesOppositeDirection
will be grouped into a new data class,numLanes
.
Routing
What is changing?
In TomTomSDKNavigation
, we are replacing:
- Var
RouteReplanningEngineOptions.defaultMinTimeDifference
withRouteReplanningEngineOptions.Defaults.minTimeDifference
. - Var
RouteReplanningEngineOptions.defaultMinTrafficDelay
withRouteReplanningEngineOptions.Defaults.minTrafficDelay
. - Var
RouteReplanningEngineOptions.defaultReplanInterval
withRouteReplanningEngineOptions.Defaults.replanInterval
. - Var
RouteReplanningEngineOptions.defaultRouteReplanningPolicy
withRouteReplanningEngineOptions.Defaults.routeReplanningPolicy
. - Var
RouteReplanningEngineOptions.defaultRouteUpdateMode
withRouteReplanningEngineOptions.Defaults.routeUpdateMode
.
In TomTomSDKSafetyCameras
:
- We are replacing the enum
MortonTileConstants
withMortonTile.Constants
.
In TomTomSDKHazards
:
- We are replacing the enum
MortonTileConstants
withMortonTile.Constants
.
Announcing breaking changes: July 25, 2023
Routing
What is changing?
In TomTomSDKCommon
we are renaming:
- Var
FormatUtils.minimumDisplayableDuration
toFormatUtils.minDisplayableDuration
. - Func
Array.indiciesOfMininal(n:f:)
to funcindicesOfMin(n:f:)
.
In TomTomSDKNavigationEngines
, we are renaming:
- Constructor
Horizon.Path.init(pathAttributes:parentPathID:offsetOnParentPath:minimumEndOffset:)
to constructorHorizon.Path.init(pathAttributes:parentPathID:offsetOnParentPath:minEndOffset:)
. - Var
Horizon.Path.minimumEndOffset
toHorizon.Path.minEndOffset
.
In TomTomSDKNavigation
we are renaming:
- Constructor
RouteReplanningEngineOptions.init(routeUpdateMode:routeReplanInterval:minimalTrafficDelay:minimalTimeDifference:routeReplanningPolicy:)
toRouteReplanningEngineOptions.init(routeUpdateMode:routeReplanInterval:minTrafficDelay:minTimeDifference:routeReplanningPolicy:)
. RouteReplanningEngineOptions.defaultMinimalTimeDifference
to varRouteReplanningEngineOptions.defaultMinTimeDifference
.- Var
RouteReplanningEngineOptions.defaultMinimalTrafficDelay
toRouteReplanningEngineOptions.defaultMinTrafficDelay
. - Var
RouteReplanningEngineOptions.minimalTimeDifference
toRouteReplanningEngineOptions.minTimeDifference
. - Var
RouteReplanningEngineOptions.minimalTrafficDelay
toRouteReplanningEngineOptions.minTrafficDelay
.
In TomTomSDKSafetyCameras,
we are renaming:
- Var
MortonTileConstants.maximumDepthLevel
toMortonTileConstants.maxDepthLevel
. - Var
MortonTileConstants.minimumDepthLevel
toMortonTileConstants.minDepthLevel
.
In TomTomSDKHazards
we are renaming:
- Var
MortonTileConstants.maximumDepthLevel
toMortonTileConstants.maxDepthLevel
. - Var
MortonTileConstants.minimumDepthLevel
toMortonTileConstants.minDepthLevel
.
In TomTomSDKTrafficTPEG
, we are renaming:
- Constructor
TPEGTrafficClientConfiguration.init(apiKey:initSessionUrl:updateFrequency:innerRadius:outerRadius:maximumNumberOfEvents:trafficCacheEnabled:fileFeedDirectory:fileFeedPattern:webRequestDumpDirectory:)
toTPEGTrafficClientConfiguration.init(apiKey:initSessionUrl:updateFrequency:innerRadius:outerRadius:maxNumberOfEvents:trafficCacheEnabled:fileFeedDirectory:fileFeedPattern:webRequestDumpDirectory:)
. - Var
TPEGTrafficClientConfiguration.maximumNumberOfEvents
toTPEGTrafficClientConfiguration.maxNumberOfEvents
.
Announcing breaking changes: July 17, 2023
Navigation
TomTomNavigation
refactoring:
What is changing?
Starting from version 0.24.0, the creation and configuration of Navigation
is simplified and more flexible. Additionally, the refactoring reduces the size of the SDK for all use cases, particularly for online-only, offline-only, and hybrid (online/offline) navigation use cases.
What do you need to do?
You must change the way Navigation
is instantiated. Here are some examples of how you can instantiate for each navigation use case.
Online-only
A new factory is provided in TomTomSDKNavigationOnline
that provides sensible defaults for the online navigation use case.
All values can be modified as required. This is demonstrated in the following example for deviationReplanningMode
:
1import TomTomSDKNavigation2import TomTomSDKNavigationOnline34let configuration = OnlineTomTomNavigationFactory.Configuration(5 locationProvider: DefaultCLLocationProvider(),6 routeReplanner: RouteReplannerFactory.create(routePlanner: routePlanner),7 apiKey: "YOUR_API_KEY" ,8 deviationReplanningMode = DeviationReplanningMode.automatic // example customization9 )1011navigation = OnlineTomTomNavigationFactory.create(configuration: configuration)
Alternatively, if the NavigationTileStore
is user-created, it can be passed instead of the API key, shown as follows:
1let configuration = OnlineTomTomNavigationFactory.Configuration(2 locationProvider: DefaultCLLocationProvider(),3 routeReplanner: RouteReplannerFactory.create(routePlanner: routePlanner),4 navigationTileStore: navigationTileStore, // custom NavigationTileStore5 deviationReplanningMode = DeviationReplanningMode.automatic // example customization6 )78navigation = OnlineTomTomNavigationFactory.create(configuration: configuration)
Offline-only
The manual instantiation of
DataStoreUpdater
is unnecessary as this is now done internally. Automatic offline map updates are still recommended for the initial phase where navigation has not yet started. This allows downloading of missing map regions.
A new factory is provided in TomTomSDKNavigationOffline
that provides sensible defaults for the offline navigation use case.
All values can be modified as required. This is demonstrated in the following example for deviationReplanningMode
:
1import TomTomSDKNavigation2import TomTomSDKNavigationOffline34let configuration = OfflineTomTomNavigationFactory.Configuration(5 locationProvider: DefaultCLLocationProvider(),6 routeReplanner: RouteReplannerFactory.create(routePlanner: routePlanner),7 ndsStore: ndsStore,8 deviationReplanningMode = DeviationReplanningMode.automatic // example customization9 )1011navigation = OfflineTomTomNavigationFactory.create(configuration: configuration)
Hybrid
The manual instantiation of
DataStoreUpdater
is unnecessary as this is now done internally. Automatic offline map updates are still recommended for the initial phase where navigation has not yet started. This allows downloading of missing map regions.
A new factory is provided in TomTomSDKNavigationHybrid
that offers sensible defaults for the hybrid navigation use case.
All values can be modified, as required. This is demonstrated in the following example for deviationReplanningMode
:
1import TomTomSDKNavigation2import TomTomSDKNavigationHybrid34let configuration = HybridTomTomNavigationFactory.Configuration(5 locationProvider: DefaultCLLocationProvider(),6 hybridNavigationDataStore: hybridNavigationDataStore,7 onlineRoutePlanner: onlineRoutePlanner,8 offlineRoutePlanner: offlineRoutePlanner,9 deviationReplanningMode = DeviationReplanningMode.automatic // example customisation10 )1112navigation = HybridTomTomNavigationFactory.create(configuration: configuration)
Routing
What is changing?
- We are removing
isDepartureInstructionRequired
fromTomTomSDKRoutePlanner.RouteIncrementOptions
to align with the API on Android. - We are changing the
ChargingConnector.plugTypes
type from[TomTomSDKCommon.ConnectorType]
toSet<TomTomSDKCommon.ConnectorType>
. - We are changing the
ChargingConnector.voltageRange
type fromRange<Measurement<Foundation.UnitElectricPotentialDifference>>
toTomTomSDKCommon.VoltageRange
.
Announcing breaking changes: July 12, 2023
General
Minor changes
- We are adding an arrival side preference option to the Routing section.
Routing
What is changing?
- We are removing
isDepartureInstructionRequired
fromTomTomSDKRoutePlanner.RouteIncrementOptions
to align with the API on Android.
Announcing breaking changes: July 04, 2023
Location
What is changing?
In TomTomSDKLocationTracesRecorder
:
- Func
LocationTracesRecorderFactory.createTTPTracesRecorder(navigation:)
has parameter 0 type change fromTomTomSDKNavigation.Navigation
toTomTomSDKNavigation.DefaultTomTomNavigation
.
Navigation
What is changing?
In TomTomSDKNavigation
:
- We are removing Protocol
EngineActions
. - We are renaming class
Navigation
to classDefaultTomTomNavigation
. - In Constructor
Navigation.init(configuration:)
we are changing the return type fromTomTomSDKNavigation.Navigation
toTomTomSDKNavigation.DefaultTomTomNavigation
. - In Constructor
Navigation.init(locationProvider:dataSourceSelectionEngine:dataStoreMaintenanceEngine:mapMatchingEngine:routeProgressEngine:guidanceEngine:routeTrackingEngine:arrivalDetectionEngine:locationContextProviderEngine:horizonEngine:routeReplanner:routeReplanningEngine:routeProjectionEngine:routeReplanningRetryPolicy:routeDeviationReplanningRetryPolicy:betterProposalAcceptanceMode:deviationReplanningMode:vehicleProvider:)
we are changing the return type fromTomTomSDKNavigation.Navigation
toTomTomSDKNavigation.DefaultTomTomNavigation
. - In Class
Navigation
we are removing conformance toEngineActions
.
In TomTomSDKNavigationOnline
:
- Func
OnlineTomTomNavigationFactory.create(configuration:)
we are changing the return type fromTomTomSDKNavigation.EngineActions
toTomTomSDKNavigation.TomTomNavigation
.
In TomTomSDKNavigationUI
:
- Constructor
NavigationView.ViewModel.init(_:tts:)
we are changing parameter 0 type fromTomTomSDKNavigation.Navigation
toTomTomSDKNavigation.DefaultTomTomNavigation
. - Constructor
NavigationView.ViewModel.init(_:tts:instructionToImageMapper:)
we are changing parameter 0 type fromTomTomSDKNavigation.Navigation
toTomTomSDKNavigation.DefaultTomTomNavigation
.
In TomTomSDKDataStoreUpdater
:
- Constructor
DataStoreUpdater.init(dataStore:locationProvider:navigation:)
we are changing parameter 2 type fromTomTomSDKNavigation.Navigation
toTomTomSDKNavigation.DefaultTomTomNavigation
. - Func
DataStoreUpdater.updateNavigation(_:)
we are changing parameter 0 type fromTomTomSDKNavigation.Navigation
toTomTomSDKNavigation.DefaultTomTomNavigation
.
In TomTomSDKNavigationVisualization
:
- Func
NavigationVisualizationFactory.create(map:navigation:styleConfiguration:)
we are changing parameter 1 type fromTomTomSDKNavigation.Navigation
toTomTomSDKNavigation.DefaultTomTomNavigation
.
In TomTomSDKNavigationOffline
:
- Func
OfflineTomTomNavigationFactory.create(configuration:)
we are changing return type fromTomTomSDKNavigation.EngineActions
toTomTomSDKNavigation.TomTomNavigation
.
In TomTomSDKNavigationHybrid
:
- Func
HybridTomTomNavigationFactory.create(configuration:)
we are changing return type fromTomTomSDKNavigation.EngineActions
toTomTomSDKNavigation.TomTomNavigation
.
Routing
What is changing?
In TomTomSDKCommon
:
- We are renaming
ChargingConnector.connectorTypes
toChargingConnector.plugTypes
. - We are replacing Constructor
ChargingConnector.init(currentType:connectorTypes:efficiency:baseLoad:maxPower:)
withChargingConnector.init(currentType:plugTypes:efficiency:baseLoad:maxPower:maxCurrent:maxVoltage:voltageRange:)
. - We are changing
ChargingConnector.efficiency
type fromFoundation.Measurement<TomTomSDKCommon.TTUnitRatio>?
toFoundation.Measurement<TomTomSDKCommon.TTUnitRatio>
. - We are changing
ChargingConnector.maxPower
type fromFoundation.Measurement<UnitPower>?
toFoundation.Measurement<UnitPower>
. - We are changing
ChargingConnector.baseLoad
type fromFoundation.Measurement<UnitPower>?
toFoundation.Measurement<UnitPower>
.
Announcing breaking changes: June 26, 2023
General
What is changing?
- We are removing
QueryItemConvertible
from the public API. - In enum
VehicleType
, we are removing conformance toQueryItemConvertible
.
Minor changes
- We are promoting the following map management APIs to the public preview stage:
MapUpdate.Cancellable
CompletedMapOperation
CurrentMapOperation
MapOperation
MapOperationType
NDSStoreUpdateConfig.backgroundDownloadsEnabled
RegionGraphNodeID
RegionGraphNodeState
RegionGraphChangeEvent
RegionGraphObserver
NodesStateData
StructureData
UpdateInfo
NDSStore.schedule
NDSStore.cancelAllMapOperations
NDSStore.findRegionsAroundPosition
RegionsAroundPosition
CompositeRegionsUpdater
CompositeRegionID
CompositeRegion
CompositeRegionState
CompositeRegionStatesData
CompositeRegionGraphChangeEvent
CompositeRegionObserver
CompositeRegionOperation
CurrentCompositeRegionOperation
GraphChangedData
Search
Minor changes
- We are removing unused types:
AutocompleteMatchType
DataSources
ChargingAvailabilityDataSource
GeometryDataSources
POIDetail
Navigation
What is changing?
- In
TomTomSDKNavigationEngines
:- We are renaming func
RouteTrackingEngine.obtainTrackedRoutes(navigationSnapshot:)
to funcRouteTrackingEngine.obtainTrackingStates(navigationSnapshot:)
.
- We are renaming func
- In
TomTomSDKNavigation
:- We are renaming func
NavKitRouteTrackingEngine.obtainTrackedRoutes(navigationSnapshot:)
toRouteTrackingEngine.obtainTrackingStates(navigationSnapshot:)
. - We are renaming func
NavigationRouteTrackingStateUpdateObserver.onRouteTrackingStateUpdate(route:routeTrackingState:)
to funconRouteTrackingStateUpdate(routeTrackingState:)
. - In func
NavigationRouteTrackingStateUpdateObserver.onRouteTrackingStateUpdate(route:routeTrackingState:)
we are changing the parameter type fromTomTomSDKRoute.Route
andTomTomSDKNavigationEngines.RouteTrackingState
toTomTomSDKNavigationEngines.RouteTrackingState
.
- We are renaming func
Announcing breaking changes: June 19, 2023
Navigation
What is changing?
- We are removing the protocols
TileStore
,MapDataStore
, andHybridDataStore
. The affected engines are now takingNavigationTileStore
,NDSStore
, andHybridNavigationDataStore
as parameters.
Routing
What is changing?
- In
TomTomSDKVehicle
:- We are removing the
DefaultVehicleProvider.init()
initializer from the public API and replacing it withDefaultVehicleProvider.init(vehicle: Vehicle = Car(combustionEngine: CombustionEngine()))
.
- We are removing the
Announcing breaking changes: June 15, 2023
General
What is changing?
Initializer OfflineHorizonEngine.init(ndsStore:dataSources:)
has been renamed to OfflineHorizonEngine.init(ndsStore:dataAdapters:)
Module TomTomSDKHazardsDataSourceOnline
has been renamed to TomTomSDKHazardsDataAdapterOnline
Module TomTomSDKNavigationHorizonDataSource
has been renamed to TomTomSDKNavigationHorizonDataAdapter
Module TomTomSDKSafetyLocationsDataSourceOnline
has been renamed to TomTomSDKSafetyLocationsDataAdapterOnline
Announcing breaking changes: June 13, 2023
Search
What is changing?
- We are removing the type alias
ReverseGeocoderSummary
. It is now available under the nameReverseGeocoderResponse.Summary
.
Routing
What is changing?
- In
TomTomSDKCommon
:- enum
VehicleError
: we are removing theunsupportedModelID
case.
- enum
- In
TomTomSDKCommon
, classDefaultVehicleProvider
:- We are removing the
setVehicle(vehicleType:, vehicleModelID:, vehicleParameters:)
method. We added a propertyvar vehicle: Vehicle
as a replacement.
- We are removing the
- In
TomTomSDKRoutePlannerOnline
, we are removing the following from the public API:- The
AnnouncementUpdater
class. - The
AnnouncementSection
enum. - The
AnnouncementTrigger
struct.
- The
Announcing breaking changes: June 5, 2023
Navigation
What is changing?
Vehicle horizon, map matching, location context, and route projection engine creation require factories instead of using initializers.
The changes are described in the following table:
Old |
New |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Announcing breaking changes: May 30, 2023
Routing
- In
TomTomSDKVehicle
:- We are removing the
DefaultVehicleProvider’s
setVehicle(vehicleType: vehicleModelID: vehicleParameters:)
method; we are adding the alternativesetVehicle(_ vehicle: Vehicle)
method. - We are removing the
modelID
case fromVehicleUpdateOptions
.
- We are removing the
- In
TomTomSDKNavigationEngines
:RouteWaypointsState
:- We are removing the initialiser
init(nextWaypoint: Waypoint?, numberOfVisitedWaypoints: Int = 0)
. We are addinginit(routePlan: RoutePlan?)
. - We are removing the func
reset(waypoints: [Waypoint])
. We are adding the funcupdate(newRouteStops: [RouteStop])
. - We are removing the func
markNextWaypointAsVisited(waypoints: [Waypoint])
. We are introducing the funcmarkWaypointAsVisited(waypoint: Waypoint)
.
- We are removing the initialiser
WaypointArrivalStatus
:- We are removing the
hasReachedWaypoint
variable. We are adding the state variable with type ofWaypointArrivalState
. - We are changing the
waypoint
variable type fromWaypoint?
toWaypoint
.
- We are removing the
ArrivalDetectionEngine
:- We are changing the
hasArrivedAtWaypoint(navigationSnapshot:)
func tohasArrivedAtWaypoint(waypoint:navigationSnapshot:)
.
- We are changing the
RouteReplanningEngine
:- We are changing the
shouldReplanRoute(:)
func toshouldReplanRoute
(:navigationSnapshot:).
- We are changing the
- In
TomTomSDKNavigation
:NavigationEvent.ArrivalEvent
:- We are removing the
didArriveAtWaypoint(Waypoint, Route)
case. We are adding thedidReachWaypoint(Waypoint, Route)
anddidVisitWaypoint(Waypoint, Route)
cases.
- We are removing the
NavigationArrivalObserver
:- We are removing the
didArriveAtWaypoint(waypoint: Waypoint, on route: Route)
func. We are adding thedidReachWaypoint(waypoint: Waypoint, on route: Route)
and thedidVisitWaypoint(waypoint: Waypoint, on route: Route)
funcs.
- We are removing the
EngineActions
:- We are adding the
markWaypointAsVisited(waypoint: Waypoint)
function.
- We are adding the
Announcing breaking changes: May 15, 2023
Navigation
What is changing?
NavigationSnapshot
is no longer optional.- In
TomTomSDKNavigation
:- We are removing the enum
Navigation.OptionsError
. - We are changing the return type for func
EngineActions.navigationSnapshot()
fromTomTomSDKNavigationEngines.NavigationSnapshot?
toTomTomSDKNavigationEngines.NavigationSnapshot
. - We are changing the return type for func
Navigation.navigationSnapshot()
fromTomTomSDKNavigationEngines.NavigationSnapshot?
toTomTomSDKNavigationEngines.NavigationSnapshot
.
- We are removing the enum
Announcing breaking changes: May 8, 2023
Maps
What is changing?
- In
TomTomSDKAddonNavigationVisualization
:- We are adding the
NavigationVisualizationServiceProtocol.horizonConfiguration
property as a protocol requirement.
- We are adding the
Announcing breaking changes: May 2, 2023
Navigation
What is changing?
- We are removing the
locale
parameter from theOfflineLocationContextProviderEngine
init.Locale
is now taken from the navigation snapshot. - We are removing the
locale
parameter from the experimentalHybrid-
andOnlineLocationContextProviderEngine
init.Locale
is now taken from the navigation snapshot. - In the
TomTomSDKRouteProjectionEngineTileStore
, we are renaming the experimentalOnlineRouteProjectionEngine
toTileStoreRouteProjectionEngine
. - In the
TomTomSDKMapMatchingEngineTileStore
, we are renaming the experimentalOnlineMapMatchingEngine
toTileStoreMapMatchingEngine
. - We are removing from experimental the feature toggles
newNavigationProcessing
,useNavigationTileStore
,useRouteProjectionEngine
andstandaloneRouteTrackingEngine
. These features are now moved to Public Preview.
Routing
What is changing?
- In
TomTomSDKVehicle
:- We are renaming
VehicleParameter
enum’s casevehicleWeight
toweight
. - We are renaming
VehicleUpdateOption
enum’s casevehicleType
totype
, casevehicleWeight
toweight
.
- We are renaming
Announcing breaking changes: April 24, 2023
Navigation
Minor changes
- In
NavigationEngines
:- We are changing the
HorizonOptions
ID parameter from UUID to Int.
- We are changing the
Routing
- In
TomTomSDKNavigation
:NavigationRouteObserver
changes: we are removing thedidActiveRouteChange(routes:reason:)
method. Active route changes are now handled with thedidReplanRoute(replannedRoute:reason:)
.
- We are adding
VehicleError.invalidVehicleParameter
. DefaultVehicleProvider.setVehicle
may now throw aVehicleError.invalidVehicleParameter
error.DefaultVehicleProvider.updateVehicleState
may now throw aVehicleError.invalidVehicleParameter
error.
Announcing breaking changes: April 10, 2023
Navigation
Minor changes
- In the
TomTomSDKAddonNavigationVisualization
module, we are introducing a newLinePatternDisplay
type.
Routing
What is changing?
- The
VehicleProvider.registerVehicleUpdateObserver
now throwsVehicleError.alreadyRegisteredObserver
instead ofVehicleError.invalidVehicleSnapshot
. - We are renaming the
VehicleError.modelIDSupportError(String)
tounsupportedModelID(String)
to align error case naming. - We are adding
VehicleError.alreadyRegisteredObserver
. - We are changing the
onActiveRouteChange
signature. This change affects the following modules:TomTomSDKNavigation
TomTomSDKNavigationUI
TomTomSDKAddonNavigationVisualization
Announcing breaking changes: April 3, 2023
General
What is changing?
- In
TomTomSDKVehicle
(preparation for long distance EV route support):Motorized
protocol: We are changing themodelId
property type fromString?
toVehicleModelID?
DefaultVehicleProvider
class: We are adding thevehicleModelID
parameter to thesetVehicle
function.
Maps
Minor changes
- In
TomTomSDKMapDisplay
:- In
LineOptions.PatternAppearance
we are adding a newpatternTexture
property of the typeUIImage
.
- In
Navigation
What is changing?
- In
TomTomSDKNavigation
(Catching up with Android SDK for decision point navigation for a better route proposal):- We are extending
NavigationRouteObserver
with the following:- func
didActiveRouteChange(routes: [Route], reason: RouteReplanningReason)
- func
didChangeRoutes(navigatedRoutes: NavigatedRoutes)
- func
- We are extending
Announcing breaking changes: March 27, 2023
Navigation
- What is changing?
- In
TomTomSDKNavigationEngines
, we are renaming theDataSourceSelectionEngine.process()
function toprocess(navigationSnapshot:)
function.
Announcing breaking changes: March 20, 2023
Maps
Minor changes
- In
TomTomSDKMapDisplay
:- We are changing
RouteOptions.destination
from a computed property to a stored property.
- We are changing
Navigation
What is changing?
- In
TomTomSDKAddonNavigationVisualization
:- The
StyleConfiguration.init(route:routeTraffic:)
constructor has a newdestinationConnectionLine
property of the typeDestinationConnectionLineStyle
.
- The
Minor changes
- In
TomTomSDKAddonNavigationVisualization
:- We are introducing a new
DestinationConnectionLineStyle
type.
- We are introducing a new
Announcing breaking changes: March 13, 2023
Maps
What is changing?
- In
TomTomSDKMapDisplay
we are renaming theLineOptions.PatternAppearance.patternTextureIcon
var topatternTexture
.
Routing
What is changing?
- We are renaming
ContinuousReplanningMode
toBetterProposalAcceptanceMode
. We are adding theUnreachable only
mode and removing theNone
mode.
Navigation
What is changing?
TomTomSDKAddonNavigationVisualization
:- In the
MagnitudeOfDelayStyle
initializer we are renaming thelinePatternTextureIcon
parameter tolinePatternTexture
.
- In the
Minor changes
- We are adding a new field for charging parameters to the
ElectricEngine
data class.
Announcing breaking changes: March 6, 2023
General
What is changing?
- We are removing
TomTomSDKLocationProvider.DefaultCLLocationProvider.init(locationValidationPolicy: TomTomSDKLocationProvider.LocationUpdateValidator? = nil, observationHandler: TomTomSDKCommon.Observable)
from the public API. - We are removing the
rawValue
API from theTomTomSDKCommon
enums (therawValue
is an implementation detail and the user application code depends on it). The following enums are affected:ADRTunnelRestrictionCode
Category
CauseCode
DrivingSide
EffectCode
EngineType
Geometry
RoadClass
RoadSubClass
RoadType
VehicleLoadType
WarningLevel
Maps
What is changing?
- In
TomTomSDKMapDisplay
, we are renaming theOnTrafficIncidentObservable
protocol toTrafficIncidentObserver
. - We are removing the
rawValue
API from theTomTomSDKAddonNavigationVisualization
enums (therawValue
is an implementation detail and the user application code depends on it). The following enum is affected:TrafficIncidentCategory
Search
What is changing?
- We are converting
SearchOptions.resultTypes
from[SearchResultType]
toSet<SearchResultType>
. - We are removing the
rawValue
API fromTomTomSDKStructuredSearch
enums (therawValue
is an implementation detail and the user application code should depend on it). The affected enum is:StructuredSearchError
- We are removing the
StandardCategoryID.unknown
enum case fromTomTomSDKSearch
. - We are moving
SearchError
fromTomTomSDKSearch
toTomTomSDKSearchOffline
. - In
DynamicData
, we are replacingCurrencyCode
with aString
. - In
DynamicData
, we are renamingFuelPricePerUnit
toFuelPrice
. - We are converting
FuelPricePerUnit.volumeUnit
fromString
toUnitVolume
. - In
DynamicData
, we are renamingFuelPrice
toFuelPriceDetails
. - We are wrapping
fuelPriceID
(String) into aDynamicData.FuelPriceResponse
struct . - The geometry of
searchAreas
is changing fromprotocol
toenum
. - In
SearchResult.fuelPriceDataSourceID
we are changing the type fromString
toFuelPriceID
. - In
SearchResult.evConnectorAvailabilityDataSourceID
we are changing the type fromString
toEVChargingAvailabilityID
. - In
SearchResult.parkingDetailID
we are changing the type fromString
toParkingDetailID
. - In
TomTomSDKDynamicData
:- We are removing the
Availability.init(current:perPowerLevel:)
constructor . - We are removing the
EVChargingAvailabilityResponse.init(connectors:availabilityID:)
constructor. - We are removing the
CurrentStatus
struct. - We are removing the
Availability.current
var. - We are removing the
Availability.perPowerLevel
var. - We are renaming the
Connector
struct toConnectorAvailability
. - We are changing the return type in the
Connector.type.Get()
accessor fromSwift.String
toTomTomSDKCommon.ConnectorType
. - We are changing the return type in the
EVChargingAvailabilityOptions.availabilityID.Get()
accessor fromSwift.String
toTomTomSDKDynamicData.EVChargingAvailabilityID
. - We are changing the return type in the
EVChargingAvailabilityResponse.availabilityID.Get()
accessor fromSwift.String
toTomTomSDKDynamicData.EVChargingAvailabilityID
. - We are changing the return type in the
EVChargingAvailabilityResponse.connectors.Get()
accessor from[TomTomSDKDynamicData.Connector]
to[TomTomSDKDynamicData.ConnectorAvailability]
. - We are changing the parameter 0 type in the
Connector.init(type:total:availability:)
constructor fromSwift.String
toTomTomSDKCommon.ConnectorType
. - We are changing the return type in the
Connector.init(type:total:availability:)
constructor fromTomTomSDKDynamicData.Connector
toTomTomSDKDynamicData.ConnectorAvailability
. - We are changing the parameter 0 type in the
EVChargingAvailabilityOptions.init(availabilityID:connectors:minPower:maxPower:)
constructor fromSwift.String
toTomTomSDKDynamicData.EVChargingAvailabilityID
. - We are changing the declared type in the
Connector.type
var fromSwift.String
toTomTomSDKCommon.ConnectorType
. - We are changing the declared type in the
EVChargingAvailabilityOptions.availabilityID
var fromSwift.String
toTomTomSDKDynamicData.EVChargingAvailabilityID
. - We are changing the declared type in the
EVChargingAvailabilityResponse.availabilityID
var fromSwift.String
toTomTomSDKDynamicData.EVChargingAvailabilityID
. - We are changing the declared type in the
EVChargingAvailabilityResponse.connectors
var from[TomTomSDKDynamicData.Connector]
to[TomTomSDKDynamicData.ConnectorAvailability]
.
- We are removing the
Routing
What is changing?
- In
TomTomSDKRoute
:- We are removing the
Route.getLineSegmentNr(preIndex:distanceAlongRoute:)
func. - We are removing the
Route.segmentDistances
var.
- We are removing the
- We are removing the
rawValue
API from theTomTomSDKRoute
enums (the rawValue is an implementation detail and user application code depends on it). The following enums are affected:AnnouncementPoints
InstructionPhoneticsType
InstructionType
RoadShieldReferences
Navigation
What is changing?
- In the
NavigationView.ViewModel
, we marked thelocale
propertyprivate
and removed it fromNavigationTextToSpeechService
. - We are removing the
rawValue
API fromTomTomSDKNavigationEngines
enums (therawValue
is an implementation detail and the user application code depends on it). The affected enums are:ProjectedRouteSection.Boundary
RoutePlanChangeReason
TypeOfRoad
- We are removing the
rawValue
API fromTomTomSDKNavigation
enums. The affected enums are:NavigationProcessingError
NavigationStartError
Announcing breaking changes: February 27, 2023
Search
What is changing?
- We are removing the
geopoliticalView
parameter fromSearchOptions
andReverseGeocoderOptions
. Instead, we are adding it as an ISO 3166-1 alpha-2 country code string toOnlineSearch.init()
andOnlineReverseGeocoder.init()
. - We are moving
entryPoints
fromPOI
toPlace
.
Routing
What is changing?
- We are removing
ConsumptionModel
because it is unused. - In
Range
, we are adding support for different representations for the boundary; we now have aRangeBoundary
interface instead of having a vector of coordinates. It is being implemented by a polygon class. - We are reordering
RangeCalculationOptions
properties to align with Android. - The vehicle type in
RangeCalculationOptions
/RoutePlanningOptions
is now non-optional and defaults toVehicleType.car
. - The engine efficiencies of the consumption model are now represented as
TTUnitRatio
instead ofDouble
so it aligns with Android. RouteReplanningResult
is now returning a list ofRoutes
(active route and alternatives).
Navigation
What is changing?
- We are removing:
- The
message
andmessagePhonetics
parameters fromGuidanceAnnouncement
. - The
Direction description()
func. - The
Direction.direction(from:)
func. - The
Direction.encode(to:)
func. - The
LaneSeparator.description()
func. - The
LaneSeparator.laneSeparator(from:)
func.
- The
- In the
Direction
enum we are removing conformance toDecodable
. - In the
Direction
enum we are removing conformance toEncodable
.
Announcing breaking changes: February 20, 2023
Maps
What is changing?
- In
TomTomSDKMapDisplayDataProviderOffline
module: We are replacingMapDisplayDataProvider.isOfflineTileDataProvider()
method with a computed property. - In
AutocompleteOptions
, we are making the limit non-optional. The default value = 5. - We are changing Struct
MapGestureDisableOption
to an Enum. - We are replacing the following:
- Func
MapGestureDisableOption.doubleTap()
with the.doubleTap
enum case. - Func
MapGestureDisableOption.doubleTapAndPan()
with the.doubleTapAndPan
enum case. - Func
MapGestureDisableOption.longPress()
with the.doubleTapAndPan
enum case. - Func
MapGestureDisableOption.none()
with the.none
enum case. - Func
MapGestureDisableOption.pan()
with the.pan
enum case. - Func
MapGestureDisableOption.pinch()
with the.pinch
enum case. - Func
MapGestureDisableOption.rotate()
with the.rotate
enum case. - Func
MapGestureDisableOption.tap()
with the.tap
enum case. - Func
MapGestureDisableOption.tilt()
with the.tilt
enum case. - Func
MapGestureDisableOption.twoFingerTap()
with the.twoFingerTap
enum case.
- Func
- In Property
TomTomMap.disabledGestures
we are changing the return type fromTomTomSDKMapDisplay.MapGestureDisableOption
to[TomTomSDKMapDisplay.MapGestureDisableOption]
. - We are removing the following:
- Func
CameraActions.addCameraEventObserver(_:)
. - Func
CameraActions.removeCameraEventObserver(_:)
. - Func
MapDelegate.map(_:didChangeCameraProperties:)
. - Func
MapDelegate.map(_:didChangeCameraTrackingMode:)
. - Func
MapDelegate.map(_:didDoubleTapOn:)
. - Func
MapDelegate.map(_:didLongPressOn:)
. - Func
MapDelegate.map(_:didSteadyCamera:)
. - Func
MapDelegate.map(_:didTapOn:)
. - Func
MapDelegate.map(_:didTapOnAnnotation:onCoordinate:)
. - Func
MapDelegate.map(_:didTapOnCurrentLocation:)
. - Func
MapDelegate.map(_:onInteraction:)
. - Func
MapDelegate.mapDidTapOnRecenterButton(_:)
. - Protocol
CameraEventObservable
.
- Func
- In
TomTomSDKMapDisplayDataProviderOffline
:- We are changing the return type in Func
OfflineTileDataProviderFactory.createOfflineTileDataProvider(store:)
fromTomTomSDKMapDisplay.MapDisplayDataProvider
toTomTomSDKMapDisplay.MapDisplayDataProvider?
.
- We are changing the return type in Func
Map delegate will be:
public protocol MapDelegate: AnyObject { /// Method for reporting states for an interaction with the map. /// - Parameter map: The instance of the Map where the event occurred. /// - Parameter interaction: The interaction func map(_ map: TomTomMap, onInteraction interaction: MapInteraction)
/// Method for reporting states for an interaction with the map. /// - Parameter map: The instance of the Map where the event occurred. /// - Parameter event: The interaction func map(_ map: TomTomMap, onCameraEvent event: CameraEvent) }
Minor changes
- Within
Struct LineOptions
we are adding the following new properties:patternTextureURI
patternTextureIcon
Search
What is changing?
- We are removing
FuelName
and replacing it withFuelType
in theDynamicData
module.
Navigation
Minor changes
- In
TomTomSDKAddonNavigationVisualization
:- We are adding the optional
patternTextureStyles
property to the ConstructorRouteTrafficIncidentStyle.init(lineWidths:outlineWidths:lineStartCapType:lineEndCapType:lineJointType:markerLabelFontURL:markerLabelTextSize:markerLabelOutlineWidth:markerLabelTextOffset:markerLabelTextAnchoring:markerVisibilityByCategory:magnitudeOfDelayStyles:patternTextureStyles:)
.
- We are adding the optional
Announcing breaking changes: February 13, 2023
Maps
What is changing?
- We are replacing
NDSStore.init: keystorePassword
withaccessPermit: .keystorePassword(String)
.
Navigation
What is changing?
- In
TomTomSDKNavigationEngines
we are removing the following:Constructor DestinationArrivalStatus.init(hasArrived:)
.Constructor WaypointArrivalStatus.init(hasArrived:routeStopID:)
.Var DestinationArrivalStatus.hasArrived
.Var WaypointArrivalStatus.hasArrived
.Var WaypointArrivalStatus.routeStopID
.Func LocationContextProviderEngine.detectLocationContext(navigationSnapshot:)
.
- In
TomTomSDKNavigationEngines
we are adding the protocol:Func LocationContextProviderEngine.provideLocationContext(navigationSnapshot:)
.
- In
TomTomSDKNavigationEngines.MapMatchingEngine
:- We are making return type non-optional in
func extrapolateLocation(navigationSnapshot: NavigationSnapshot)
throws >MapMatchingResult?
. - We are removing base type from enum
TomTomSDKNavigation.NavigationProcessingError
. - We are removing base type from enum
TomTomSDKNavigation.NavigationStartError
. - We are removing base type from enum
TomTomSDKNavigationEngines.TypeOfRoad
.
- We are making return type non-optional in
- In
TomTomSDKNavigationEngines.TypeOfRoad
:- We are replacing
func description() > String
with var description: String
- We are replacing
- In
TomTomSDKAddonNavigationVisualization
we are adding the following as protocol requirements:Func NavigationVisualizationServiceProtocol.hideTrafficIncidents()
.Func NavigationVisualizationServiceProtocol.showTrafficIncidents()
.
Announcing breaking changes: February 6, 2023
General
What is changing?
- We are removing the raw type from
ConnectorType
. - We are removing the raw type from
CurrentType
.
Maps
What is changing?
- We are removing
EventSubscriber
from the public API. - We are replacing
cameraEventSubscriber
withaddCameraEventObserver(CameraEventObservable)
andremoveCameraEventObserver(CameraEventObservable)
. - We are removing:
MapTileDataProviding
MapDisplayOnboardTileDataProvider
OnboardDataProvider
Minor changes
- We are renaming
OnboardStyleURLProvider
toOfflineStyleURLProvider
.
Search
What is changing?
- We are removing
FuelName
. We are extending and usingFuelType
for dynamic POI data (fuel price). - We are removing
geopoliticalView
fromSearchOptions
. - We are using
geopoliticalView
for construction ofOnlineSearch
,OfflineSearch
, andHybridSearch
. - We are removing the
TimeRange
struct from Search APIs. - We are renaming
maxDetourTime
tomaxDetourDuration
, and it is now optional. - We are changing
Connector.type
fromString
to aConnectorType
enum inDynamicData
. - We are renaming
EntityType
enum toAreaType
inReverseGeocoder
. - We are removing
Codable
,Decodable
, andEncodable
fromAvailability
,Connector
, andCurrent
. - We are removing
EVChargingStationsAvailabilityQuery
,EVChargingStationsAvailabilityQueryBuilder
, andEVChargingStationsAvailabilityResponse
from the Search API. The Charging Stations API is now part ofDynamicData
. - We are renaming
Current.powerKW
toCurrent.power
and changing its type toMeasurement
. - We are converting
EntryPoint.type
fromString
toenum
. - We are converting
SearchResultType
fromstruct
toenumGeometryModel
. - We are removing the following types from
TomTomSDKSearchOnline
:GeometryModel
GeometryModelConvertible
RoutePoints
SearchGeometry
SearchGeometryModel
SearchShapeType
SearchCircle
SearchShape
SearchGeometry
SearchGeometryModel
SearchPolygon
- We are removing
SDKSearchErrorDomain
fromTomTomSDKSearch
.
Minor changes
OnlineSearch
,HybridSearch
,OnlineReverseGeocoder
,HybridReverseGeocoder
have a new parameterapiUrl: URL
in their initializer list.- We are moving
ReverseGeocoderSummary
insideReverseGeocoderResponse
and renaming it. We are providing typealiases. - We are moving
AutocompleteSummary
,AutocompleteGeoBias
,AutocompleteResult
,AutocompleteMatchType
,AutocompleteSegment
,AutocompleteMatches
, andAutocompleteInputQuery
insideAutocompleteResponse
and renaming it. The previous type names will still be available. - We are moving
SearchRequestSummary
insideSearchResponse
and renaming it. We are providing typealiases.
Routing
Minor changes
We are removing the SupportingPoints
TypeAlias
from TomTomSDKRoutePlanner
.
Navigation
What is changing?
- We are replacing the language parameter type
String
withLocale
for the following:NavigationEngines
TextToSpeech
OnlineRouting
- We are renaming the
language
parameter tolocale
. - We are removing the
RoundaboutDirection
enum. - We are making the property
quantizedTurnAngle
non-optional for guidance instructions. - We are adding support for manual announcements.
- We are removing the
keepLeft
andkeepRight
values fromTurnDirection
. - We are making
Maneuver type
internal.
Announcing breaking changes: January 30, 2023
Maps
What is changing?
- We are removing the
HTTPFramework
from the public API. - We are removing the
HTTPInterceptorDelegate
protocol from the public API. - The following are now a regular
class
:- Line
- Circle
- Marker
- Route
- Polygon
- Layer
- Style
- TomTomMap
- PolygonOverlay protocol
- The following no longer conform to
AnyObject
:- Line
- Circle
- Marker
- Route
- Polygon
- Layer
- Style
- TomTomMap
- PolygonOverlay
- We are removing the following classes:
ApplicationLifecycleMonitor
MapPolygonOverlay
SceneLifecycleMonitor
- We are removing the enum
CameraUpdate.Builder
. - We are removing the following protocols:
AppUIInstanceStateObservable
ApplicationLifecycleMonitoring
- We are removing
MapView.appLifecycleMonitor
. - We are renaming
MapOptions.mapKey
toMapOptions.apiKey
. - We are replacing
MapTileOptions.x, MapTileOptions.y
withpoint: CGPoint
. - We are renaming
MapView.mapReady
toMapView.onMapReadyCallback
. - We are renaming
Struct RenderedFeatureQuery
toStruct RenderedFeatureQueryOptions
. - We are renaming
Route.progressOnRouteMeters
to VarprogressOnRoute
. We are changing the return type fromSwift.Double
toFoundation.Measurement<Foundation.UnitLength>
. - We are removing the following from the public API:
SourceCollection.init(from:)
TrafficIconCategory.init(rawValue:)
TrafficIncident.init(from:)
TrafficMagnitude.init(rawValue:)
TomTomMap.setMarkerDistanceFadingRange(range:)
changes parameter type fromSwift.ClosedRange<Swift.Int>
toSwift.ClosedRange<Foundation.Measurement<Foundation.UnitLength>>
.TomTomMap.setMarkerDistanceShrinkingRange(range:)
changes parameter type fromSwift.ClosedRange<Swift.Int>
toSwift.ClosedRange<Foundation.Measurement<Foundation.UnitLength>>
.OnDiskCachePolicy.cache
updated the type of the associated value duration fromTimeInterval
toMeasurement<UnitDuration>
.
Minor changes
- We are adding the
getHillShadingTiles(mapOptions: MapOption)
function to theMapTileDataProviding
protocol.
Announcing breaking changes: January 23, 2023
Search
What is changing?
PoiDetailsResponse
returnsPoiDetails
instead ofSearchResult
.limit
inAutoCompleteOptions
now has a non-optional default value of 5.- The
searchAreas
property inSearchOptions
is now a set. - We are removing
shouldFetchDetourOffset
inSearchOptions
. Detour offset will always be returned when applicable. SearchOptions
now has two constructors for each of the two scenarios, fuzzy search and search-along-the-route.- We are removing the POIID constructor that accepts a
SearchResultID
. - We are removing
fuelTypes
from POI. - We are grouping detour information into a Detour class in
SearchResult
. - We are using
TomTomSDKCommon.Place
inSearchResult
instead of address and position. - The strings for
AutocompleteSegment
will be either a Brand object, a Category object, or plain text. - We are converting collections with unique elements in POI to sets instead of arrays.
- enums in
SortOrder
now have a "by" prefix, e.g.,byDetourTime
. - We are removing offset from
SearchRequestSummary
. - We are renaming the following:
openingHours
toopeningHoursMode
inSearchOptions
.countries
tocountryCodes
inSearchOptions
.resultTypeSet
toresultTypes
inSearchOptions
.categories
tocategoryIDs
inSearchOptions
.identifiers
togeometryIDs
inGeometryDataOptions
.zoom
togeometryZoom
inGeometryDataOptions
.id
tosearchResultId
inSearchResult
.geoPoliticalView
togeopoliticalView
inSearchOptions
.GeoPoliticalView
toGeopoliticalView
.SearchRequestSummary
toSearchSummary
.
- We are removing
numResults
from all classes ending withSummary
. - We are replacing
ClosedRange<Date>
withDateInterval
inTomTomSDKSearch.OpeningHours
. - We are changing the return type of the
PlaceMatch.speedLimit.Get()
accessor fromSwift.String?
toFoundation.Measurement<Foundation.UnitSpeed>?
. - We are changing the declared type in the
PlaceMatch.speedLimit
var fromSwift.String?
toFoundation.Measurement<Foundation.UnitSpeed>?
Minor changes
- We are changing the
SearchResult.detourOffset
type fromInt
toMeasurement<UnitLength>
.
Routing
What is changing?
In TomTomSDKRoutePlannerOffline
we are removing:
- Enum
OnboardInstructionError
. - Enum
OnboardRouteConverterError
. - Func
CarTrainSection.convertToGoSDKSection(routePoints:)
. - Func
CarpoolSection.convertToGoSDKSection(routePoints:)
. - Func
CountrySection.convertToGoSDKSection(routePoints:)
. - Func
FerrySection.convertToGoSDKSection(routePoints:)
. - Func
MotorwaySection.convertToGoSDKSection(routePoints:)
. - Func
PedestrianSection.convertToGoSDKSection(routePoints:)
. - Func
TollRoadSection.convertToGoSDKSection(routePoints:)
. - Func
TollVignetteSection.convertToGoSDKSection(routePoints:)
. - Func
TrafficSection.convertToGoSDKSection(routePoints:)
. - Func
TravelModeSection.convertToGoSDKSection(routePoints:)
. - Func
TunnelSection.convertToGoSDKSection(routePoints:)
. - Func
UnpavedSection.convertToGoSDKSection(routePoints:)
. - Func
UrbanSection.convertToGoSDKSection(routePoints:)
. - Struct
RoutingArcInfo
.
Navigation
What is changing?
- We are moving the public interfaces of navigation engines to a new module
TomTomSDKNavigationEngines
. - We are renaming the existing module
TomTomSDKNavigationEngine
toTomTomSDKNavigation
. - We are removing the
didGenerateNextPrediction(predictions:)
method ofNavigationMapMatchingObserver
protocol. - We are replacing the
didMapMatchLocation(location: TomTomSDKLocationProvider.GeoLocation)
method of theNavigationMapMatchingObserver
protocol with thedidMapMatchLocation(location: TomTomSDKNavigationEngine.MapMatchingResult)
method. - We are changing the associated value type from
TomTomSDKLocationProvider.GeoLocation
toTomTomSDKNavigationEngine.MapMatchingResult
for thedidMapMatchLocation
enum case of theNavigationEvent.MapMatchingEvent
enum. - We are replacing
NavigationConfigurationBuilder
on theNavigationConfiguration
struct.
Announcing breaking changes: January 16, 2023
Maps
What is changing?
- We are removing the public initializers of the following
TomTomSDKDataManagementOffline
types:CompletedMapOperation
CurrentMapOperation
RegionGraph
RegionGraphNode
RegionGraphNodeState
Routing
What is changing?
Within TomTomSDKRoutePlannerOnline
:
- We are removing the following classes:
BatchReachableRangeQuery
BatchRoutingQuery
ReachableRangeQuery
RoutingQuery
- We are removing
RoutingError.init(from:)
. - We are removing the following enums:
OnlineInstructionError
RoutingErrorCode
- We are removing the following protocols:
Query
QueryBuilder
- We are removing the following structs:
LatLngBounds
OptimizedWaypoint
Rectangles
Response
RoadShieldReference
- We are removing the
RoutingError.message
var. - We are changing the
RoutingError
class to a struct. - We are changing the return type for the
RoutingError.code.Get()
accessor fromTomTomSDKRoutePlannerOnline.RoutingErrorCode
toTomTomSDKRoutePlannerOnline.RoutingError.Code
. - We are changing the declared type of the
RoutingError.code
var fromTomTomSDKRoutePlannerOnline.RoutingErrorCode
toTomTomSDKRoutePlannerOnline.RoutingError.Code
. - We are removing conformance of`RoutingError` to decodable.
Navigation
What is changing?
- We are removing
Route Instruction Builders
from the public API. - We are removing the property
travelTime
fromRoute Instruction
.
Announcing breaking changes: January 9, 2023
Maps
What is changing?
In TomTomSDKMapDisplay:
- We are removing the
RouteOptions.init(segments:)
constructor. - We are removing the
RouteSegment
struct. - We are removing the
RouteOptions.segments
var. - We are adding a
RouteOptions.init(coordinates: [CLLocationCoordinate2D], sections: [RouteSection])
constructor.
Search
What is changing?
In the reverse geocoder:
- We are renaming the
supportedRoadUses
attribute inReverseGeocoderOptions
toroadUses
. - We are renaming
supportedEntityTypes
inReverseGeocoderOptions
toentityTypes
. - We are renaming
supportedMapCodeTypes
inReverseGeocoderOptions
tomapCodeTypes
. - We are renaming
shouldFetchGeometry
inReverseGeocoderOptions
tofetchGeometry
. - The
EntityType
enumeration won’t have a base type. - We are reusing
Geometry
from theTomTomSDKCommon
module instead of defining aGeoGeometry
type in the reverse geocoder module. - The
MatchType
enumeration won’t have a base type. - We will now represent the speed limit by
Measurement<UnitSpeed>
. - We are using set for
roaduse
inPlaceMatch
. - We are reusing
GeoBoundingBox
fromTomTomSDKCommon
in the reverse geocoder. - We are removing
numResults
fromReverseGeocoderSummary
. - We are removing map code from the reverse geocoder.
Minor changes
- We are changing
SearchOptions.sessionId
tosessionID
. - In the reverse geocoder:
- We are setting
ReverseGeocoderOptions.locale
to the default locale.
- We are setting
Routing
What is changing?
TomTomSDKRoutePlanner:
- We are removing the following constructors:
AlternativeType.init(rawValue:)
AvoidType.init(rawValue:)
ExtendedRouteRepresentation.init(rawValue:)
Hilliness.init(rawValue:)
RouteRepresentation.init(rawValue:)
SectionType.init(rawValue:)
WaypointOptimization.init(rawValue:)
Windingness.init(rawValue:)
- We are removing the
Array.queryItems(key:)
func. - We are removing the following TypeAlias’s:
AlternativeType.RawValue
AvoidType.RawValue
ExtendedRouteRepresentation.RawValue
Hilliness.RawValue
RouteRepresentation.RawValue
SectionType.RawValue
WaypointOptimization.RawValue
Windingness.RawValue
- We are removing the following vars:
AlternativeType.rawValue
AvoidType.rawValue
ExtendedRouteRepresentation.rawValue
Hilliness.rawValue
RouteRepresentation.rawValue
SectionType.rawValue
WaypointOptimization.rawValue
Windingness.rawValue
- We are changing
QueryOptions.trackingId
to VartrackingID
.
- We are removing conformance of the
AvoidType
enums to:Decodable
Encodable
RawRepresentable
- We are removing conformance to
RawRepresentable
from the following enums:AlternativeType
AvoidType
ExtendedRouteRepresentation
Hilliness
RouteRepresentation
RouteType
SectionType
WaypointOptimization
Windingness
The following changes to AvoidOptions
are being made:
Name |
Type |
What is changing |
From |
To |
|
accessor |
return type |
|
|
|
accessor |
parameter 0 type |
|
|
|
accessor |
return type |
|
|
|
accessor |
parameter 0 type |
|
|
|
constructor |
parameter 0 type |
|
|
|
constructor |
parameter 2 type |
|
|
|
var |
declared type |
|
|
|
var |
declared type |
|
|
TomTomSDKRoutePlannerOnline:
- Extension Array removing conformance to
QueryItemArrayConvertable
. - Func
Array.queryItem(key:)
is being removed from the public API.
TomTomSDKNavigation:
- Extension Array removing conformance to
QueryItemArrayConvertable
.
Announcing breaking changes: January 2, 2023
General
What is changing?
TomTomSDKFeatureToggle
:
- Func
FeatureToggleControllerProtocol.disable(feature:)
has a generic signature change from<Self where Self : TomTomSDKFeatureToggle.FeatureToggleControllerProtocol>
to<Self where Self : TomTomSDKFeatureToggle.FeatureToggleController>
. - Func
FeatureToggleControllerProtocol.enable(feature:)
has a generic signature change from<Self where Self : TomTomSDKFeatureToggle.FeatureToggleControllerProtocol>
to<Self where Self : TomTomSDKFeatureToggle.FeatureToggleController>
. - Func
FeatureToggleControllerProtocol.isEnabled(feature:)
has a generic signature change from<Self where Self : TomTomSDKFeatureToggle.FeatureToggleControllerProtocol>
to<Self where Self : TomTomSDKFeatureToggle.FeatureToggleController>
. - We are removing Constructor
RuntimeFeatureType.init(rawValue:)
. - We are removing EnumElement
RuntimeFeatureType.newGestureInteraction
. - We are removing TypeAlias
RuntimeFeatureType.RawValue
. - We are removing Var
RuntimeFeatureType.rawValue
. - We are renaming Protocol
FeatureToggleControllerProtocol
to ProtocolFeatureToggleController
. - Accessor
FeatureToggle.shared.Get()
has a return type change fromTomTomSDKFeatureToggle.FeatureToggleControllerProtocol
toTomTomSDKFeatureToggle.FeatureToggleController
. - Var FeatureToggle.shared has a declared type change from
TomTomSDKFeatureToggle.FeatureToggleControllerProtocol
toTomTomSDKFeatureToggle.FeatureToggleController
. - Class
FeatureToggle
has removed conformance toFeatureToggleControllerProtocol
. - Enum
RuntimeFeatureType
has removed conformance toRawRepresentable
.
Navigation
What is changing?
TomTomSDKRouteReplanner.RouteReplanner
protocol is changing:- method func
update(_ options: RouteUpdateOptions) async throws
> [Route] is changing to funcupdate(_ options: RouteUpdateOptions)`
>AsyncThrowingStream<Route, Error>
. - method func
backToRoute(_ options: BackToRouteOptions) async throws
> [Route] is changing to funcbackToRoute(_ options: BackToRouteOptions)
>AsyncThrowingStream<Route, Error>
.
- method func
- Implementations of protocol
TomTomSDKRouteReplannerHybrid.HybridRouteReplanner
andTomTomSDKRouteReplannerDefault.DefaultRouteReplanner
are changing respectively.
Announcing breaking changes: December 27, 2022
General
What is changing?
- We are renaming
UnitsSystem.distanceFormatted(valueInMeters:)
todistanceFormatted(value:)
- We are removing
GeoJSONPosition.init(from:)
- We are removing
GeoJSONPosition.encode(to:)
- We are making the following internal:
- Initializer
Geometry.init(type:coordinates:)
- Var
GeoJSON.exteriorRing
- Var
GeoJSON.internalRings
- Initializer
- Struct
GeoJSONPosition
has removed conformance to Decodable - Struct
GeoJSONPosition
has removed conformance to Encodable
Maps
What is changing?
- We are replacing initializer
RouteInstruction.init(distanceAlongRouteMeters:lengthInMeters:combineWithNext:pointIndex:)
withRouteInstruction.init(distanceAlongRoute:length:combineWithNext:pointIndex:)
- We are renaming property
RouteOptions.reachableDistanceInMeters
toreachableDistance
Search
What is changing?
- We are renaming
searchResult.id.parkingAvailabilityDataSourceId
toparkingDetailD
in TomTomSDKSearch.SearchResult - Moving EV Charging AvailabilityAPI from Hybrid and Search modules to Dynamic Data module:
- We are removing in TomTomSDKSearch:
Search.requestEvChargingStationsAvailability(query:completion:)
method - We are removing in TomTomSDKSearchOnline:
OnlineSearch.requestEvChargingStationsAvailability(query:completion:)
method - We are removing TomTomSDKSearchOffline: Func
OfflineSearch.requestEvChargingStationsAvailability(query:completion:)
- We are removing TomTomSDKSearchHybrid: Func
HybridSearch.requestEvChargingStationsAvailability(query:completion:)
- We are removing in TomTomSDKSearch:
Navigation
What is changing?
- We are moving EVChargingAvailability API from HybridSearch and Hybrid Search to Dynamic Data module
- We are removing
travelTime
from guidance instructions - We are renaming
DefaultSimpleEngineCommonCalculator.calculateProgressOnRoute(location:route:distanceThreshInMeters:lastDistanceAlongRoute:)
tocalculateProgressOnRoute(location:route:distanceThreshold:lastDistanceAlongRoute:)
- We are renaming
SimpleEngineCommonCalculator.calculateProgressOnRoute(location:route:distanceThreshInMeters:lastDistanceAlongRoute:)
tocalculateProgressOnRoute(location:route:distanceThreshold:lastDistanceAlongRoute:)
- The parameter type in
SimpleEngineCommonCalculator.calculateProgressOnRoute(location:route:distanceThreshInMeters:lastDistanceAlongRoute:)
is changing fromSwift.Double
toFoundation.Measurement<Foundation.UnitLength>
- The declared type for property
SimpleEngineCalcResult.closestDistance
is changing fromSwift.Double
toFoundation.Measurement<Foundation.UnitLength>
Announcing breaking changes: December 19, 2022
Search
What is changing?
- We are removing the
RelatedPois
enum, as we do not support related POIs in response or search options.
Announcing breaking changes: December 5, 2022
General
What is changing?
- We are removing the
distance
property from thePlace
structure.
Maps
Minor changes
- We are moving
PositionUpdateObserver
protocol to theTomTomSDKDataManagement
framework (fromTomTomSDKDataStoreUpdater
), to improve the dependency tree. - The following methods/properties will be removed from the
TomTomSDKDataManagement.MapDataStore
protocol:updatesEnabled
addMapUpdateObserver
removeMapUpdateObserver
addAutomaticMapUpdateFailureObserver
removeAutomaticMapUpdateFailureObserver
These methods will still be present onTomTomSDKDataManagementOffline.NDSStore
class, so you will need to use that class instead ofMapDataStore
protocol to call these methods.
- We are moving the following types (all related to the NDS Map Update functionality) to the
TomTomSDKDataManagementOffline
framework (fromTomTomSDKDataManagement
):AutomaticMapUpdateFailureObserver
CompletedMapOperation
CurrentMapOperation
MapOperation
MapOperationType
MapUpdateError
MapUpdateObserver
RegionGraph
RegionGraphNode
RegionGraphNodeID
RegionGraphNodeState
RegionGraphObserver
Search
What is changing?
- We are unifying search and search along the route APIs.
- We are removing the
offset
parameter from the SearchOptions structure. - We are removing the
fuzzyLevel
parameter from the SearchOptions structure.
Routing
What is changing?
- For TomTomSDKRoutePlanner:
- Property
AlternativeRoutesOptions.Builder.maxAlternatives
changing the type fromInt?
toInt
. - Property
AlternativeRoutesOptions.maxAlternatives
changing return type fromInt?
toInt
. - Initializer
AlternativeRoutesOptions.init(maxAlternatives:alternativeType:minDeviationDistance:minDeviationTime:)
changing parametermaxAlternatives
type fromInt?
toInt
. - Initializer
AlternativeRoutesOptions.init(maxAlternatives:alternativeType:minDeviationDistance:minDeviationTime:)
removing default argument formaxAlternatives
parameter.
- Property
Navigation
What is changing?
- We are reordering instruction params to group defaulted params at the end of the initializers.
- We are renaming
GuidanceOnlineAPIVersion
toOnlineAPIVersion
.
Announcing breaking changes: November 28, 2022
Maps
What is changing?
- TomTomSDKDataManagement
- MapStructureObserver protocol has been removed (use RegionGraphObserver instead).
- RegionGraphNode’s id property has been removed (use nodeID instead).
- TomTomSDKDataManagementOffline
- TypeAlias MapOperationScheduler has been removed.
- Class NDSStore has removed conformance to MapOperationScheduler. MapOperationScheduler has been removed.
- Class NDSStore has removed conformance to MapStructureProvider. MapStructureProvider has been removed.
- Class NDSStore has removed conformance to RegionGraphDataProviding. RegionGraphDataProviding has been moved to the GoSDK sample app.
Search
What is changing?
- Replacing the EV Charging Stations Availability API from Search and HybridSearch modules with the EV Charging Stations Availability API from DynamicData module.
- Removing TomTomSDKDataManagement.OnStoreAccessChangedObserver protocol support from the TomTomSDKSearchOffline.OfflineSearch and TomTomSDKRerevseGeocoderOffline.OfflineReverseGeocoder classes.
Announcing breaking changes: November 21, 2022
Maps
What is changing?
- Renaming
Map
toTomTomMap
Search
What is changing?
- Moving
EntryPoints
andChargingPark
fromSearchResponse
to POI class
Routing
What is changing?
- Renaming:
HTTPHandlerProtocol
>HTTPHandler
QueryProtocol
>Query
SimpleEngineCommonCalcProtocol
>SimpleEngineCommonCalc
Navigation
What is changing?
- Removing:
Enum NavigationOptionsActiveRouteError
Enum NavigationOptionsAddError
Enum NavigationOptionsRemoveError
Enum NavigationOptionsUpdateError
- Changing:
Func NavigationOptionsActiveRouteDelegate.activeRouteSetFailed
(with:) parameter type fromTomTomSDKNavigation.NavigationOptionsActiveRouteError
toTomTomSDKNavigation.Navigation.OptionsError
Func NavigationOptionsAddDelegate.routePlanAddFailed
(with:) parameter type fromTomTomSDKNavigation.NavigationOptionsAddError
toTomTomSDKNavigation.Navigation.OptionsError
Func NavigationOptionsRemoveDelegate.routeRemovalFailed
(with:) parameter type fromTomTomSDKNavigation.NavigationOptionsRemoveError
toTomTomSDKNavigation.Navigation.OptionsError
Func NavigationOptionsUpdateDelegate.updateFailed
(with:) parameter type fromTomTomSDKNavigation.NavigationOptionsUpdateError
toTomTomSDKNavigation.Navigation.OptionsError
- Renaming:
Func NavigationErrorObserver.didArrivalEngineFail
(with:) toNavigationErrorObserver.arrivalEngineFailed
(with:)Func NavigationErrorObserver.didGuidanceEngineFail
(with:) toNavigationErrorObserver.guidanceEngineFailed
(with:)Func NavigationErrorObserver.didHorizonEngineFail
(with:) toNavigationErrorObserver.horizonEngineFailed
(with:)Func NavigationErrorObserver.didLocationContextEngineFail
(with:) toNavigationErrorObserver.locationContextEngineFailed
(with:)Func NavigationErrorObserver.didMapMatchingEngineFail
(with:) toNavigationErrorObserver.mapMatchingEngineFailed
(with:)Func NavigationErrorObserver.didRouteProgressDetectionEngineFail
(with:) toNavigationErrorObserver.routeProgressDetectionEngineFailed
(with:)Func NavigationErrorObserver.didRouteReplanningEngineFail
(with:) toNavigationErrorObserver.routeReplanningEngineFailed
(with:)Func NavigationErrorObserver.didRouteTrackingEngineFail
(with:) toNavigationErrorObserver.routeTrackingEngineFailed
(with:)Func NavigationErrorObserver.didStartFail
(with:) toNavigationErrorObserver.navigationStartFailed
(with:)
Announcing changes to SDK artifacts: November 17, 2022
When is it expected?
Expected rollout date: November 21, 2022
What is changing?
With the upcoming release of Maps and Navigation SDKs, we are renaming some frameworks to comply with the SDK-wide naming scheme. Historical frameworks remain available in the CocoaPods and SPM repositories. However, all new SDK development will be published under the updated artifact names.
What do you need to do?
If you want to be able to use the newest SDKs, make sure to remove all old frameworks used in your Podfile
or your SPM package definition and add matching entries with the updated names. We will communicate the exact list of renamed frameworks in the Release Notes.
Announcing breaking changes: November 14, 2022
Maps
What is changing?
- Renaming:
OnboardMapMatchingEngine
toOfflineMapMatchingEngine
(implementation)OnboardLocationContextProviderEngine
toOfflineLocationContextProviderEngine
(implementation)
Search
What is changing?
- Changing the way an API key is set for the API entry points in
TomTomSDKOnlineSearch
,TomTomSDKOnlineReverseGeocoder
, andTomTomSDKOnlineDynamicData
modules. From now on the API key will be set at the API entry point initialization. We are removing the following public preview APIs that we used for setting a key:SearchOnlineService
class,ReverseGeocoderOnlineService
class, and a staticOnlineDynamicDataProvider.searchKey
property. - Changing public preview API endpoint in
TomTomSDKReverseGeocoder
,TomTomSDKReverseGeocoderOnline
,TomTomSDKReverseGeocoderOffline
, andTomTomSDKReverseGeocoderHybrid
modules:- Renaming the following API entry points:
Protocol ReverseGeocoderService
toReverseGeocoder
Class TomTomOnlineReverseGeocoderService
toOnlineReverseGeocoder
Class TomTomOnboardReverseGeocoderService
toOfflineReverseGeocoder
Class HybridReverseGeocoderService
toHybridReverseGeocoder
Structure ReverseGeocoderQuery
toReverseGeocoderOptions
- Changing the signature of method:
ReverseGeocoder.reverseGeocode
(query ReverseGeocoderQuery: completion: @escaping (Result<TomTomSDKReverseGeocoder.ReverseGeocoderResponse, Error>)
toReverseGeocoder.reverseGeocode
(queryReverseGeocoderOptions: completion: @escaping
(Result<TomTomSDKReverseGeocoder.ReverseGeocoderResponse, Error>
)
- Removing
AdditionalDataQueryBuilder
andAdditionalDataQuery
from public API
- Renaming the following API entry points:
- Changing public preview API endpoint in
TomTomSDKSearch
,TomTomSDKReverseSearchOnline
,TomTomSDKSearchOffline
, andTomTomSDKSearchrHybrid
modules:- Renaming API entry points:
Protocol SearchService
toSearch
Class TomTomOnlineSearchService
toOnlineSearch
Class TomTomOnboardSearchService
toOfflineSearch
Class HybridSearchService
toHybridSearch
- Query structures to options (e.g., renaming
SearchQuery
toSearchOptions
) - Changing the signature of API methods by renaming query parameter to options
- Renaming API entry points:
Navigation
What is changing?
TomTomSDKCommon
:- Removing
constructor MatchedLocation.init
(location:predictions:mapPosition:probability:
) - Removing
var MatchedLocation.predictions
- Renaming
Enum StreamExecutionPolicy
toHybridRoutePlanner.ExecutionPolicy
and moving toTomTomSDKHybridRouting
- Removing
TomTomSDKNavigation
:- Removing
constructor MapMatchingResult.init
(location:predictions:routeMatchingDetails:mapPosition:probability:
)
- Removing
TomTomSDKInternalDynamicRoutingApi
:- Removing
enum DynamicRoutingCommon
- Removing
- Renaming the following modules:
TomTomSDKOnboardLocationContextProviderEngine
>TomTomSDKLocationContextProviderEngineOffline
TomTomSDKOnboardMapMatchingEngine
>TomTomSDKMapMatchingEngineOffline
TomTomSDKOnlineSearch
>TomTomSDKSearchOnline
TomTomSDKOnboardSearch
>TomTomSDKSearchOffline
TomTomSDKHybridSearch
>TomTomSDKSearchHybrid
- Renaming the following functions:
GuidanceEngine.generateGuidance
(inputParameters:
) >generateGuidance
(navigationSnapshot:
)GuidanceEngine.generateLaneGuidance
(inputParameters:
) >generateLaneGuidance
(navigationSnapshot:
)LocationContextDetectionEngine.detectLocationContext
(matchedLocation:
) >detectLocationContext
(navigationSnapshot:
)NavKitLocationContextEngine.detectLocationContext
(matchedLocation:
) >detectLocationContext
(navigationSnapshot:
)TomTomDynamicGuidanceEngine.generateGuidance
(inputParameters:
) >generateGuidance
(navigationSnapshot:
)TomTomDynamicGuidanceEngine.generateLaneGuidance
(inputParameters:
) >generateLaneGuidance
(navigationSnapshot:
)TomTomGuidanceEngine.generateGuidance
(inputParameters:
) >generateGuidance
(navigationSnapshot:
)TomTomGuidanceEngine.generateLaneGuidance
(inputParameters:
) >generateLaneGuidance
(navigationSnapshot:
)OnboardLocationContextProviderEngine.detectLocationContext
(matchedLocation:
) >detectLocationContext
(navigationSnapshot:
)
Func GuidanceEngine.generateGuidance
(inputParameters:
) changingparameter 0 type
fromTomTomSDKNavigation.GuidanceParams
toTomTomSDKNavigation.NavigationSnapshot
Func GuidanceEngine.generateLaneGuidance
(inputParameters:
) changingparameter 0 type
fromTomTomSDKNavigation.GuidanceParams
toTomTomSDKNavigation.NavigationSnapshot
Func LocationContextDetectionEngine.detectLocationContext
(matchedLocation:
) changingparameter 0 type
fromTomTomSDKCommon.MatchedLocation
toTomTomSDKNavigation.NavigationSnapshot
Func NavKitLocationContextEngine.detectLocationContext
(matchedLocation:
) changingparameter 0 type
fromTomTomSDKCommon.MatchedLocation
toTomTomSDKNavigation.NavigationSnapshot
Func TomTomDynamicGuidanceEngine.generateGuidance
(inputParameters:
) changingparameter 0 type
fromTomTomSDKNavigation.GuidanceParams
toTomTomSDKNavigation.NavigationSnapshot
Func TomTomDynamicGuidanceEngine.generateLaneGuidance
(inputParameters:
) changingparameter 0 type
fromTomTomSDKNavigation.GuidanceParams
toTomTomSDKNavigation.NavigationSnapshot
Func TomTomGuidanceEngine.generateGuidance
(inputParameters:
) changingparameter 0 type
fromTomTomSDKNavigation.GuidanceParams
toTomTomSDKNavigation.NavigationSnapshot
Func TomTomGuidanceEngine.generateLaneGuidance
(inputParameters:
) changingparameter 0 type
fromTomTomSDKNavigation.GuidanceParams
toTomTomSDKNavigation.NavigationSnapshot
Func OnboardLocationContextProviderEngine.detectLocationContext
(matchedLocation:
) changingparameter 0 type
fromTomTomSDKCommon.MatchedLocation
toTomTomSDKNavigation.NavigationSnapshot
- Changing
NavigationConfigurationBuilder
signature fromNavigationConfigurationBuilder
(apiKey: String, locationProvider: LocationProvider, routeReplanner: TomTomSDKRouteReplanner.RouteReplanner
) toNavigationConfigurationBuilder
(navigationKey: String, locationProvider: LocationProvider, routeReplanner: TomTomSDKRouteReplanner.RouteReplanner
) - Removing
RouteMatchingDetails
type - Changing
MapMatchingResult
type: removingpublic let routeMatchingDetails: RouteMatchingDetails
, and addingpublic let followedRouteIds: [UUID]
. - Changing initializer of
MapMatchingResult
from:
1public init(2 matchedLocation: MatchedLocation,3 timestamp: Measurement<UnitDuration> = .tt.seconds(0),4 predictions: [GeoLocation] = [],5 routeMatchingDetails: RouteMatchingDetails = RouteMatchingDetails(followedRoutesIds: []),6 alternativeMatchedLocations: [MatchedLocation] = )
to
1public init(2 matchedLocation: MatchedLocation,3 timestamp: Measurement<UnitDuration> = .tt.seconds(0),4 predictions: [GeoLocation] = [],5 followedRouteIds: [UUID] = [],6 alternativeMatchedLocations: [MatchedLocation] = )
Minor changes
TomTomSDKNavigation
:- Adding var
MapMatchingResult.timestamp
- Adding var
MapMatchingResult.alternativeMatchedLocations
- Adding var
MatchedLocation.positionId
- Adding var
MatchedLocation.isOnRoad
- Adding var
MatchedLocation.direction
- Adding var
Announcing breaking changes: November 7, 2022
General
What is changing?
- Removing:
- Obsolete internal API
AudioConfigurationProvider
protocol from theTomTomSDKCommon
module. - Obsolete
IDGenerator
class from the public API of theTomTomSDKCommon
module. - Renaming:
TomTomSDKHTTPFramework
>TomTomSDKNetworking
TomTomSDKLocation
>TomTomSDKLocationProvider
TomTomSDKMapsDisplay
>TomTomSDKMapDisplay
TomTomSDKOnboardStyleProvider
>TomTomSDKStyleProviderOffline
TomTomSDKNavigationView
>TomTomSDKNavigationUI
TomTomSDKSystemTextToSpeechEngine
>TomTomSDKDefaultTextToSpeech
TomTomSDKOnboardMapDisplayDataProvider
>TomTomSDKMapDisplayDataProviderOffline
TomTomSDKDynamicRoutingApi
>TomTomSDKRouteReplanner
TomTomSDKOnlineDynamicRoutingApi
>TomTomSDKRouteReplannerDefault
TomTomSDKInternalDynamicRoutingApi
>TomTomSDKRouteReplannerInternal
TomTomSDKHybridDynamicRouting
>TomTomSDKRouteReplannerHybrid
TomTomSDKOnlineDynamicData
>TomTomSDKDynamicDataOnline
TomTomSDKOnboardDataManagement
>TomTomSDKDataManagementOffline
TomTomSDKRouting
>TomTomSDKRoutePlanner
TomTomSDKOnlineRouting
>TomTomSDKRoutePlannerOnline
TomTomSDKOnboardRouting
>TomTomSDKRoutePlannerOffline
TomTomSDKHybridRouting
>TomTomSDKRoutePlannerHybrid
TomTomSDKOnlineReverseGeocoder
>TomTomSDKReverseGeocoderOnline
TomTomSDKOnboardReverseGeocoder
>TomTomSDKReverseGeocoderOffline
TomTomSDKHybridReverseGeocoder
>TomTomSDKReverseGeocoderHybrid
TomTomSDKNavigationVisualizationAddon
>TomTomSDKAddonNavigationVisualization
TomTomSDKRangeVisualizationAddon
>TomTomSDKAddonRangeVisualization
TomTomSDKUIComponents
>TomTomSDKCommonUI
TomTomSDKTPEGTraffic
>TomTomSDKTrafficTPEG
TomTomSDKOnlineRouteProjectionEngine
>TomTomSDKRouteProjectionEngineTileStore
TomTomSDKOnboardStructuredSearch
>TomTomSDKStructuredSearchOffline
TomTomSDKOnboardVehicleHorizonEngine
>TomTomSDKHorizonEngineOffline
Minor changes
- Making utility network-related classes from the
TomTomSDKCommon
modulespi-internal
. - Making
ValueFormattingResult
andValueWithUnitFormatter
API fromTomTomSDKCommon
modulespi-internal
.
Routing
What is changing?
- Renaming:
RoutingService
>RoutePlanner
TomTomRoutingService
>OnlineRoutePlanner
OnboardRoutingService
>OfflineRoutePlanner
HybridRouting
>HybridRoutePlanner
RoutingOnlineService
>OnlineRoutingService
(API key management)- Removing:
OnlineRoutingService
and initializeOnlineRoutePlanner
with ROUTING_API_KEY directly
Navigation
What is changing?
- Removing language from Guidance public API.
Announcing breaking changes: October 31, 2022
General
What is changing?
- Mark as @_Spi internal classes/protocols in Common module.
LineOptions
introduced new properties: PatternAppearance and OutlineAppearance.- Renaming acronyms in function parameters, classes, protocols and variables. Examples:
- Id > ID,
- Uuid > UUID,
- annotationId > annotationID
LineOptions
introduced new properties:PatternAppearance
andOutlineAppearance
.
Maps
What is changing?
- Removing deprecated OnboardDataStoreUpdateContextEngine (use DataStoreUpdater).
- Renaming acronyms in function parameters, classes, protocols and variables. Examples:
- Id > ID,
- Uuid > UUID,
- annotationId > annotationID
- Marking in Common internal api as @_Spi.
Navigation
What is changing?
- Removing
PhoneticPair
,PhoneticStringPair
andPhoneticTranscription
from public API. - Removing
Announcement.maneuver
from public API. - Removing
VerbalMessageComposer
from public API. - Removing
VerbalMessageGeneration
from public API. - Removing
LaneGuidanceGenerator
from public API. - Renaming
isPossibleToCombineWithNext
tocombineWithNext
in public API. - Renaming
RoutePoint
toRouteStop
. - Renaming
DynamicRoutingApi
toRouteReplanner
. - Renaming
OnlineDynamicRoutingClient
toDefaultRouteReplanner
. - Renaming
HybridDynamicRouting
toHybridRouteReplanner
. - In
Navigation
classdelegate
property is removed.TomTomNavigationDelegate
protocol is also being removed. Instead, you should usedelegate
property ofNavigation
class andTomTomNavigationDelegate
protocol.
public func addNavigationObserver(_ observer: NavigationObserver)public func removeNavigationObserver(_ observer: NavigationObserver)
Methods of Navigation class
, and NavigationObserver
protocol respectively. Also, for subscribing to a specific event, you can use specific methods like addStartObserver/removeStartObserver
and NavigationStartObserver
protocol, addProgressObserver/removeProgressObserver
and NavigationProgressObserver
protocol, etc. (see list of the methods of Navigation
class).
- In
Navigation
classdelegateError
property is removed.TomTomNavigationErrorDelegate
protocol is also being removed. Instead, you should usedelegateError
property ofNavigation
class andTomTomNavigationErrorDelegate
protocol.
public func addErrorObserver(_ observer: NavigationErrorObserver)public func removeErrorObserver(_ observer: NavigationErrorObserver)