DefaultTomTomNavigation
@available(*, deprecated, message: "This API is deprecated and will be removed with the next major release.")
public class DefaultTomTomNavigation : TomTomNavigation
The DefaultTomTomNavigation object defines the functionality of the navigation.
Important
DefaultTomTomNavigation isn’t thread-safe and it’s recommended to make API calls always on the same thread.-
init(locationProvider:
dataSourceSelectionEngine: dataStoreMaintenanceEngine: mapMatchingEngine: routeProgressEngine: guidanceEngine: routeTrackingEngine: arrivalDetectionEngine: horizonEngine: routeReplanner: routeReplanningEngine: routeReplanningRetryPolicy: routeDeviationReplanningRetryPolicy: betterProposalAcceptanceMode: deviationReplanningMode: vehicleProvider: usePredictions: ) Creates an instance of
DefaultTomTomNavigation
.Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public init( locationProvider: LocationProvider, dataSourceSelectionEngine: DataSourceSelectionEngine?, dataStoreMaintenanceEngine: DataStoreMaintenanceEngine?, mapMatchingEngine: MapMatchingEngine, routeProgressEngine: RouteProgressEngine, guidanceEngine: GuidanceEngine, routeTrackingEngine: RouteTrackingEngine?, arrivalDetectionEngine: ArrivalDetectionEngine, horizonEngine: HorizonEngine?, routeReplanner: TomTomSDKRouteReplanner.RouteReplanner, routeReplanningEngine: RouteReplanningEngine, routeReplanningRetryPolicy: ReplanningRetryPolicy, routeDeviationReplanningRetryPolicy: ReplanningRetryPolicy, betterProposalAcceptanceMode: BetterProposalAcceptanceMode, deviationReplanningMode: DeviationReplanningMode, vehicleProvider: VehicleProvider, usePredictions: Bool )
Parameters
locationProvider
The
LocationProvider
to be used during navigation.dataSourceSelectionEngine
The
DataSourceSelectionEngine
to be used during navigation.dataStoreMaintenanceEngine
The
DataStoreMaintenanceEngine
to be used during navigation.mapMatchingEngine
The
MapMatchingEngine
to be used during navigation.routeProgressEngine
The
RouteProgressEngine
to be used during navigation.guidanceEngine
The
GuidanceEngine
to be used during navigation.routeTrackingEngine
The
RouteTrackingEngine
to be used during navigation.arrivalDetectionEngine
The
ArrivalDetectionEngine
to be used during navigation.horizonEngine
The
HorizonEngine
to be used during navigation.routeReplanner
The
TomTomSDKRouteReplanner.RouteReplanner
to be used during navigation.routeReplanningEngine
The
RouteReplanningEngine
to be used during navigation.routeReplanningRetryPolicy
The
ReplanningRetryPolicy
to be used during navigation for replanning.routeDeviationReplanningRetryPolicy
The
ReplanningRetryPolicy
to be used during navigation for replanning on deviation.betterProposalAcceptanceMode
The
BetterProposalAcceptanceMode
to be used during navigation.deviationReplanningMode
The
DeviationReplanningMode
to be used during navigation.vehicleProvider
The
VehicleProvider
to be used during navigation.usePredictions
Use predictions during navigation.
-
init(locationProvider:
dataSourceSelectionEngine: dataStoreMaintenanceEngine: mapMatchingEngine: routeProgressEngine: guidanceEngine: routeTrackingEngine: arrivalDetectionEngine: horizonEngine: routeReplanner: routeReplanningEngine: routeReplanningRetryPolicy: routeDeviationReplanningRetryPolicy: betterProposalAcceptanceMode: deviationReplanningMode: vehicleProvider: ) Creates an instance of
DefaultTomTomNavigation
.Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public convenience init( locationProvider: LocationProvider, dataSourceSelectionEngine: DataSourceSelectionEngine?, dataStoreMaintenanceEngine: DataStoreMaintenanceEngine?, mapMatchingEngine: MapMatchingEngine, routeProgressEngine: RouteProgressEngine, guidanceEngine: GuidanceEngine, routeTrackingEngine: RouteTrackingEngine?, arrivalDetectionEngine: ArrivalDetectionEngine, horizonEngine: HorizonEngine?, routeReplanner: TomTomSDKRouteReplanner.RouteReplanner, routeReplanningEngine: RouteReplanningEngine, routeReplanningRetryPolicy: ReplanningRetryPolicy, routeDeviationReplanningRetryPolicy: ReplanningRetryPolicy, betterProposalAcceptanceMode: BetterProposalAcceptanceMode, deviationReplanningMode: DeviationReplanningMode, vehicleProvider: VehicleProvider )
Parameters
locationProvider
The
LocationProvider
to be used during navigation.dataSourceSelectionEngine
The
DataSourceSelectionEngine
to be used during navigation.dataStoreMaintenanceEngine
The
DataStoreMaintenanceEngine
to be used during navigation.mapMatchingEngine
The
MapMatchingEngine
to be used during navigation.routeProgressEngine
The
RouteProgressEngine
to be used during navigation.guidanceEngine
The
GuidanceEngine
to be used during navigation.routeTrackingEngine
The
RouteTrackingEngine
to be used during navigation.arrivalDetectionEngine
The
ArrivalDetectionEngine
to be used during navigation.horizonEngine
The
HorizonEngine
to be used during navigation.routeReplanner
The
TomTomSDKRouteReplanner.RouteReplanner
to be used during navigation.routeReplanningEngine
The
RouteReplanningEngine
to be used during navigation.routeReplanningRetryPolicy
The
ReplanningRetryPolicy
to be used during navigation for replanning.routeDeviationReplanningRetryPolicy
The
ReplanningRetryPolicy
to be used during navigation for replanning on deviation.betterProposalAcceptanceMode
The
BetterProposalAcceptanceMode
to be used during navigation.deviationReplanningMode
The
DeviationReplanningMode
to be used during navigation.vehicleProvider
The
VehicleProvider
to be used during navigation.
-
Errors that are thrown when removing/adding horizon observer.
Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public enum HorizonError : Error
-
Provides access to currently added engines and allows updating them.
Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public var navigationEngineRegistry: NavigationEngineRegistry
-
The
VehicleProvider
used by theDefaultTomTomNavigation
for providing vehicle updates to the navigation.Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public let vehicleProvider: VehicleProvider
-
The current
NavigationState
withinDefaultTomTomNavigation
.The initial value is set to
NavigationState.idle
.To change
navigationState
, seestart()
,start(navigationOptions:)
,stop()
,TomTomNavigation/resume(navigationResumeSnapshot:)
andselectActiveRoute(routeId:)
.To observe changes to
navigationState
seeNavigationStateChangeObserver
.Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public var navigationState: NavigationState { get }
-
The current
BetterProposalAcceptanceMode
.Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public var betterProposalAcceptanceMode: TomTomSDKNavigationEngines.BetterProposalAcceptanceMode { get set }
-
The unit system to be used within
TomTomNavigation
.Once set, it is propagated to other components (e.g.
GuidanceEngine
) and used for the generation of guidance announcements.If the
UnitSystemType
instance is dynamic thenunitSystem
is resolved based on the country attribute of the current location:- for “USA” and “PRI” it will resolve to
SpecificUnitSystem/imperialFeet
. - for “GBR” it will resolve to
SpecificUnitSystem/imperialYards
. - for other countries it will resolve to
SpecificUnitSystem/metric
.
The default value is
UnitSystemType.default
.Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public var unitSystem: UnitSystemType { get set }
- for “USA” and “PRI” it will resolve to
-
The current language used within
TomTomNavigation
in guidance instructions and announcement language. The initial value isLocale.current
. To changelanguage
, seepreferredLanguage
.Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public var language: Locale { get }
-
The preferred language to be used within
TomTomNavigation
in guidance instructions and announcement language.The initial value is
Locale.current
. If the initial language is not supported,en-US
will be used instead. Supported languages can be acquired fromGuidanceEngine.availableLanguages
.Setting the preferred language updates the route. You can check the updated route language using
language
. If the specified language is not supported,en-US
will be used instead.To observe language changes, add:
Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public var preferredLanguage: Locale { get set }
-
Provides a
CLLocation
for map matching.Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public var mapMatchedLocationProvider: LocationProvider { get }
-
Provides a
CLLocation
for raw GPS position.Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public var locationProvider: LocationProvider { get set }
-
A publishable variable that can be used to receive the same events that the delegate presents
Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public var eventPublisher: AnyPublisher<NavigationEvent, Never> { get }
-
The mode used for replanning when a deviation occurs.
Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public var deviationReplanningMode: DeviationReplanningMode { get set }
-
The current
TomTomSDKNavigationEngines/NavigationSnapshot
.The snapshot is
nil
if the navigation is not yet started or has already been stopped.Complexity
The property demonstrates O(n).Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public var navigationSnapshot: NavigationSnapshot? { get }
Return Value
The current
NavigationSnapshot
if navigation is not stopped. -
Adds a
NavigationObserver
toDefaultTomTomNavigation
. The call is expected on the main queue.Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public func addNavigationObserver(_ observer: NavigationObserver)
Parameters
observer
A class that can handle all navigation events except for error events.
-
Removes the
NavigationObserver
fromDefaultTomTomNavigation
. The call is expected on the main queue.Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public func removeNavigationObserver(_ observer: NavigationObserver)
Parameters
observer
A class that can handle all navigation events except for error events.
-
Adds a
NavigationStateChangeObserver
toDefaultTomTomNavigation
. The call is expected on the main queue.Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public func addNavigationStateChangeObserver(_ observer: NavigationStateChangeObserver)
Parameters
observer
A class that can handle navigation state changes.
-
Removes the
NavigationStateChangeObserver
fromDefaultTomTomNavigation
. The call is expected on the main queue.Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public func removeNavigationStateChangeObserver(_ observer: NavigationStateChangeObserver)
Parameters
observer
A class that can handle navigation state changes.
-
Adds a
LocationMapMatchingObserver
toDefaultTomTomNavigation
. The call is expected on the main queue.Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public func addLocationMapMatchingObserver(_ observer: LocationMapMatchingObserver)
Parameters
observer
A class that can handle navigation map matching events.
-
Removes the
LocationMapMatchingObserver
fromDefaultTomTomNavigation
. The call is expected on the main queue.Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public func removeLocationMapMatchingObserver(_ observer: LocationMapMatchingObserver)
Parameters
observer
A class that can handle navigation map matching events.
-
Adds a
NavigationProgressObserver
toDefaultTomTomNavigation
. The call is expected on the main queue.Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public func addProgressObserver(_ observer: NavigationProgressObserver)
Parameters
observer
A class that can handle navigation start events.
-
Removes the
NavigationProgressObserver
fromDefaultTomTomNavigation
. The call is expected on the main queue.Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public func removeProgressObserver(_ observer: NavigationProgressObserver)
Parameters
observer
A class that can handle navigation progress events.
-
Adds a
NavigationRouteAddObserver
toNavigation
. The call is expected on the main queue.Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public func addRouteAddObserver(_ observer: NavigationRouteAddObserver)
Parameters
observer
A class that can handle navigation route added events.
-
Removes the
NavigationRouteAddObserver
fromNavigation
. The call is expected on the main queue.Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public func removeRouteAddObserver(_ observer: NavigationRouteAddObserver)
Parameters
observer
A class that can handle navigation route added events.
-
Adds a
NavigationRouteRemoveObserver
toNavigation
. The call is expected on the main queue.Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public func addRouteRemoveObserver(_ observer: NavigationRouteRemoveObserver)
Parameters
observer
A class that can handle navigation route removed events.
-
Removes the
NavigationRouteRemoveObserver
fromNavigation
. The call is expected on the main queue.Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public func removeRouteRemoveObserver(_ observer: NavigationRouteRemoveObserver)
Parameters
observer
A class that can handle navigation route removed events.
-
Adds a
NavigationRouteUpdateObserver
toDefaultTomTomNavigation
. The call is expected on the main queue. The system keeps a weak reference to the observer.Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public func addRouteUpdateObserver(_ observer: NavigationRouteUpdateObserver)
Parameters
observer
A class that can handle navigation route updated events.
-
Removes the
NavigationRouteUpdateObserver
fromDefaultTomTomNavigation
. There is no need to remove the observer. If the observer is not removed, the system will clean up when the next event is posted. The call is expected on the main queue. Do not call this method from the deinitializer of the observer, unless you are certain that the observer will be destroyed on the main queue.Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public func removeRouteUpdateObserver(_ observer: NavigationRouteUpdateObserver)
Parameters
observer
A class that can handle navigation route updated events.
-
Adds a
NavigationActiveRouteChangeObserver
toNavigation
. The call is expected on the main queue.Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public func addActiveRouteChangeObserver(_ observer: NavigationActiveRouteChangeObserver)
Parameters
observer
A class that can handle navigation active route changed events.
-
Removes the
NavigationActiveRouteChangeObserver
fromNavigation
. The call is expected on the main queue.Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public func removeActiveRouteChangeObserver(_ observer: NavigationActiveRouteChangeObserver)
Parameters
observer
A class that can handle navigation active route changed events.
-
Adds a
GuidanceUpdateObserver
toTomTomNavigation
. The call is expected on the main queue.Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public func addGuidanceUpdateObserver(_ observer: GuidanceUpdateObserver)
Parameters
observer
A class that can handle navigation guidance events.
-
Removes the
GuidanceUpdateObserver
fromTomTomNavigation
. The call is expected on the main queue.Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public func removeGuidanceUpdateObserver(_ observer: GuidanceUpdateObserver)
Parameters
observer
A class that can handle navigation guidance events.
-
Adds a
LaneGuidanceUpdateObserver
toTomTomNavigation
. The call is expected on the main queue.Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public func addLaneGuidanceUpdateObserver(_ observer: LaneGuidanceUpdateObserver)
Parameters
observer
A class that can handle navigation guidance events.
-
Removes a
LaneGuidanceUpdateObserver
fromTomTomNavigation
. The call is expected on the main queue.Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public func removeLaneGuidanceUpdateObserver(_ observer: LaneGuidanceUpdateObserver)
Parameters
observer
A class that can handle navigation guidance events.
-
Adds a
NavigationGuidanceObserver
toNavigation
. The call is expected on the main queue.Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public func addGuidanceObserver(_ observer: NavigationGuidanceObserver)
Parameters
observer
A class that can handle navigation guidance events.
-
Removes the
NavigationGuidanceObserver
fromDefaultTomTomNavigation
. The call is expected on the main queue.Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public func removeGuidanceObserver(_ observer: NavigationGuidanceObserver)
Parameters
observer
A class that can handle navigation guidance events.
-
Adds a
NavigationLocationContextObserver
toDefaultTomTomNavigation
. The call is expected on the main queue.Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public func addLocationContextObserver(_ observer: NavigationLocationContextObserver)
Parameters
observer
A class that can handle navigation location context events.
-
Removes the
NavigationLocationContextObserver
fromDefaultTomTomNavigation
. The call is expected on the main queue.Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public func removeLocationContextObserver(_ observer: NavigationLocationContextObserver)
Parameters
observer
A class that can handle navigation location context events.
-
Adds a
NavigationDestinationArrivalObserver
toDefaultTomTomNavigation
. The call is expected on the main queue.Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public func addDestinationArrivalObserver(_ observer: NavigationDestinationArrivalObserver)
Parameters
observer
A class that can handle navigation arrival events.
-
Removes the
NavigationDestinationArrivalObserver
fromDefaultTomTomNavigation
. The call is expected on the main queue.Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public func removeDestinationArrivalObserver(_ observer: NavigationDestinationArrivalObserver)
Parameters
observer
A class that can handle navigation arrival events.
-
Adds a
NavigationWaypointArrivalObserver
toDefaultTomTomNavigation
. The call is expected on the main queue.Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public func addWaypointArrivalObserver(_ observer: NavigationWaypointArrivalObserver)
Parameters
observer
A class that can handle navigation arrival events.
-
Removes the
NavigationWaypointArrivalObserver
fromDefaultTomTomNavigation
. The call is expected on the main queue.Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public func removeWaypointArrivalObserver(_ observer: NavigationWaypointArrivalObserver)
Parameters
observer
A class that can handle navigation arrival events.
-
Adds a
NavigationHorizonObserver
toDefaultTomTomNavigation
. The call is expected on the main queue.Throws
HorizonError.observerAlreadyRegistered
if thisNavigationHorizonObserver
object is already added for horizon updates.HorizonError.optionsAlreadyRegistered
if theseHorizonOptions
are already being observed.Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public func addHorizonObserver(_ observer: NavigationHorizonObserver, options: HorizonOptions) throws
Parameters
observer
A class that can handle navigation horizon events. To add a new observer with the same options, the previous one must be removed first. To add different options with the same observer, the previous one must be removed first.
options
The options that define the extent of the paths on the horizon and which map attributes to collect.
-
Removes the
NavigationHorizonObserver
fromDefaultTomTomNavigation
. This method should be called on the deinitialization of the observer. The call is expected on the main queue.Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public func removeHorizonObserver(_ observer: NavigationHorizonObserver) throws
Parameters
observer
A class that can handle navigation trip events.
-
Adds a
TomTomSDKNavigation/NavigationRouteTrackingStateUpdateObserver
toDefaultTomTomNavigation
. The call is expected on the main queue. The system keeps a weak reference to the observer.Declaration
Swift
public func addRouteTrackingStateUpdateObserver(_ observer: NavigationRouteTrackingStateUpdateObserver)
Parameters
observer
A class that can handle navigation follow the route events.
-
Removes the
TomTomSDKNavigation/NavigationRouteTrackingStateUpdateObserver
fromDefaultTomTomNavigation
. The call is expected on the main queue.Declaration
Swift
public func removeRouteTrackingStateUpdateObserver(_ observer: NavigationRouteTrackingStateUpdateObserver)
Parameters
observer
A class that can handle navigation follow the route events.
-
Adds a
NavigationLanguageChangeObserver
toDefaultTomTomNavigation
. The call is expected on the main queue. The system keeps a weak reference to the observer.Important
This is a Public Preview API. It may be changed or removed at any time.
Declaration
Swift
public func addLanguageChangeObserver(_ observer: NavigationLanguageChangeObserver)
Parameters
observer
A class that can handle navigation language change events.
-
Removes the
NavigationLanguageChangeObserver
fromDefaultTomTomNavigation
. There is no need to remove the observer. If the observer is not removed, the system will clean up when the next event is posted. The call is expected on the main queue. Do not call this method from the deinitializer of the observer, unless you are certain that the observer will be destroyed on the main queue.Important
This is a Public Preview API. It may be changed or removed at any time.
Declaration
Swift
public func removeLanguageChangeObserver(_ observer: NavigationLanguageChangeObserver)
Parameters
observer
A class that can report on changes to the navigation language.
-
Starts navigation with the default routing.
Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public func start()
-
Starts navigation with a navigation plan.
Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public func start(navigationOptions: NavigationOptions)
Parameters
navigationOptions
NavigationOptions
to be used during the navigation session. -
Selects the
Route
with providedrouteID
as active. The navigation will switch to navigate along the desired route and thedidChangeActiveRoute(route:)
will be triggered. If theRoute
corresponding to the givenrouteId
is not available, changing will not occur.Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public func selectActiveRoute(routeId: UUID)
Parameters
routeId
UUID
id of route that should be selected. -
Marks a departure from the given waypoint independently from
ArrivalDetectionEngine/hasArrivedAtWaypoint
.The specified
waypoint
is marked as having been departed from andNavigationWaypointArrivalObserver
are notified about this viaNavigationDestinationArrivalObserver/didArriveAtWaypoint(waypoint:on:)
. Notification viaNavigationDestinationArrivalObserver/didArriveAtWaypoint(waypoint:on:)
completes arrival detection for that particularwaypoint
. Navigation switches to arrival detection for the nextwaypoint
, if one is present.Prerequisites for this action:
- A
didArriveAtWaypoint(waypoint:on:)
notification was previously issued for thiswaypoint
. No
didDepartFromWaypoint(waypoint:on:)
notification was previously issued for thiswaypoint
.
Throws
nextWaypointError
if calling requirements are not met.Declaration
Swift
public func departFromWaypoint(waypoint: RouteStop) throws
Parameters
waypoint
The waypoint to depart from.
- A
-
Stops the current navigation.
Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public func stop()