Ways to get map data
Request accessTomTom delivers NDS.Live map data in two ways. Your map data component can stream tiles from a Smart Layer Tile Service as it needs them, or you can download map data in bulk as a file store from the Map Content Portal. This page explains how each way works, how map updates reach your map data component, and what that means for the design of your integration.
Choosing and combining
| Streaming | Bulk download | |
|---|---|---|
| What you get | The tiles your map data component asks for | Map data in one database file |
| Where it comes from | A Smart Layer Tile Service | The Map Content Portal |
| What it suits | Getting map data on demand, in your vehicle software or your cloud backend. Inspecting data and services in detail. Viewing the map. | Getting the map data for an area up front, such as a base download in a cloud-to-cloud setup or the initial map installation in a vehicle. Viewing the map. |
| How updates arrive | Per layer, when your map data component checks | As new file stores, when TomTom updates the map |
The two ways work together. A common pattern is a file store for the initial installation, followed by streamed updates to stay current.
Streaming from a Smart Layer Tile Service
Your map data component asks a Smart Layer Tile Service for the tiles it needs, when it needs them, and gets back the tile’s layers. During evaluation, you call the evaluation endpoint directly. In production, your map data component finds its service endpoints in the NDS.Live Registry.
Update mechanism
A tile holds several layers, and each layer has its own version. The tile’s header lists layer IDs and their versions. Your map data component gets a tile along with all the tile’s layer versions by calling getLayerByTileId. Because each layer has its own version, your map data component can replace only the layers that changed and keep the rest.
The Smart Layer Tile Service offers two flows to find and get the changed layers. Which flow to use is your choice when you design your integration.
- Full layer updates: check the tile’s header, then get each changed layer separately
- Delta updates: get all changed layers in one response
| Your map data component | Full layer updates | Delta updates |
|---|---|---|
| Sends requests per tile | One or more Header, plus one per changed layer | One A smart layer tile with the changed layers |
| Checks for changes with | getHeaderOnlyByTileIdArguments: The tile ID | getDeltaLayerByTileIdArguments: • The tile ID • The ID and version of each layer it holds |
| Gets back | The tile’s header with the ID and version of each layer | A smart layer tile with the data of the changed layers |
| Finds the changed layers | Compares the versions in the header with the ones it holds | Reads the delta encoding type of each layer in the response |
| Updates the changed layers | • Calls getSingleDataLayerByTileId, one call per changed layer• Replaces the changed layers | • Takes the changed layers from the same response • Replaces the changed layers |
With both flows:
- Your map data component downloads only the changed layers.
- Each changed layer comes back whole: TomTom’s services don’t send byte-level differences.
Downloading the map in bulk
A file store is a database file that holds the tiles of an NDS.Live map, together with the metadata a Smart Layer Tile Service would provide: its layer definitions, module versions and the area it covers. You download it from the TomTom Map Content Portal. It suits an integration that needs the map data for an area up front, such as a base download in a cloud-to-cloud setup or the initial map installation in a vehicle. You can also open it in a viewer to look at the map.
To get access to the Map Content Portal, your company requests the Map Content Portal access package in My Access. You sign in with single sign-on and download with a separate API key from the Map Content Portal’s Account page. To find the NDS.Live releases, filter the catalog by the NDSLive product family. To automate downloads, use the Map Content API.
TomTom publishes new file stores as the map is updated. Each file store has a smart layer tile table, which stores each tile with its ID and its header:
| Column | Holds |
|---|---|
| Tile ID | The identifier of the tile |
| Tile | The tile’s map content |
| Header | The tile’s header, with the version of each layer (optional) |
To update its local copy, your integration compares the layer versions in the tile headers with its own and copies the tiles in which any layer changed. It doesn’t have to rebuild the whole map.
What this means for your integration
The design of your integration depends on a few decisions:
- How your integration gets its first map. Installing a file store gives a vehicle its map data before it drives. Streaming gets each tile when the vehicle first needs it.
- How your map data component checks for updates. Full layer and delta updates differ in the number of requests per tile, which matters when updates go over the air.
- Which layers your map data component needs. With delta updates, your map data component can skip the layers it doesn’t use, so they stay out of the response.
- How your map data component keeps tiles. Updates replace single layers, so whichever way your map data component keeps tiles, it needs the version of each layer.
Related resources
getLayerByTileIdgetHeaderOnlyByTileIdgetSingleDataLayerByTileIdgetDeltaLayerByTileId- Endpoint quick start
- Architecture overview
- Architecture overview: NDS.Live Registry
- TomTom Map Content Portal
- Map Content API documentation
- Managing access with Single Sign-On (SSO)