Navigation (NavKit2)

This page is applicable only for TomTom IndiGO version 1.0.3880-1630 and earlier.

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

TomTom IndiGO provides a set of generic core services as well as off-the-shelf or stock implementations. They are built on top of NavKit2 and NavKit2UI 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 NavKit2 SDK requires two components: the NavKit2 Map Visualisation library and the NavKit2 Map Visualisation onboard service library. Additionally a suite of small UI controls are provided by the NavKit2UI SDK, such as a Zoom Control, a Map Mode Toggle, Location Preview, etc. The NavKit2 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 IndiGO:

Map rendering high-level overview image (NavKit2)

It shows the following components:

  • Map display frontend: This implements the user interface for the map display.
  • Trip render manager: Implements NavKit2 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 IndiGO:

Search high-level overview image (NavKit2)

It shows the following components:

  • Search frontend: This implements the user interface for the search functionality.
  • Search ui component api: Provides the NavKit2 and NavKit2UI 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 NavKit2 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 (NavKit2)

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

Guidance high-level overview image (NavKit2)

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 NavKit2 navigation instances.
  • Driving context api provider: This manages the lifecycle of NavKit2 driving context API instances.