Navigation

Navigation is central to the TomTom Digital Cockpit experience. Online navigation enables fresh and always up-to-date map content. It is built on top of TomTom's navigation SDK: NavKit and makes use of common UI controls, made available through the NavKitUI SDK.

TomTom Digital Cockpit provides a set of generic core services as well as off-the-shelf or stock implementations. They are built on top of the NavKit and NavKitUI SDK and provide the customer with an out of the box navigation experience. Alternatively the customer can replace the off-the-shelf frontend and services with their own implementations.

The navigation domain includes the following sub-domains:

Display a map

Displaying the map using the NavKit SDK requires two components: the NavKit Map Visualisation library and the NavKit Map Visualisation onboard service library. Additionally a suite of small UI controls are provided by the NavKitUI SDK, such as a Zoom Control, a Map Mode Toggle, Location Preview, etc. The NavKit Map Visualisation library includes a map renderer (the component has to be integrated with app UI) and provides access to the map surface. The NavKit 2 Map Visualisation library requires map tiles which are provided by the NavKit 2 Map Visualisation onboard service. Communication between the two mentioned components is done using inter-process communication. The NavKit 2 Map Visualisation onboard service library will be deployed in separate process to reduce impact of potential malfunction.

The following diagram shows a high-level overview of the architecture of map rendering in TomTom Digital Cockpit:

Map rendering high-level overview image

It shows the following components:

  • Map display frontend: This implements the user interface for the map display.
  • Trip render manager: Implements NavKit Trip Renderer and Trip to provide trip rendering functionality.
  • Map display connection service: Provides a way to configure the map data source (online or onboard).
  • Map display service: This service provides support for trip, destination, camera mode, collision warning zones, traffic mode and map interaction type.

The following diagram shows a high-level overview of the architecture of search in TomTom Digital Cockpit:

Search high-level overview image

It shows the following components:

  • Search frontend: This implements the user interface for the search functionality.
  • Search ui component api: Provides the NavKit and NavKitUI components.
  • Vehicle location service: This service exposes information related to the current driving situation and to the current location, regardless of whether a trip is planned.
  • Navigation service: This service implements all navigation related functionality, including planning a trip to a user provided location.
  • Navigation connection service: Starts and manages the background NavKit worker service.

Guidance

Planning a trip, trip activation and visualization require the following components to interact with each other:

  • Map display: responsible for map interaction and visualising active trips. This component is described in Display a map.
  • Trips: responsible for planning trips and managing the active trip.
  • Driving assistance: responsible for the current location. This component also lays the foundation for future functionality such as route demos.

An example of the interactions between these domains is show below: Planning a route

The following diagram shows a high-level overview of the architecture of guidance in TomTom Digital Cockpit:

Guidance high-level overview image

It shows the following components:

  • Guidance frontend: This implements the user interface for the guidance functionality.
  • Guidance instructions service: This service contains the data of the next guidance instruction.
  • Navigation service: This service implements all navigation related functionality, including updating the active trip and monitoring for the trip for completion.
  • Navigation provider: This manages the lifecycle of NavKit navigation instances.
  • Driving context api provider: This manages the lifecycle of NavKit driving context API instances.