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.
The DefaultTomTomNavigation class offers functionalities to start, stop, and manage navigation sessions. It integrates with TomTom services to provide real-time navigation guidance and updates.
let navigation = DefaultTomTomNavigation()
navigation.startNavigation()
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: 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( // swiftlint:disable:this function_body_length 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, 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.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: 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, 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.betterProposalAcceptanceMode
The
BetterProposalAcceptanceMode
to be used during navigation.deviationReplanningMode
The
DeviationReplanningMode
to be used during navigation.vehicleProvider
The
VehicleProvider
to be used during navigation.
-
HorizonError
defines errors related to adding or removing observers.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
. The initial value is set toidle
.The
navigationState
property represents the current state of navigation. It allows you to monitor and determine the current status of the navigation process managed byDefaultTomTomNavigation
.To change the
navigationState
, you can utilize the following methods:start()
: Starts the navigation process.start(navigationOptions:)
: Starts navigation with specified options.stop()
: Stops the navigation.setActiveRoutePlan(_:)
: Sets a new active route plan for navigation.
To observe changes to
navigationState
seeNavigationStateChangeObserver
protocol.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
.The
betterProposalAcceptanceMode
property allows you to get or set the current mode for better proposal acceptance in the navigation process. To change thebetterProposalAcceptanceMode
, simply set this property to one of the available modes fromBetterProposalAcceptanceMode
.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
DefaultTomTomNavigation
.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 for guidance instructions and announcement language.
The initial value is
Locale.current
. To change the language, use to thepreferredLanguage
property.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 for 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 map-matched
CLLocation
.The map-matched location provider is responsible for providing locations that have been adjusted to snap to the nearest road or path on the map.
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.Allows getting and setting the
LocationProvider
instance used by the navigation system. The location provider is responsible for providing the current location to the navigation system.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 publisher that emits navigation events as they occur.
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 }
-
Controls how the route deviations are handled.
When set to
automatic
the navigation replans the route automatically. When set tonone
the navigation does not replan the route.The default value is
automatic
.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
NavigationSnapshot
.navigationSnapshot
isnil
at the start of navigation in the following situations:- If the location provider is disabled.
- If the location provider is enabled but unable to find the location.
Note
Once
navigationSnapshot
is defined, it remains defined throughout the navigation session.Important
This is a Public Preview API. It may be changed or removed at any time.
Declaration
Swift
public var navigationSnapshot: NavigationSnapshot? { get }
-
Adds a
NavigationStateChangeObserver
toDefaultTomTomNavigation
. The observer is notified of changes to thenavigationState
.This method must be called on the main queue. The system maintains 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 addNavigationStateChangeObserver(_ observer: NavigationStateChangeObserver)
Parameters
observer
A class that can handle navigation state changes.
-
Removes a previously added
NavigationStateChangeObserver
fromDefaultTomTomNavigation
.No need to remove the observer manually; the system will handle it when the next event occurs. Ensure this method is called on the main queue. Avoid calling this method from the observer’s deinitializer unless you are sure it 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 removeNavigationStateChangeObserver(_ observer: NavigationStateChangeObserver)
Parameters
observer
A class that can handle navigation state changes.
-
Adds a
LocationMapMatchingObserver
toDefaultTomTomNavigation
.This method must be called on the main queue. The system maintains 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 addLocationMapMatchingObserver(_ observer: LocationMapMatchingObserver)
Parameters
observer
A class that can handle navigation map matching events.
-
Removes a previously added
LocationMapMatchingObserver
fromDefaultTomTomNavigation
.No need to remove the observer manually; the system will handle it when the next event occurs. Ensure this method is called on the main queue. Avoid calling this method from the observer’s deinitializer unless you are sure it 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 removeLocationMapMatchingObserver(_ observer: LocationMapMatchingObserver)
Parameters
observer
A class that can handle navigation map matching events.
-
Adds a
NavigationProgressObserver
toDefaultTomTomNavigation
.This method must be called on the main queue. The system maintains 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 addProgressObserver(_ observer: NavigationProgressObserver)
Parameters
observer
A class that can handle navigation start events.
-
Removes a previously added
NavigationProgressObserver
fromDefaultTomTomNavigation
.No need to remove the observer manually; the system will handle it when the next event occurs. Ensure this method is called on the main queue. Avoid calling this method from the observer’s deinitializer unless you are sure it 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 removeProgressObserver(_ observer: NavigationProgressObserver)
Parameters
observer
A class that can handle navigation progress events.
-
Adds a
NavigationRouteAddObserver
toDefaultTomTomNavigation
.This method must be called on the main queue. The system maintains 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 addRouteAddObserver(_ observer: NavigationRouteAddObserver)
Parameters
observer
A class that can handle navigation route added events.
-
Removes a previously added
NavigationRouteAddObserver
fromDefaultTomTomNavigation
.No need to remove the observer manually; the system will handle it when the next event occurs. Ensure this method is called on the main queue. Avoid calling this method from the observer’s deinitializer unless you are sure it 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 removeRouteAddObserver(_ observer: NavigationRouteAddObserver)
Parameters
observer
A class that can handle navigation route added events.
-
Adds a
NavigationRouteRemoveObserver
toDefaultTomTomNavigation
.This method must be called on the main queue. The system maintains 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 addRouteRemoveObserver(_ observer: NavigationRouteRemoveObserver)
Parameters
observer
A class that can handle navigation route removed events.
-
Removes a previously added
NavigationRouteRemoveObserver
fromDefaultTomTomNavigation
.No need to remove the observer manually; the system will handle it when the next event occurs. Ensure this method is called on the main queue. Avoid calling this method from the observer’s deinitializer unless you are sure it 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 removeRouteRemoveObserver(_ observer: NavigationRouteRemoveObserver)
Parameters
observer
A class that can handle navigation route removed events.
-
Adds a
NavigationRouteUpdateObserver
toDefaultTomTomNavigation
.This method must be called on the main queue. The system maintains 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 a previously added
NavigationRouteUpdateObserver
fromDefaultTomTomNavigation
.No need to remove the observer manually; the system will handle it when the next event occurs. Ensure this method is called on the main queue. Avoid calling this method from the observer’s deinitializer unless you are sure it 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
toDefaultTomTomNavigation
.This method must be called on the main queue. The system maintains 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 addActiveRouteChangeObserver(_ observer: NavigationActiveRouteChangeObserver)
Parameters
observer
A class that can handle navigation active route changed events.
-
Removes a previously added
NavigationActiveRouteChangeObserver
fromDefaultTomTomNavigation
.No need to remove the observer manually; the system will handle it when the next event occurs. Ensure this method is called on the main queue. Avoid calling this method from the observer’s deinitializer unless you are sure it 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 removeActiveRouteChangeObserver(_ observer: NavigationActiveRouteChangeObserver)
Parameters
observer
A class that can handle navigation active route changed events.
-
Adds a
GuidanceUpdateObserver
toDefaultTomTomNavigation
.This method must be called on the main queue. The system maintains 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 addGuidanceUpdateObserver(_ observer: GuidanceUpdateObserver)
Parameters
observer
A class that can handle navigation guidance events.
-
Removes a previously added
GuidanceUpdateObserver
fromDefaultTomTomNavigation
.No need to remove the observer manually; the system will handle it when the next event occurs. Ensure this method is called on the main queue. Avoid calling this method from the observer’s deinitializer unless you are sure it 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 removeGuidanceUpdateObserver(_ observer: GuidanceUpdateObserver)
Parameters
observer
A class that can handle navigation guidance events.
-
Adds a
LaneGuidanceUpdateObserver
toDefaultTomTomNavigation
.This method must be called on the main queue. The system maintains 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 addLaneGuidanceUpdateObserver(_ observer: LaneGuidanceUpdateObserver)
Parameters
observer
A class that can handle navigation guidance events.
-
Removes a previously added
LaneGuidanceUpdateObserver
fromDefaultTomTomNavigation
.No need to remove the observer manually; the system will handle it when the next event occurs. Ensure this method is called on the main queue. Avoid calling this method from the observer’s deinitializer unless you are sure it 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 removeLaneGuidanceUpdateObserver(_ observer: LaneGuidanceUpdateObserver)
Parameters
observer
A class that can handle navigation guidance events.
-
Adds a
NavigationGuidanceObserver
toDefaultTomTomNavigation
.This method must be called on the main queue. The system maintains 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 addGuidanceObserver(_ observer: NavigationGuidanceObserver)
Parameters
observer
A class that can handle navigation guidance events.
-
Removes a previously added
NavigationGuidanceObserver
fromDefaultTomTomNavigation
.No need to remove the observer manually; the system will handle it when the next event occurs. Ensure this method is called on the main queue. Avoid calling this method from the observer’s deinitializer unless you are sure it 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 removeGuidanceObserver(_ observer: NavigationGuidanceObserver)
Parameters
observer
A class that can handle navigation guidance events.
-
Adds a
NavigationLocationContextObserver
toDefaultTomTomNavigation
.This method must be called on the main queue. The system maintains 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 addLocationContextObserver(_ observer: NavigationLocationContextObserver)
Parameters
observer
A class that can handle navigation location context events.
-
Removes a previously added
NavigationLocationContextObserver
fromDefaultTomTomNavigation
.No need to remove the observer manually; the system will handle it when the next event occurs. Ensure this method is called on the main queue. Avoid calling this method from the observer’s deinitializer unless you are sure it 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 removeLocationContextObserver(_ observer: NavigationLocationContextObserver)
Parameters
observer
A class that can handle navigation location context events.
-
Adds a
NavigationDestinationArrivalObserver
toDefaultTomTomNavigation
.This method must be called on the main queue. The system maintains 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 addDestinationArrivalObserver(_ observer: NavigationDestinationArrivalObserver)
Parameters
observer
A class that can handle navigation arrival events.
-
Removes a previously added
NavigationDestinationArrivalObserver
fromDefaultTomTomNavigation
.No need to remove the observer manually; the system will handle it when the next event occurs. Ensure this method is called on the main queue. Avoid calling this method from the observer’s deinitializer unless you are sure it 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 removeDestinationArrivalObserver(_ observer: NavigationDestinationArrivalObserver)
Parameters
observer
A class that can handle navigation arrival events.
-
Adds a
NavigationWaypointArrivalObserver
toDefaultTomTomNavigation
.This method must be called on the main queue. The system maintains 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 addWaypointArrivalObserver(_ observer: NavigationWaypointArrivalObserver)
Parameters
observer
A class that can handle navigation arrival events.
-
Removes a previously added
NavigationWaypointArrivalObserver
fromDefaultTomTomNavigation
.No need to remove the observer manually; the system will handle it when the next event occurs. Ensure this method is called on the main queue. Avoid calling this method from the observer’s deinitializer unless you are sure it 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 removeWaypointArrivalObserver(_ observer: NavigationWaypointArrivalObserver)
Parameters
observer
A class that can handle navigation arrival events.
-
Adds a
NavigationHorizonObserver
toDefaultTomTomNavigation
.This method must be called on the main queue. The system maintains a weak reference to the observer.
Throws
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 a previously added
NavigationHorizonObserver
fromDefaultTomTomNavigation
.No need to remove the observer manually; the system will handle it when the next event occurs. Ensure this method is called on the main queue. Avoid calling this method from the observer’s deinitializer unless you are sure it will be destroyed on the main queue.
Throws
HorizonError.observerNotRegistered
ifNavigationHorizonObserver
wasn’t added.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
NavigationRouteTrackingStateUpdateObserver
toDefaultTomTomNavigation
.This method must be called on the main queue. The system maintains 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 a previously added
NavigationRouteTrackingStateUpdateObserver
fromDefaultTomTomNavigation
.No need to remove the observer manually; the system will handle it when the next event occurs. Ensure this method is called on the main queue. Avoid calling this method from the observer’s deinitializer unless you are sure it will be destroyed 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
.This method must be called on the main queue. The system maintains 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 a previously added
NavigationLanguageChangeObserver
fromDefaultTomTomNavigation
.No need to remove the observer manually; the system will handle it when the next event occurs. Ensure this method is called on the main queue. Avoid calling this method from the observer’s deinitializer unless you are sure it 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 without specifying a
Route
. Use this method to start the navigation in free driving mode.Navigation goes through the following steps:
- Providing the
MapMatchingResult
viaLocationMapMatchingObserver
. - Providing the updated
LocationContext
viaNavigationLocationContextObserver
. - Providing the updated
HorizonSnapshot
viaNavigationHorizonObserver
.
As a result of successful action, the following observer is notified:
NavigationStateChangeObserver
, with the state set tofreeDriving
.
Throws
An error if navigation has already started.
Important
This is a Public Preview API. It may be changed or removed at any time.
Declaration
Swift
public func start() throws
- Providing the
-
Starts navigation with the provided
NavigationOptions
. Use this method to start the navigation in active guidance mode with the providedRoute
within theNavigationOptions
.Navigation goes through the following steps:
- Providing the
MapMatchingResult
viaLocationMapMatchingObserver
. - Providing the updated
LocationContext
viaNavigationLocationContextObserver
. - Providing the updated
HorizonSnapshot
viaNavigationHorizonObserver
.
Additionally, the system performs the following operations for the active, i.e., currently navigated
Route
within theNavigationOptions
:- Calculating
RouteProgress
and updating viaNavigationProgressObserver
. - Checking all followed routes and deviations via
NavigationRouteTrackingStateUpdateObserver
. - Generating
Guidance
viaGuidanceUpdateObserver
. - Detecting arrival, possibly calling
NavigationDestinationArrivalObserver
orNavigationWaypointArrivalObserver
.
As a result of successful action, the following observer is notified:
NavigationStateChangeObserver
, with the state set toactiveGuidance
.NavigationRouteAddObserver
, with theRoute
andRoutePlanningOptions
set inactiveRoutePlan
, andnavigationStarted
.NavigationActiveRouteChangeObserver
, with theRoute
set inactiveRoutePlan
.
Throws
An error if navigation has already started or if
NavigationOptions
are incompatible with navigation configuration.Important
This is a Public Preview API. It may be changed or removed at any time.
Declaration
Swift
public func start(navigationOptions: NavigationOptions) throws
Parameters
navigationOptions
Details of the navigation options for starting the navigation session.
Vehicle
provided for navigation must be compatible with the givenactiveRoutePlan
. - Providing the
-
Updates the route plan during ongoing navigation.
The following listeners are notified:
NavigationRouteUpdateObserver/didUpdateRoute(route:options:reason:)
with the updatedRoute
,RoutePlanniningOptions
andRouteUpdatedReason/manuallyUpdated
if current route does not contain the providedrouteId
, the method does not update the route.didChangeActiveRoute(route:)
with theRoute
if active route has changed.didRemoveRoute(route:reason:)
with all other routes except the activeRoute
andmanual
.
Throws
An error if
RoutePlan
is incompatible with navigation configuration.Important
This is a Public Preview API. It may be changed or removed at any time.
Declaration
Swift
public func setActiveRoutePlan(_ routePlan: RoutePlan) throws
-
Selects the
Route
with providedrouteID
as active.The navigation switches to navigate along the desired route and the following listeners are notified:
didChangeActiveRoute(route:)
withRoute
selected byrouteID
.didRemoveRoute(route:reason:)
with the previously activeRoute
andmanual
If theRoute
corresponding to the givenrouteId
is not available, changing does not occur.
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 current navigation session and clears data related to it.
If start has not been called previously, this method has no effect.
As a result of successful action, the following observer is notified:
NavigationStateChangeObserver
, with the state set toidle
.
Important
This is a Public Preview API. It may be changed or removed at any time.
Declaration
Swift
public func stop()