Tile
Public Preview Notice
This API is in Public Preview. Go to the Public Preview - what is it? page to see what this means.
Purpose
Similar to the Map Display API Raster Tile service , the Map Display API Vector Tile service serves data on zoom levels ranging from 0
to 22
.
- For zoom level
0
, the entire earth is displayed on a single tile. - At zoom level
22
, the world is divided into 244 tiles. See: Zoom Levels and Tile Grid.
The Maps Vector Service delivers geographic map data packaged in a vector representation of squared sections called vector tiles.
- Each tile includes pre-defined collections of map features (points, lines, road shapes, water polygons, building footprints, etc.) delivered in one of the specified vector formats.
- The format of the tile is formally described using the protobuf schema.
- The content of the tiles and meaning of each tile layer is described in the tile layers description.
Tiles Layers and Styles
The Vector Maps Service supports the following tile layers: basic, hybrid, labels, and poi. Unlike raster tiles there is no difference in data served between main and night styles. The vector data consists of layers with their own names and geometry. The client determines how to present this data to the end user, for example which colors to use for which features.
- The
basic
vector tiles contain mapping data such as polygons, road shapes, borders, basic POIs, labels, and road icons. - The
labels
vector tiles provide the same label information as the basic vector tiles. The labels are precisely placed to align with the labels on the basic vector tiles. - The
hybrid
vector tiles provide all of the features from the basic layer except geographic polygons. It contains borders, road networks, labels, and road icons. - The
poi
vector tiles provide all of the Points of Interest features.
Tiles Resolution
Visible geometry is stored as coordinates in the range 0-4095
. Coordinate 0,0
is defined as the top-left corner of the tile.
Run this endpoint
You can easily run this and other endpoints. Go to the TomTom API Explorer page and follow the directions.
Request data
HTTPS method: GET
For ease of viewing and identification:
- Constants and parameters enclosed in curly brackets
{}
must be replaced with their values. - Please see the following Request parameters section with the required and optional parameters tables for these values. The generic URL format is as follows.
URL format
https://{baseURL}/map/{versionNumber}/tile/{layer}/{zoom}/{X}/{Y}.{format}?key={Your_API_Key}&view={view}&include={include_list}&travelMode={travelMode}&vehicleWeight={vehicleWeight}&vehicleAxleWeight={vehicleAxleWeight}&numberOfAxles={numberOfAxles}&vehicleLength={vehicleLength}&vehicleWidth={vehicleWidth}&vehicleHeight={vehicleHeight}&generalLoadType={generalLoadType}&dangerousGoodsLoadType={dangerousGoodsLoadType}&adrCategory={adrCategory}&travelModeProfile={travelModeProfile}&commercialVehicle={commercialVehicle}
curl command format
curl 'https://{baseURL}/map/{versionNumber}/tile/{layer}/{zoom}/{X}/{Y}.{format}?key={Your_API_Key}&view={view}&include={include_list}&travelMode={travelMode}&vehicleWeight={vehicleWeight}&vehicleAxleWeight={vehicleAxleWeight}&numberOfAxles={numberOfAxles}&vehicleLength={vehicleLength}&vehicleWidth={vehicleWidth}&vehicleHeight={vehicleHeight}&generalLoadType={generalLoadType}&dangerousGoodsLoadType={dangerousGoodsLoadType}&adrCategory={adrCategory}&travelModeProfile={travelModeProfile}&commercialVehicle={commercialVehicle}&emissionClass={emissionClass}&engineType={engineType}'
Request parameters
The following elements are used in calls to generate all vector tile layers.
Required parameters | Description |
---|---|
string | The base URL for calling TomTom services. Values:
|
string | The version of the service to call. Value: The current version is |
string | Layer of the tile to be rendered. Values:
|
integer | Zoom level of the tile to be rendered. Value: |
integer | The x coordinate of the tile on a zoom grid. Value:
|
integer | The y coordinate of the tile on a zoom grid. Value:
|
string | The format of the Response. Value: |
string | An API Key valid for the requested service. Value: Your valid API Key. |
Optional parameters | Description | ||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
string | A geopolitical view. Default value: See the following
Default view mapping section.
| ||||||||||||||||||||||||||||||||||
include string | List of additional data types to be included in the tile.
Values must be placed between Default value: None Actual supported values:
Example: | ||||||||||||||||||||||||||||||||||
vehicleWeight integer | Weight of the vehicle in kilograms. Default value: 0 | ||||||||||||||||||||||||||||||||||
vehicleAxleWeight integer | Weight per axle of the vehicle in kilograms. Default value: 0 | ||||||||||||||||||||||||||||||||||
numberOfAxles integer | Number of vehicle axles. Default value: 0 | ||||||||||||||||||||||||||||||||||
vehicleLength float | Length of the vehicle in meters. Default value: 0 | ||||||||||||||||||||||||||||||||||
vehicleWidth float | Width of the vehicle in meters. Default value: 0 | ||||||||||||||||||||||||||||||||||
vehicleHeight float | Height of the vehicle in meters. Default value: 0 | ||||||||||||||||||||||||||||||||||
generalLoadType string | List of the vehicle general load types.
Values must be placed between Default value: None. Actual supported values:
| ||||||||||||||||||||||||||||||||||
dangerousGoodsLoadType string | List of the vehicle dangerous goods load types.
Values must be placed between Default value: None. Actual supported values:
| ||||||||||||||||||||||||||||||||||
adrCategory string | Vehicle ADR category. Default value: None. Actual supported values:
| ||||||||||||||||||||||||||||||||||
commercialVehicle bool | Indicates a commercial vehicle. Default value: false Actual supported values:
| ||||||||||||||||||||||||||||||||||
travelMode string | Travel mode to be included in the restriction data. Default value: If Actual supported values:
| ||||||||||||||||||||||||||||||||||
emissionClass string | List of the emission classes.
Values must be placed between Default value: None. Actual supported values:
| ||||||||||||||||||||||||||||||||||
engineType string | List of the engine types
Values must be placed between Default value: None. Actual supported values:
| ||||||||||||||||||||||||||||||||||
travelModeProfile string | The short version combines vehicle-related parameters with travelModeProfile=<travelMode>,<vehicleWeight>,<vehicleAxleWeight>,<numberOfAxles>,<vehicleLength>,<vehicleWidth>,<vehicleHeight>,<generalLoadType>,<dangerousGoodsLoadType>,<adrCategory>,<commercialVehicle>,<emissionClass>,<engineType>
Example:
|
- Only available under kr-api.tomtom.com , see Available region specific contents.
HTTP request headers
The following table lists HTTP request headers of particular interest to clients of the Map Display API Vector Tile service endpoint. Note: There are no required headers in this endpoint.
Optional headers | Description |
---|---|
Contains the content encoding (usually a compression algorithm) that the client is able to understand. Value: | |
Contains an identifier for a specific version of resource. The server will send back the requested resource with a 200 HTTP status code, only if it doesn't have an ETag matching the given one. Value: | |
Tracking-ID | Specifies an identifier for the request. It can be used to trace a call.
The value must match the regular expression
Value: |
Default view mapping
Default view is recognized based on the country the request came from.
Country | Default view |
---|---|
Argentina |
Other available views: |
India |
Other available views: None |
Morocco |
Other available views: |
Pakistan |
Other available views: |
Russia |
Other available views: |
Türkiye |
Other available views: |
China |
Other available views: |
Bahrain, Kuwait, Oman, Qatar, Saudi Arabia, the United Arab Emirates |
Other available views: |
Others |
Other available views: |
- Only available under kr-api.tomtom.com , see Available region specific contents.
Travel mode mapping
Travel mode values mapping
Value | Travel mode |
---|---|
0 | Car |
1 | Truck |
2 | Taxi |
3 | Bus |
4 | Van |
5 | Motorcycle |
6 | Bicycle |
7 | Pedestrian |
8 | Other |
General load type mapping
General load type mapping
Value | General load type |
---|---|
0 | General_Hazardous_Materials |
1 | Explosive_Materials |
2 | Goods_Harmful_To_Water |
Dangerous goods load type mapping
Dangerous goods load type mapping
Value | Dangerous goods load type |
---|---|
0 | Explosives |
1 | Gases |
2 | Flammable_Liquids |
3 | Flammable_Solids |
4 | Oxidizing_And_Organic_Substance |
5 | Toxic_And_Infectious_Substance |
6 | Radioactive_Material |
7 | Corrosives |
8 | Miscellaneous_Dangerous_Goods |
Adr category type mapping
ADR category type mapping
Value | ADR category |
---|---|
B | ADR category B |
C | ADR category C |
D | ADR category D |
E | ADR category E |
Emission class mapping
Emission class mapping
Value | Emission class |
---|---|
0 | EmissionClass0 |
1 | EmissionClass1 |
2 | EmissionClass2 |
3 | EmissionClass3 |
4 | EmissionClass4 |
5 | EmissionClass5 |
6 | EmissionClass6 |
7 | EmissionClass7 |
8 | EmissionClass8 |
9 | EmissionClass9 |
10 | EmissionClass10 |
Engine type mapping
Engine type mapping
Value | Engine type |
---|---|
0 | LPG |
1 | CNG |
2 | LNG |
3 | Diesel |
4 | Petrol |
5 | Hydrogen |
6 | Electric |
7 | Hybrid |
8 | Plugin_Hybrid |
Host Name Cycling
Most web browsers have a default limitation on the number of active connections that can be allowed to each host.
- This means if map tiles are being loaded via the api.tomtom.com host name, they will be loaded one at a time.
- A trick that can be used to get around this limitation is to cycle through the hosts we have created as aliases.
- These host names are:
a.api.tomtom.com
b.api.tomtom.com
c.api.tomtom.com
d.api.tomtom.com
- These host names are:
- By cycling through these four different host names, the web browser will be tricked into retrieving four map tiles at a time rather than just one.
- This will significantly speed up the performance of map rendering.
For instance, if four map tiles are being requested at zoom level one, you would request the first one as:
https://a.api.tomtom.com/map/2/tile/basic/1/0/0.pbf?key={Your_API_Key}
The second would be:
https://b.api.tomtom.com/map/2/tile/basic/1/0/0.pbf?key=Your_API_Key
and so on up until d.api.tomtom.com
. When more than four tiles are being requested, start back again at a.api.tomtom.com
.
Response data
The Map Display API Vector service endpoint, for a single request, returns a binary response body which must be deserialized by client code generated by the Google Protocol Buffers compiler. The following response examples use a simple textual representation of the serialized binary vector tile data to illustrate the response content.
Response examples
Example 1
Whole world at zoom = 0
, basic layer.
Request | Response |
---|---|
|
|
Example 2.
Zoom level = 5
, hybrid layer
Request | Response |
---|---|
|
|
Example 3.
Zoom level = 4
, labels layer
Request | Response |
---|---|
|
|
Error Response
The Map Display API Vector service endpoint for an invalid request returns a response body in XML or JSON format. The XML format is returned by default. To have an error response returned in JSON format, application/json
has to be specified in the Accept
HTTP request header.
Error response field structure
Field | Description |
---|---|
object | Main |
string | One of a server-defined set of error codes. |
string | A human-readable description of the error code. |
Error response example
1{2 "detailedError": {3 "code": "BAD_REQUEST",4 "message": "Invalid tile position arguments"5 }6}
1<errorResponse description="Invalid tile position arguments" errorCode="400" version="1.0.54-mascoma">2 <detailedError>3 <code>BAD_REQUEST</code>4 <message>Invalid tile position arguments</message>5 </detailedError>6</errorResponse>
HTTP response codes
Code | Meaning & possible causes |
---|---|
| OK |
| Not Modified : The tile has not been modified. This code is
returned when the |
| Bad request : Probably malformed syntax.
|
| Forbidden :
|
| Too Many Requests : Too many requests were sent in a given amount of time for the supplied API Key. |
| Internal Server Error : There is a problem with the TomTom Maps Vector Tile service. |
| Service currently unavailable. |
HTTP response headers
The following data table lists HTTP response headers of particular interest to clients of the Map Display API Vector Tile service.
Header | Description |
---|---|
The Map Display API Vector Tile service allows cross-origin resource sharing (CORS). Value: | |
Contains directives for a caching mechanism. Value: | |
Indicates which encodings were applied to the response body. Value: | |
Contains information about the size of the response body. Value: | |
Indicates the media type of the resource returned. Value: | |
Contains the date and time at which the message was originated. Value: | |
Contains an identifier for a specific version of resource. Value: | |
Contains the date after which the response is considered outdated. Value: | |
Specifies the form of encoding used to safely transfer the response to the user. If this header is specified, the Content-Length header will be absent. Value: | |
Tracking-ID | An identifier for the request. If the Tracking-ID header was specified
in the request, it is replicated in the response. Otherwise, it is
generated automatically by the service. For details check
RFC 4122. |