Maps SDK for Web

tt.services.matrixRouting

Matrix Routing service implementation using using the TomTom Routing API - Matrix Routing.

The Routing API Matrix Routing service allows the calculation of a matrix of route summaries for a set of routes which are defined with origin and destination locations.

For every given origin this service calculates the cost of routing from that origin to every given destination. The set of origins and the set of destinations can be thought of as the column and row headers of a table, and each cell in the table contains the costs of routing from the origin to the destination for that cell.

The following costs are computed for each route:

  • Travel times
  • Distances

Parameters need to be passed to the constructor.

If you want to explicitly decide which batch mode you want to use, add a property 'batchMode' with its value set to one of the properties: sync, async, or redirect.

The response is also extended with getTrackingId() method, which returns the Tracking-ID associated with the request.

For more information, please refer to the Matrix Routing documentation here.

Constructor

tt.services.matrixRouting([options], [additionalOptions])

Example
var origins = [
  { point: { latitude: 51.63685, longitude: 19.4171 } },
  { point: { latitude: 51.63685, longitude: 19 } }
];
var destinations = [
  { point: { latitude: 52.23498, longitude: 21.00849 } },
  { point: { latitude: 52.63685, longitude: 18 } }
];
function callbackFn(routeGeoJson) {
  console.log(routeGeoJson);
}
tt.services.matrixRouting({
  key: <Your API key>,
  origins: origins,
  destinations: destinations,
  traffic: true
}).then(callbackFn);
Parameters
Name Description
options
Object | Array
default:None
Options to be passed to the routing call, or an array of such options objects to perform a batch request.
additionalOptions
Object
default:None
Additional options to be passed to the service.
additionalOptions.abortSignal
Object
default:None

Signal created with abortController.


Use AbortController to cancel requests in progress.
Example
var abortController = new AbortController();
var options = {};
tt.services.calculateRoute(options, { abortSignal: abortController.signal })
    .then(function(response) { console.log(response) });
    .catch(function(error) {
        if (abortController.signal.aborted === true) {
            console.log('Request aborted.');
        }
    });
abortController.abort();
options.accelerationEfficiency
Number
default:None
Specifies the efficiency of converting chemical energy stored in fuel to kinetic energy when the vehicle accelerates (i.e., KineticEnergyGained/ChemicalEnergyConsumed). ChemicalEnergyConsumed is obtained by converting consumed fuel to chemical energy using fuelEnergyDensityInMJoulesPerLiter.
options.allowVignette
String | String[]
default:None

An array of country codes.


List of 3-character ISO 3166-1 alpha-3 country codes of countries in which toll roads with vignettes are allowed. Specifying allowVignette with some countries X is equivalent to specifying avoidVignette with all countries but X. Specifying allowVignette with an empty list is the same as avoiding all toll roads with vignettes. It is an error to specify both avoidVignette and allowVignette.
options.arriveAt
String
default:None

The properly formatted date with a time value. Date cannot be in the past and has to follow ISO 8601 standard.


A setter and getter for the 'arriveAt' attribute. The date and time of arrival at the destination point. It must be specified as a dateTime. When a time zone offset is not specified it will be assumed to be that of the destination point. The arriveAt value must be in the future. The arriveAt parameter cannot be used in conjunction with departAt.
options.auxiliaryPowerInkW
Number
default:None
Specifies the amount of power consumed for sustaining auxiliary systems in kilowatts (kW). It can be used to specify consumption due to devices and systems such as AC systems, radio, heating, etc.
options.auxiliaryPowerInLitersPerHour
Number
default:None
Specifies the amount of fuel consumed for sustaining auxiliary systems of the vehicle, in liters per hour. It can be used to specify consumption due to devices and systems such as AC systems, radio, heating, etc.
options.avoid
Array | String
default:None

Specifies something that the route calculation should try to avoid when determining the route.


A setter and getter for the avoid attribute. Specifies something that the route calculation should try to avoid when determining the route. Can be specified multiple times. Possible values:
  • tollRoads avoids toll roads.
  • motorways avoids motorways.
  • ferries avoids ferries.
  • unpavedRoads avoids unpaved roads.
  • carpools avoids routes that require use of carpool (HOV/ High Occupancy Vehicle) lanes.
  • alreadyUsedRoads avoids using the same road multiple times.
Most useful in conjunction with routeType=thrilling.
options.avoidAreas
Object[]
default:None

A list of shapes to avoid for planning routes.


A list of shapes to avoid for planning routes. Supported shapes include rectangles. Can contain one of each supported shapes element.
Example
tt.services.calculateRoute({
     locations: '52.37173,4.91015:52.36357,4.898046255',
     avoidAreas: [{
     southWestCorner: {latitude: 52.36391, longitude:4.90106},
     northEastCorner: {latitude: 52.36554, longitude:4.90767}
}]);

Supported point formats:

  • 'lat,lon'
  • {lat:111, lon:111}
  • {lat:111, lng:111}
  • {latitude:111, longitude:111}
  • {x:111, y:111}
  • {lat: function(), lng:function()}
options.avoidVignette
String | String[]
default:None

An array of country codes.


List of 3-character ISO 3166-1 alpha-3 country codes of countries in which all toll roads with vignettes are to be avoided. Toll roads with vignettes in countries not in the list are unaffected. It is an error to specify both avoidVignette and allowVignette.
options.batchMode
String
default:None

Possible values: sync, async, redirect


This option lets you manually set how a matrix request should be performed. Otherwise we decide for you if you should use sync, async, or redirect mode. For a further explanation please refer to the Matrix Routing docs here.
options.computeTravelTimeFor
String
default:None

Setting 'all' provides additional information regarding travel times.


A setter and getter for the 'computeTravelTimeFor' attribute. Specifies whether to return additional travel times using different types of traffic information (none, historic, live) as well as the default best-estimate travel time. Possible values:
  • none - do not compute additional travel times.
  • all - compute travel times for all types of traffic information. Specifies all results in the fields noTrafficTravelTimeInSeconds, historicTrafficTravelTimeInSeconds and liveTrafficIncidentsTravelTimeInSeconds being included in the summaries in the route response.
options.constantSpeedConsumptionInkWhPerHundredkm
Array
default:None

Colon-delimited list of ElectricConstantSpeedConsumptionPairs, e.g., an array of such pairs "60,7".


Specifies the speed-dependent component of consumption. Provided as an unordered list of speed/consumption-rate pairs. The list defines points on a consumption curve. Consumption rates for speeds not in the list are found as follows:
  • By linear interpolation, if the given speed lies in between two speeds in the list.
  • By linear extrapolation otherwise, assuming a constant (ΔConsumption/ΔSpeed) determined by the nearest two points in the list.
The list must contain between 1 and 25 points (inclusive), and may not contain duplicate points for the same speed. If it only contains a single point, then the consumption rate of that point is used without further processing. Consumption specified for the largest speed must be greater than or equal to that of the penultimate highest speed. This ensures that extrapolation does not lead to negative consumption rates. Similarly, consumption values specified for the two lowest speeds in the list cannot lead to a negative consumption rate for any lower speed. The minimum and maximum values described here refer to the valid range for the consumption values (expressed in kWh/100km).
options.constantSpeedConsumptionInLitersPerHundredkm
Array
default:None

Colon-delimited list of CombustionConstantSpeedConsumptionPairs, e.g., an array of such pairs "60,7".


Specifies the speed-dependent component of consumption. Provided as an unordered list of speed/consumption-rate pairs. The list defines points on a consumption curve. Consumption rates for speeds not in the list are found as follows:
  • By linear interpolation, if the given speed lies in between two speeds in the list.
  • By linear extrapolation otherwise, assuming a constant (ΔConsumption/ΔSpeed) determined by the nearest two points in the list.
The list must contain between 1 and 25 points (inclusive), and may not contain duplicate points for the same speed. If it only contains a single point, then the consumption rate of that point is used without further processing. Consumption specified for the largest speed must be greater than or equal to that of the penultimate highest speed. This ensures that extrapolation does not lead to negative consumption rates. Similarly, consumption values specified for the two lowest speeds in the list cannot lead to a negative consumption rate for any smaller speed. The minimum and maximum values described here refer to the valid range for the consumption values (expressed in l/100km).
options.consumptionInkWhPerkmAltitudeGain
Number
default:None

Electric energy in kWh


Specifies the electric energy in kWh consumed by the vehicle through gaining 1000 meters of elevation.
  • Note: It must be paired with recuperationInkWhPerkmAltitudeLoss.
  • Note: It cannot be used with accelerationEfficiency, decelerationEfficiency, uphillEfficiency or downhillEfficiency.
Minimum value: recuperationInkWhPerkmAltitudeLoss Maximum value: 500.0
options.currentChargeInkWh
Number
default:None
Specifies the current electric energy supply in kilowatt hours (kWh).
options.currentFuelInLiters
Number
default:None
Specifies the current supply of fuel in liters.
options.decelerationEfficiency
Number
default:None
Specifies the efficiency of converting kinetic energy to saved (not consumed) fuel when the vehicle decelerates (i.e., ChemicalEnergySaved/KineticEnergyLost). ChemicalEnergySaved is obtained by converting saved (not consumed) fuel to energy using fuelEnergyDensityInMJoulesPerLiter.
options.departAt
String
default:None

The properly formatted date with the time or 'now' value. Date cannot be in the past and has to follow ISO 8601 standard.


A setter and getter for the 'departAt' attribute. The date and time of departure from the origin point. Departure times apart from now must be specified as a dateTime. When a time zone offset is not specified, it will be assumed to be that of the origin point. The departAt value must be in the future. The departAt parameter cannot be used in conjunction with arriveAt.
options.destinations
Array
default:None

A set of destination locations represented by points (latitude/longitude object).


A setter and getter for the 'destinations' attribute. A set of destination locations represented by points (latitude/longitude object). At least one destination is required.
options.downhillEfficiency
Number
default:None
Specifies the efficiency of converting potential energy to saved (not consumed) fuel when the vehicle loses elevation (i.e., ChemicalEnergySaved/PotentialEnergyLost). ChemicalEnergySaved is obtained by converting saved (not consumed) fuel to energy using fuelEnergyDensityInMJoulesPerLiter.
options.fuelEnergyDensityInMJoulesPerLiter
Number
default:None
Specifies the amount of chemical energy stored in one liter of fuel in megajoules (MJ). It is used in conjunction with the *Efficiency parameters for conversions between saved or consumed energy and fuel. For example, energy density is 34.2 MJ/l for gasoline, and 35.8 MJ/l for Diesel fuel.
options.hilliness
String
default:None

The level of hilliness on a thrilling route.


A setter and getter for the 'hilliness' attribute. The degree of hilliness for thrilling route. Possible values: low, normal, high. This parameter can only be used in conjunction with routeType thrilling.
options.key
String
default:None

A valid API Key for the requested service.


Key is required to make use of the given service. It can be issued in the Developer Portal.
options.maxChargeInkWh
Number
default:None
Specifies the maximum electric energy supply in kilowatt hours (kWh) that may be stored in the vehicle's battery.
options.origins
Array
default:None

A set of origin locations represented by points (latitude/longitude object).


A setter and getter for the 'origins' attribute. A set of origin locations represented by points (latitude/longitude object). At least one origin is required.
options.protocol
String
default:None

Protocol type, one of http or https.


Represents the type of protocol used to perform the service call.
options.recuperationInkWhPerkmAltitudeLoss
Number
default:None

Electric energy in kWh


Specifies the electric energy in kWh gained by the vehicle through losing 1000 meters of elevation.
  • Note: It must be paired with consumptionInkWhPerkmAltitudeGain.
  • Note: It cannot be used with accelerationEfficiency, decelerationEfficiency, uphillEfficiency or downhillEfficiency.
Minimum value: 0.0 Maximum value: consumptionInkWhPerkmAltitudeGain
options.report
String
default:None

The level of a verbose answer from the service, useful for debugging purposes.


Specifies which data should be reported for diagnosis purposes. Possible values: effectiveSettings Reports the effective parameters or data used when calling the API. In the case of defaulted parameters, the default will be reflected where the parameter was not specified by the caller.
options.routeType
String
default:None

The route type to be used during route calculation.


A setter and getter for the routeType attribute. Represents the type of route requested. Notes on specific values:
  • fastest returns the fastest route.
  • shortest returns the shortest route by distance.
  • eco routes balance economy and speed.
  • thrilling routes include interesting or challenging roads and use as few motorways as possible. You can choose the level of turns included and also the degree of hilliness. See the hilliness and windingness parameters to set this. There is a limit of 900km on routes planned with routeType=thrilling The default value is fastest.
options.trackingId
String
default:uuid

Sets value of "Tracking-ID" header.


Specifies an identifier for the request. If not set by the user, UUID is generated for each call.
  • It can be used to trace a call.
  • The value must match the regular expression '^[a-zA-Z0-9-]{1,100}$'.
  • An example of the format that matches this regular expression is UUID: (e.g. 9ac68072-c7a4-11e8-a8d5-f2801f1b9fd1). For details check RFC 4122.
  • If specified, it is replicated in the Tracking-ID Response header.
  • It is only meant to be used for support and does not involve tracking of you or your users in any form.
options.traffic
String | Boolean
default:None

A boolean flag to determine if traffic data should be used to calculate the route.


A setter and getter for the 'traffic' attribute. Possible values: true (do consider all available traffic information during routing). false (ignore current traffic data during routing). Note that although the current traffic data is ignored during routing, the effect of historic traffic on effective road speeds is still incorporated. The default is true.
options.travelMode
String
default:None

The primary means of transportation to be used while routing.


A setter and getter for the 'travelMode' attribute. The mode of travel for the requested route. Possible values: car, truck, taxi, bus, van, motorcycle, bicycle, pedestrian. Note that the requested travelMode may not be available for the entire route. Where the requested travelMode is not available for a particular section, the element of the response for that section will be 'other'.
options.uphillEfficiency
Number
default:None
Specifies the efficiency of converting chemical energy stored in fuel to potential energy when the vehicle gains elevation (i.e., PotentialEnergyGained/ChemicalEnergyConsumed). ChemicalEnergyConsumed is obtained by converting consumed fuel to chemical energy using fuelEnergyDensityInMJoulesPerLiter.
options.vehicleAdrTunnelRestrictionCode
String
default:None

An ADR restriction code


If specified, the vehicle is subject to ADR tunnel restrictions.
  • Vehicles with code B are restricted from roads with ADR tunnel categories B, C, D, and E.
  • Vehicles with code C are restricted from roads with ADR tunnel categories C, D, and E.
  • Vehicles with code D are restricted from roads with ADR tunnel categories D and E.
  • Vehicles with code E are restricted from roads with ADR tunnel category E.
  • If vehicleAdrTunnelRestrictionCode is not specified, no ADR tunnel restrictions apply.
Notes:
  • If travelMode is pedestrian or bicycle, vehicleAdrTunnelRestrictionCode is not considered.
  • The vehicleAdrTunnelRestrictionCode and vehicleLoadType parameters are independent; please provide both if applicable.
options.vehicleAxleWeight
Number
default:None

The vehicle axle wight in kg.


A setter and getter for 'vehicleAxleWeight' attribute. Weight per axle of the vehicle in kg. A value of 0 means that weight restrictions per axle are not considered during route planning. This parameter is currently only considered for travelMode truck.
options.vehicleCommercial
Boolean
default:None

True if the vehicle is used for commercial purposes.


A setter and getter for the 'vehicleCommercial' attribute. Vehicle is used for commercial purposes and thus may not be allowed to drive on some roads. This parameter is currently only considered for travelMode truck.
options.vehicleEngineType
String
default:None

The vehicle engine type.


A setter and getter for 'vehicleEngineType' attribute. Engine type of the vehicle. This parameter is currently only considered for travelMode truck. Valid options are: combustion, electric.
options.vehicleHeight
Number
default:None

The vehicle height in meters.


A setter and getter for the 'vehicleHeight' attribute. Height of the vehicle in meters. A value of 0 means that height restrictions are not considered during route planning. This parameter is currently only considered for travelMode truck.
options.vehicleLength
Number
default:None

The vehicle length in meters.


A setter and getter for the 'vehicleLength' attribute. Length of the vehicle in meters. A value of 0 means that length restrictions are not considered during route planning. This parameter is currently only considered for travelMode truck.
options.vehicleLoadType
Array | String
default:None

The array of truck cargo classifications.


A setter and getter for the 'vehicleLoadType' attribute. Types of cargo that may be classified as hazardous materials and restricted from some roads. Available vehicleLoadType values are US Hazmat classes 1 through 9, plus generic classifications for use in other countries. Use these for routing in US
  • USHazmatClass1 Explosives
  • USHazmatClass2 Compressed gas
  • USHazmatClass3 Flammable liquids
  • USHazmatClass4 Flammable solids
  • USHazmatClass5 Oxidizers
  • USHazmatClass6 Poisons
  • USHazmatClass7 Radioactive
  • USHazmatclass8 Corrosives
  • USHazmatClass9 Miscellaneous
Use these for routing in all other countries
  • otherHazmatExplosive Explosives
  • otherHazmatGeneral Miscellaneous
  • otherHazmatHarmfulToWater Harmful to water
This parameter is currently only considered for travelMode truck.
options.vehicleMaxSpeed
Number
default:None

The maximal allowed vehicle speed in km/h (kilometers per hour).


A setter and getter for the 'vehicleMaxSpeed' attribute. Maximum speed of the vehicle in km/hour. A value of 0 means that an appropriate value for the vehicle will be determined and applied during route planning. A non-zero value may be overridden during route planning. This parameter is currently only considered for travelMode truck.
options.vehicleWeight
Number
default:None

The vehicle weight in kg (kilograms).


A setter and getter for 'vehicleWeight' attribute. Weight of the vehicle in kg. A value of 0 means that weight restrictions are not considered during route planning. This parameter is currently only considered for travelMode truck.
options.vehicleWidth
Number
default:None

The vehicle width in meters.


A setter and getter for the 'vehicleWidth' attribute. Width of the vehicle in meters. A value of 0 means that width restrictions are not considered during route planning. This parameter is currently only considered for travelMode truck.
options.waitTimeSeconds
Number
default:None

Accepts 120 or an integer between 5 and 60.


Maximum waiting time for batch download response. This option only works with 'async' and 'redirect' batch modes. Accepts 120 or an integer between 5 and 60.
options.windingness
String
default:None

The level of windingness on a thrilling route.


A setter and getter for the 'windingness' attribute. The level of turns for thrilling route. Possible values: low, normal, high. This parameter can only be used in conjunction with routeType thrilling.