TomTomSDKNavigation
-
TomTomArrivalDetectionEngine checks if the driver has reached the destination or waypoint.
See moreImportant
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public class TomTomArrivalDetectionEngine : ArrivalDetectionEngine -
Engine that instantiates the update of the data store used for navigation.
See moreImportant
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public protocol DataStoreMaintenanceEngine : ManageableEngine
-
The DefaultTomTomNavigation object defines the functionality of the navigation.
See moreDeclaration
Swift
@available(*, deprecated, message: "This API is deprecated and will be removed with the next major release.") public class DefaultTomTomNavigation : TomTomNavigation
-
See more
Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public protocol MainNavigationEngines
-
Declaration
Swift
extension DefaultNavigationProcess: LocationProviderObservable -
Provides access to Dynamic Routing
See moreImportant
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public protocol DynamicRoutingProvider -
See more
Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public struct NavigatedRoutes -
See more
Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public protocol RouteNavigationEnginesProvider
-
NavigationStartError contains information about any problems that occur during navigation. The detailed meaning of each error is provided via the
messagevariable.See moreImportant
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public enum NavigationStartError : Error
-
The
TomTomNavigationprotocol defines the functionality of the navigation.See moreImportant
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public protocol TomTomNavigation : AnyObject
-
The mode of navigation after start.
See moreImportant
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public enum NavigationMode
-
Represents the
NavigationEventpublished byTomTomNavigation\eventPublisher.See moreImportant
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public enum NavigationEvent
-
Defines the error cases that can occur while generating guidance steps.
See moreDeclaration
Swift
public enum GuidanceEngineError : Error
-
TomTomGuidanceEnginegeneratesGuidanceusing the list ofTomTomSDKRoute.Instructions supplied withinNavigationSnapshot.activeRoute.TomTomGuidanceEnginedepends on theTomTomSDKRoute.Announcements included in the suppliedTomTomSDKRoute.Instructions. The engine continuously checks the active route progress to provide up-to-dateGuidanceinformation. When the vehicle reaches an announcement point, the generatedGuidanceincludes theGuidanceAnnouncementto be announced. Note that the set of supported languages may differ between differentGuidanceEngines.
See moreTomTomGuidanceEngineshould only be used with the online routing client that usesTomTomSDKRoutePlanner.GuidanceOnlineApiVersion.v1as theTomTomSDKRoutePlanner.GuidanceOptions.guidanceVersion. This is because the instructions from offline and the online routing client configured withTomTomSDKRoutePlanner.GuidanceOnlineApiVersion.v1are designed to be used by theDynamicGuidanceEngineand do not contain static announcement information.Declaration
Swift
public class TomTomGuidanceEngine : GuidanceEngine
-
Creates a
DynamicGuidanceEngine.DynamicGuidanceEnginegenerates dynamicGuidancefor theTomTomSDKRoute.Instructions supplied withinNavigationSnapshot.activeRoute.To generate dynamic
Guidance,DynamicGuidanceEnginetakes various parameters into account. These parameters include, but are not limited to:- Distance to the next maneuver.
- Current speed of the vehicle.
- Free-flow speed of the road between the current position and the next maneuver.
- Traffic situation ahead.
So, unlike
TomTomGuidanceEngine,DynamicGuidanceEnginedoes not depend onTomTomSDKRoute.Announcementinformation that may or may not be included in theTomTomSDKRoute.Instruction. It continuously checks the active route progress to provide up-to-dateGuidanceinformation. Once the vehicle reaches an announcement point, the generatedGuidanceincludes the (GuidanceAnnouncement) to be announced.Another difference between
DynamicGuidanceEngineandTomTomGuidanceEngineis thatDynamicGuidanceEngineuses TomTom’s advanced verbal instruction messages to synthesizeGuidanceAnnouncements dynamically on the fly. Note that the set of supported languages may differ between differentGuidanceEngines.
See moreDynamicGuidanceEnginecan be used to provide turn-by-turn navigation with any routing client (offline, online withTomTomSDKRoutePlanner.GuidanceOptions.guidanceVersionv1orv2).Declaration
Swift
public class TomTomDynamicGuidanceEngine : GuidanceEngine
-
The type of an individual trigger that appears on the route.
The trigger may be differentiated by its distance to the maneuver point. Although, this type doesn’t provide any distance information, it describes a triggering point by its location on the route. For example:
followtrigger is in range30...20 kmfrom the maneuver point.farawaytrigger is in range12...10 kmfrom the maneuver point.earlytrigger is in range5...4 kmfrom the maneuver point.maintrigger is in range1.2...1 kmfrom the maneuver point.confirmationtrigger is in range50...20 metersfrom the maneuver point.Important
This is a Public Preview API. It may be changed or removed at any time.
Declaration
Swift
public enum TriggerType : CaseIterable, Hashableextension TriggerType: Comparable
-
Configurations for triggering guidance.
This outlines the configurations that can be used to trigger guidance for navigation instructions. Guidance instructions include both visual and audio components, which provide accurate and practical assistance to the user.
As the user approaches the maneuver point, there are four distinct ‘Instruction Stages’ at which audio information is communicated:
- Far away
- Early instruction
- Main instruction
- Confirmation
The default configurations for each of these
TriggeringPoints is accessed using theGuidanceTriggeringConfigstruct, which provides functions for retrieving configurations for each of the default attribute combinations. By using these configurations, developers can ensure that the distance to maneuver displayed in the navigation instruction panel corresponds to the spoken distance in the audio instruction, providing a more seamless and effective user experience.See moreImportant
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public struct GuidanceTriggeringConfig -
Holds collection of
TriggeringConfigVariants.Use
TriggeringConfigto initializeGuidanceTriggeringConfigwith the configuration for guidance announcments. The configuration is an array ofTriggeringConfigVariants; it defines all the parameters for all types of roads, regions, instructions types, and at what distances to be triggered. Additionally, theTriggeringConfiginstance may validate an input list internally, allowing the developer to identify the problems during initialization.See moreImportant
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public struct TriggeringConfig
-
Defines a variant for which a trigger should be generated. The most vital part of the instance is the
triggeringPointsproperty whereTriggerTypeis the key, andTriggeringPointis the value associated with that key.For example, the following variant will be applicable for a trigger where the road is controlled access, for all countries, for comprehensive mode, only for roundabout instructions, and it has one triggering point (follow).
TriggeringConfigVariant( roadTypes: [.controlledAccess], regions: [.restOfTheWorld], announcementModes: [.comprehensive], instructionTypes: [.roundabout], triggeringPoints: [ .follow: TriggeringPoint( recommendedDistance: TriggeringDistances( defaultDistance: Measurement.tt.kilometers(1000.0) ), messageDuration: 2 ) ] )See moreImportant
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public struct TriggeringConfigVariant : Hashable, Equatable
-
Holds one or more triggering distances.
By default, the distance specified in
defaultDistanceis the triggering distance. In case custom triggering distances are to be used in the US and/or UK, corresponding values can be specified incustomDistanceUSandcustomDistanceUKrespectively.See moreImportant
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public struct TriggeringDistances : Hashable, Equatable
-
The types of instruction that are defined for different configuration variants.
The navigation system invokes guiding instructions for every maneuver to show the driver along the route. Driving instructions that get triggered have a type which is announced visually and audibly.
See moreImportant
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public enum TriggeringInstructionType : Hashable, CaseIterable
-
Defines a point on the route, where a trigger should be exposed.
Triggering point is associated with
TriggerTypebased on distance to the maneuver. For example, the following trigger must be triggered on the route at least 13 kilometers or at most 10 kilometers to the maneuver point.TriggeringPoint( recommendedDistance: TriggeringDistances( defaultDistance: Measurement.tt.kilometers(10.0) ), earliestDistance: TriggeringDistances( defaultDistance: Measurement.tt.kilometers(13.0) ), recommendedTime: 370, messageDuration: 0, isAudible: false )See moreImportant
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public struct TriggeringPoint : Hashable, Equatable
-
A region for which the triggering config variant is applicable.
If you want to differentiate the triggers based on the country, you should specify the region while declaring config variants.
See moreImportant
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public enum TriggeringRegion : Hashable, CaseIterable
-
Defines types of unit system handling.
See moreDeclaration
Swift
public struct UnitSystemType : Equatable
-
Declaration
Swift
extension MapMatchedLocationProvider: NavigationLocationContextObserver
-
Provides access to current registered engines and allows updating them.
See moreImportant
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public protocol NavigationEngineRegistry : AnyObject
-
The NavigationEngines protocol defines all engines that can be used by the TomTomSDKNavigation module.
See moreImportant
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public protocol NavigationEngines : MainNavigationEngines, RouteNavigationEnginesProvider -
Errors which may be thrown during navigation creation.
See moreImportant
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public enum NavigationFactoryError : LocalizedError
-
Navigation options define parameters required to start or update a navigation session.
To specify navigation options, first plan a
TomTomSDKRoute/RouteusingTomTomSDKRoutePlanner/RoutePlannerandTomTomSDKRoutePlanner/RoutePlanningOptions, then create aRoutePlan.For more information on navigation session see:
See morestart(),start(navigationOptions:),update(navigationOptions:)andstop().Declaration
Swift
public struct NavigationOptions
-
Informs the caller about announcements and instructions update events.
The method
TomTomSDKNavigationEngines.GuidanceEngine.generateGuidance(navigationSnapshot:)generates the guidance with instructions and distance. Based on the guidance result, the methods of the observers are called.The protocol provides the interface for handling several events like changes in instructions, generation of announcements, and changes in distance to the next instruction.
To observe the guidance changes, first implement this interface to create an observer, for example:
class CustomGuidanceUpdateObserver: GuidanceUpdateObserver { func didChangeInstructions(instructions: [GuidanceInstruction]) { // Add code here that handles the changes of instructions. } func didGenerateAnnouncement(announcement: GuidanceAnnouncement, shouldPlay: Bool) { // Add code here that handles a new generate announcement. } func didChangeDistanceToNextInstruction( distance: Measurement<UnitLength>, instructions: [GuidanceInstruction], currentPhase: InstructionPhase ) { // Add code here that handles a change of distance to new instruction. } }Then add the observer using
See moreaddGuidanceUpdateObserver(_:). To stop observation of the guidance changes, remove the observer usingremoveGuidanceUpdateObserver(_:).Declaration
Swift
public protocol GuidanceUpdateObserver : Observer
-
Informs the caller about changes in lane guidance. This interface provides an observer for when lane guidance starts and ends.
The
LaneGuidanceUpdateObserverinterface provides the methods that are called when lane guidance shall appear and disappear, respectively. These methods facilitate efficient and dynamic update of lane guidance information during a journey.To observe the lane guidance changes, first implement this interface to create an observer, for example:
class CustomLaneGuidanceObserver: LaneGuidanceUpdateObserver { func didStartLaneGuidance(laneGuidance: LaneGuidance) { // Add code here that handles the lane guidance starting } func didEndLaneGuidance(laneGuidance: LaneGuidance) { // Add code here that handles the lane guidance ending } }Then add the observer using
addLaneGuidanceUpdateObserver(_:). To stop observation of the lane guidance changes, remove the observer usingremoveLaneGuidanceUpdateObserver(_:).See moreNote
To ensure these methods are called, theRoutepassed toTomTomNavigationmust contain validLaneSections. This code is used within the context of a navigation system where lane guidance is crucial for the user experience and journey accuracy.Declaration
Swift
public protocol LaneGuidanceUpdateObserver : Observer
-
An observer that receives navigation events of arrival at destination.
Destination arrival is detected by the
TomTomSDKNavigationEngines/ArrivalDetectionEngine. On arrival detection, navigation continues in turn-by-turn mode until it’s stopped or switched into free-driving mode.To be notified about the destination arrival event while navigating, first implement the
NavigationDestinationArrivalObserverprotocol:class NavigationDestinationArrivalObserverImpl: NavigationDestinationArrivalObserver { func didArriveAtDestination(route: TomTomSDKRoute.Route) { // Add code here that handles arrival at a destination. } }Then register this observer using
addDestinationArrivalObserver(_:).To stop receiving the destination arrival event, unregister the observer using
See moreremoveDestinationArrivalObserver(_:).Declaration
Swift
public protocol NavigationDestinationArrivalObserver : Observer
-
An observer that receives navigation guidance events.
See moreDeclaration
Swift
@available(*, deprecated, message: "This API is deprecated and will be removed with the next major release.\nPlease use TomTomSDKNavigation.GuidanceUpdateObserver and TomTomSDKNavigation.LaneGuidanceUpdateObserver instead.") public protocol NavigationGuidanceObserver : Observer
-
An observer that receives
TomTomNavigation.languagechange events.To register a
See moreNavigationLanguageChangeObserver, useaddLanguageChangeObserver(_:). To stop receiving these events, unregister the observer usingremoveLanguageChangeObserver(_:).Declaration
Swift
public protocol NavigationLanguageChangeObserver : Observer
-
A typealias that contains all navigation event observers except for the
NavigationErrorObserver.Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public typealias NavigationObserver = NavigationStartObserver & NavigationMapMatchingObserver & NavigationProgressObserver & NavigationRouteObserver & NavigationRouteAddedObserver & NavigationRouteRemovedObserver & NavigationRouteUpdateObserver & NavigationActiveRouteChangedObserver & NavigationLanguageChangeObserver & GuidanceUpdateObserver & LaneGuidanceUpdateObserver & NavigationLocationContextObserver & NavigationDestinationArrivalObserver & NavigationWaypointArrivalObserver
-
Defines the reasons why a route was added to the
NavigationSession.See moreImportant
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public struct RouteAddedReason : RawRepresentable, Hashable
-
Defines the reasons why a route was removed from the
NavigationSession.See moreImportant
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public struct RouteRemovedReason : RawRepresentable, Hashable
-
An observer that receives route tracking state updates.
The information about the route state is represented by
TomTomSDKNavigationEngines/RouteTrackingState. When the driver deviates or returns to the active route, the navigation engine sends route-tracking state updates to the observer.To be notified about the route state update while navigating, first implement the
NavigationRouteTrackingStateUpdateObserverprotocol:class NavigationRouteTrackingStateUpdateObserverImpl: NavigationRouteTrackingStateUpdateObserver { func didUpdateRouteTrackingState(routeTrackingState: RouteTrackingState) { // Add code here that handles the route state update. } }To start receiving route tracking state updates, become an observer using
See moreTomTomSDKNavigation/TomTomNavigation/addRouteTrackingStateUpdateObserver(_:): To stop receiving route tracking state updates, remove the previously added observer usingTomTomSDKNavigation/TomTomNavigation/removeRouteTrackingStateUpdateObserver(_:):Declaration
Swift
public protocol NavigationRouteTrackingStateUpdateObserver : Observer
-
Defines the reasons why a route was updated during the
NavigationSession.See moreImportant
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public struct RouteUpdatedReason : RawRepresentable, Hashable
-
An observer that receives navigation events related with visiting waypoints.
The waypoint arrival state changes are detected by the
TomTomSDKNavigationEngines/ArrivalDetectionEngine. Different observer methods are called depending on what state has been detected by theTomTomSDKNavigationEngines/ArrivalDetectionEngine:didArriveAtWaypoint(waypoint:on:)is received when theTomTomSDKNavigationEngines/ArrivalDetectionEnginedetects an arrival at a waypoint.didDepartFromWaypoint(waypoint:on:)is received when theTomTomSDKNavigationEngines/ArrivalDetectionEnginedetects a departure from a waypoint.
To be notified about the waypoint arrival events while navigating, first implement the
NavigationWaypointArrivalObserverprotocol:class NavigationWaypointArrivalObserverImpl: NavigationWaypointArrivalObserver { func didArriveAtWaypoint(waypoint: RouteStop, on route: Route) { // Add code here that handles an arrival at a waypoint. } func didDepartFromWaypoint(waypoint: RouteStop, on route: Route) { // Add code here that handles a departure from a waypoint. } }Then register this observer using
addWaypointArrivalObserver(_:).To stop receiving these events, unregister the observer using
See moreremoveWaypointArrivalObserver(_:).Declaration
Swift
public protocol NavigationWaypointArrivalObserver : Observer
-
SegmentsFilterError defines the errors that can occur while fetching the route progress.
See moreImportant
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public enum ProgressInterpolatorError : Error
-
See more
Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public final class StandaloneRouteProgressEngine : RouteProgressEngine
-
Responsible for creating default implementation of a
ReplanningRetryPolicy.See moreImportant
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public enum ReplanningRetryPolicyFactory
-
The options used for
TomTomRouteReplanningEngineconfigurationSee moreImportant
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public struct RouteReplanningEngineOptions
-
RouteReplanningEngineimplementation responsible for route replanning.See moreImportant
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public final class TomTomRouteReplanningEngine : RouteReplanningEngine
-
See more
Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public protocol SimpleEngineCommonCalculator
-
See more
Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public struct SimpleEngineCalcResult
-
See more
Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public final class DefaultSimpleEngineCommonCalculator : SimpleEngineCommonCalculator -
See more
Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
extension Array where Element == CLLocationCoordinate2Dextension Array where Element == RoutePoint
TomTomSDKNavigation Reference