TomTomSDKNavigationOffRoad
TomTomSDKNavigationOffRoad
Off-road navigation is a unique feature designed for outdoor exploration.
Driving or riding a vehicle on unpaved surfaces such as sand, gravel, riverbeds, mud, snow, rocks, and other natural terrain is called off-roading. Off-road navigation is designed for those areas that aren’t part of the network of roads and highways, where you don’t have a street name, speed limit signs or other road signs. These are paths where traditional road navigation systems are inaccurate.
On normal road navigation, you typically have the current location and destination in mind. You search for the address, and you get a planned route visualized on the map. The road network data and highway information exist in the system to plan the best possible route while checking for traffic and incidents. With off-road navigation, you must research the terrain and the area you will be traveling. You plan your route while considering any landmarks, trails, or other navigational tools to guide you. After gathering all the necessary data, you can create the route and start navigating it.
The off-road navigation experience differs from traditional navigation; it doesn’t involve visual or audio instructions guiding the driver through the route. When a deviation occurs, the route isn’t replanned; that functionality isn’t possible with the off-road navigation feature. The driver provides the coordinates for planning the route, and there is no information in our system about off-road trails. During navigation, the NavigationRouteTrackingStateUpdateObserver gives the current state if the driver is following the route or deviating from it. For off-road navigation, a custom deviation implementation can be implemented. You can visualize the deviation by drawing a new route line from the current location back to the planned route.
-
Factory for creating an off-road
ArrivalDetectionEngine
instance.Off-road arrival detection engine detects when the driver has reached their final destination during off-road navigation.
Example of creating an
OffRoadArrivalDetectionEngine
with the default value fordestinationArrivalDistanceThreshold
:let offRoadArrivalDetectionEngine = OffRoadArrivalDetectionEngineFactory.create()
Example of creating an
OffRoadArrivalDetectionEngine
with a specific value fordestinationArrivalDistanceThreshold
:let offRoadArrivalDetectionEngine = OffRoadArrivalDetectionEngineFactory.create(destinationArrivalDistanceThreshold: .tt.meters(5))
To create a default off-road
Navigation
, check theOffRoadTomTomNavigationFactory
class.Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public enum OffRoadArrivalDetectionEngineFactory
-
Off-road navigation is a unique feature designed for outdoor exploration.
Driving or riding a vehicle on unpaved surfaces such as sand, gravel, riverbeds, mud, snow, rocks, and other natural terrain is called off-roading. Off-road navigation is designed for those areas that aren’t part of the network of roads and highways, where you don’t have a street name, speed limit signs or other road signs. These are paths where traditional road navigation systems are inaccurate.
On normal road navigation, you typically have the current location and a destination in mind. You search for the address, and you get a planned route visualized on the map. The road network data and highway information exist in the system to plan the best possible route while checking for traffic and incidents. With off-road navigation, you must research the terrain and the area you will be traveling. You plan your route while considering any landmarks, trails, or other navigational tools to guide you. After gathering all the necessary data, you can create the route and start navigating it.
The off-road navigation experience differs from traditional navigation; it doesn’t involve visual or audio instructions guiding the driver through the route. When a deviation occurs, the route isn’t replanned; that functionality isn’t possible with the off-road navigation feature. The driver provides the coordinates for planning the route, and there is no information in our system about off-road trails. During navigation, the
NavigationRouteTrackingStateUpdateObserver
gives the current state if the driver is following the route or deviating from it. For off-road navigation, a custom deviation implementation can be implemented. You can visualize the deviation by drawing a new route line from the current location back to the planned route.Off-road navigation mode uses specialized engines that create default configurations. The
OffRoadMapMatchingEngineFactory
factory creates a specific off-road navigationMapMatchingEngine
implementation, which matches the raw location to the map. It doesn’t try to match the current area to the road network. The same is true with theOffRoadTomTomNavigationFactory
,OffRoadRouteProgressEngineFactory
,OffRoadRouteTrackingEngineFactory
, and the `OffRoadArrivalDetectionEngineFactory. The rest of the off-road navigation engines have stub implementation, which is required for configuring the navigation.Creating a
Navigation
instance example:let configuration = OffRoadTomTomNavigationFactory.Configuration(locationProvider: DefaultCLLocationProvider()) let tomTomNavigation = OffRoadTomTomNavigationFactory.create(configuration: configuration)
Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public enum OffRoadTomTomNavigationFactory
-
Factory for creating an off-road
GuidanceEngine
instance.Off-road navigation guidance provides directions and help for travel on unpaved or unmarked paths, such as trails, dirt roads, or open terrain. This API provides a way to create GuidanceEngine instances that handle off-road navigation guidance.
To create a default off-road
Navigation
, check theOffRoadTomTomNavigationFactory
class.Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public enum OffRoadGuidanceEngineFactory
-
Factory for creating an off-road
MapMatchingEngine
instance.Map-matching is the process of aligning GPS traces with the road network data on a digital map. It involves matching GPS coordinates to the roads on the map and snapping the points to the nearest roadway. For off-road navigation there’s no information on the roads to map-match it on a digital map, instead the raw location of the user is shown on the map.
To create a default off-road
Navigation
, check theOffRoadTomTomNavigationFactory
class.Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public enum OffRoadMapMatchingEngineFactory
-
Factory for creating an off-road
RouteProgressEngine
instance.This factory creates an instance of the
RouteProgressEngine
that is specifically designed for off-road navigation. TheRouteProgressEngine
is used to calculate the progress along the route, including the user’s position, speed, estimated time of arrival, and current location.For off-road navigation, progress is calculated using
RoutePoint
s along the route in straight-line distance without taking into account the estimated time of arrival or speed, only the raw location of the vehicle.To create a default off-road
Navigation
, check theOffRoadTomTomNavigationFactory
class.Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public enum OffRoadRouteProgressEngineFactory
-
Factory for creating an off-road
RouteProjectionEngine
instance.Route projection is used in road navigation to match the route used by the map matcher and vehicle horizon, ensuring a consistent experience for users. In off-road navigation, there is no map data available, so route projection is not used to match the route. However, an off-road route projection engine is still needed as part of the navigation configuration.
To create a default off-road
Navigation
, check theOffRoadTomTomNavigationFactory
class.Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public enum OffRoadRouteProjectionEngineFactory
-
Factory for creating an off-road
RouteReplanner
instance.Route replanning is used in road navigation to refresh the route and plan a new route when deviation is detected. Deviation occurs when the driver leaves the planned route or when unexpected road closures or traffic incidents occur. In off-road navigation, a GPX file is used to plan the route, but the functionalities for refreshing the route and handling deviation are not supported. If replanning is enabled, the
OffRoadRouteReplanner
will throw anotSupportedForOffRoadNavigation
error.To create a default off-road
Navigation
, check theOffRoadTomTomNavigationFactory
class.Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public enum OffRoadRouteReplannerFactory
-
Factory for creating an off-road
RouteTrackingEngine
instance.The
RouteTrackingEngine
monitors if the driver is following the planned route or deviating from it and informs listeners of theNavigationRouteTrackingStateUpdateObserver
. The engine uses data from theNavigationSnapshot
to determine whether the driver is on track. Then it returns aRouteTrackingState
with information about whether the driver is following the route.To create a default off-road
Navigation
, check theOffRoadTomTomNavigationFactory
class.Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
public enum OffRoadRouteTrackingEngineFactory