Route Matrix

RouteMatrix class

google.maps.routes.RouteMatrix class

A matrix of routes computed for a set of origin/destination pairs by RouteMatrix.computeRouteMatrix

Access by calling const {RouteMatrix} = await google.maps.importLibrary("routes").
See Libraries in the Maps JavaScript API.

Static Methods

computeRouteMatrix

computeRouteMatrix(request)

Parameters:

Return Value:  Promise<{matrix:RouteMatrix}>

Takes in a list of origins and destinations and returns a matrix containing route information for each combination of origin and destination.

Note: This method requires that you specify a response field mask in the request by setting the ComputeRouteMatrixRequest.fields property. The value is a list of field paths.

For example:

  • Field mask of all available fields: fields: ['*']
  • Field mask of Route-level duration and distance: fields: ['durationMillis', 'distanceMeters']

Use of the wildcard response field mask fields: ['*'] is discouraged because:

  • Selecting only the fields that you need helps our server save computation cycles, allowing us to return the result to you with a lower latency.
  • Selecting only the fields that you need in your production job ensures stable latency performance. We might add more response fields in the future, and those new fields might require extra computation time. If you select all fields, or if you select all fields at the top level, then you might experience performance degradation because any new field we add will be automatically included in the response.
  • Selecting only the fields that you need results in a smaller response size, and thus a faster load over the network.

Properties

rows

The rows of the matrix. Each row corresponds to an origin and contains an array of RouteMatrixItems, each representing a route to a destination.

Methods

toJSON

toJSON()

Parameters:  None

Return Value:  Object

Converts to an object.

RouteMatrixItem class

google.maps.routes.RouteMatrixItem class

Contains route information computed for an origin/destination pair passed to RouteMatrix.computeRouteMatrix.

Access by calling const {RouteMatrixItem} = await google.maps.importLibrary("routes").
See Libraries in the Maps JavaScript API.

Properties

condition

Type:  RouteMatrixItemCondition optional

Indicates whether the route was found or not.

distanceMeters

Type:  number optional

The travel distance of the route in meters.

durationMillis

Type:  number optional

The length of time needed to navigate the route in milliseconds. If you set ComputeRouteMatrixRequest.routingPreference to TRAFFIC_UNAWARE, then this value is the same as RouteMatrixItem.staticDurationMillis. If you set ComputeRouteMatrixRequest.routingPreference to either TRAFFIC_AWARE or TRAFFIC_AWARE_OPTIMAL, then this value is calculated taking traffic conditions into account.

Note: If the duration exceeds 2^53 milliseconds, then this value is Number.POSITIVE_INFINITY.

error

Type:  RouteMatrixItemError optional

Error that occurred during the computation of the route.

fallbackInfo

Type:  FallbackInfo optional

In some cases when the server is not able to compute the route with the given preferences for this particular origin/destination pair, it may fall back to using a different mode of computation. When a fallback is used, this field contains detailed information about the fallback response. Otherwise this field is unset.

localizedValues

Text representations of properties of the RouteMatrixItem.

staticDurationMillis

Type:  number optional

The duration of traveling through the route without taking traffic conditions into consideration.

Note: If the duration exceeds 2^53 milliseconds, then this value is Number.POSITIVE_INFINITY.

travelAdvisory

Type:  RouteTravelAdvisory optional

Additional information about the route.

Methods

toJSON

toJSON()

Parameters:  None

Return Value:  Object

Converts to an object.

ComputeRouteMatrixRequest interface

google.maps.routes.ComputeRouteMatrixRequest interface

Request for a route matrix.

Properties

destinations

Array of destinations, which determines the columns of the response matrix. A value passed as a string may be an address, a plus code, or a Place resource name. Altitude values are not taken into consideration.

fields

Type:  Iterable<string>

Collection of fields to be fetched. Specify ["*"] for all fields.

origins

Array of origins, which determines the rows of the response matrix. A value passed as a string may be an address, a plus code, or a Place resource name. Altitude values are not taken into consideration.

Several size restrictions apply to the cardinality of origins and destinations:

  • The total number of origins and destinations specified as strings or Places must be no greater than 50.
  • The product of the number of origins and the number of destinations must be no greater than 625.
  • The product of the number of origins and destinations must be no greater than 100 if ComputeRouteMatrixRequest.routingPreference is set to TRAFFIC_AWARE_OPTIMAL.
  • The product of the number of origins and destinations must be no greater than 100 if ComputeRouteMatrixRequest.travelMode is set to TRANSIT.
arrivalTime optional

Type:  Date optional

The arrival time.

Note: Can only be set when ComputeRouteMatrixRequest.travelMode is set to TRANSIT. You can specify either ComputeRouteMatrixRequest.departureTime or ComputeRouteMatrixRequest.arrivalTime, but not both. Transit trips are available for up to 7 days in the past or 100 days in the future.

departureTime optional

Type:  Date optional

The departure time. If you don't set this value, then this value defaults to the time that you made the request.

Note: You can only specify a time in the past when ComputeRouteMatrixRequest.travelMode is set to TRANSIT. Transit trips are available for up to 7 days in the past or 100 days in the future.

extraComputations optional

A list of extra computations which may be used to complete the request.

Note: These extra computations may return extra fields on the response. These extra fields must also be specified in ComputeRouteMatrixRequest.fields to be returned in the response.

language optional

Type:  string optional

The BCP-47 language code, such as "en-US" or "sr-Latn". For more information, see Unicode Locale Identifier. See Language Support for the list of supported languages. When you don't provide this value, the language is inferred from your Google Maps JavaScript API localization settings. Otherwise, the language is inferred from the location of the first origin.

region optional

Type:  string optional

The region code, specified as a ccTLD ("top-level domain") two-character value. For more information see Country code top-level domains. When you don't provide this value, the region is inferred from your Google Maps JavaScript API localization settings. Otherwise, the region is inferred from the location of the first origin.

routingPreference optional

Type:  RoutingPreference optional

Specifies how to compute the route matrix. The server attempts to use the selected routing preference to compute the route matrix. If the routing preference results in an error or an extra long latency, an error is returned. You can specify this option only when ComputeRouteMatrixRequest.travelMode is DRIVING or TWO_WHEELER, otherwise the request fails.

trafficModel optional

Type:  TrafficModel optional

Specifies the assumptions to use when calculating time in traffic. This setting affects the value returned in RouteMatrixItem.durationMillis which contains the predicted time in traffic based on historical averages. ComputeRouteMatrixRequest.trafficModel is only available for requests that have set ComputeRouteMatrixRequest.routingPreference to TRAFFIC_AWARE_OPTIMAL and ComputeRouteMatrixRequest.travelMode to DRIVING. Defaults to BEST_GUESS.

transitPreference optional

Type:  TransitPreference optional

Specifies preferences that influence the route returned for TRANSIT routes.

Note: Can only be specified when ComputeRouteMatrixRequest.travelMode is set to TRANSIT.

travelMode optional

Type:  TravelMode optional

Specifies the mode of transportation.

units optional

Type:  UnitSystem optional

Specifies the units of measure for the display fields. If you don't provide this value, then the display units are inferred from the location of the first origin.

google.maps.routes.ComputeRouteMatrixExtraComputation constants

Extra computations to perform for a RouteMatrix.computeRouteMatrix request.

Access by calling const {ComputeRouteMatrixExtraComputation} = await google.maps.importLibrary("routes").
See Libraries in the Maps JavaScript API.

Constants

TOLLS Toll information for the matrix item(s).

RouteMatrixItemCondition constants

google.maps.routes.RouteMatrixItemCondition constants

The condition of a route for a given origin/destination pair.

Access by calling const {RouteMatrixItemCondition} = await google.maps.importLibrary("routes").
See Libraries in the Maps JavaScript API.

Constants

ROUTE_EXISTS A route was found.
ROUTE_NOT_FOUND No route could be found.

RouteMatrixItemError class

google.maps.routes.RouteMatrixItemError class

An error that occurred during RouteMatrix.computeRouteMatrix for a specific origin/destination pair.

This class extends Error.

Access by calling const {RouteMatrixItemError} = await google.maps.importLibrary("routes").
See Libraries in the Maps JavaScript API.

Methods

toJSON

toJSON()

Parameters:  None

Return Value:  Object

Converts to an object.

RouteMatrixItemLocalizedValues class

google.maps.routes.RouteMatrixItemLocalizedValues class

Text representations of the RouteMatrixItem.

Access by calling const {RouteMatrixItemLocalizedValues} = await google.maps.importLibrary("routes").
See Libraries in the Maps JavaScript API.

Properties

distance

Type:  string optional

Travel distance of the route matrix item in text form.

distanceLanguage

Type:  string optional

The distance text's BCP-47 language code, such as "en-US" or "sr-Latn".

For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.

duration

Type:  string optional

Duration, represented in text form and localized to the region of the query. Takes traffic conditions into consideration.

Note: If you did not request traffic information, this value is the same value as RouteMatrixItemLocalizedValues.staticDuration.

durationLanguage

Type:  string optional

The duration text's BCP-47 language code, such as "en-US" or "sr-Latn".

For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.

staticDuration

Type:  string optional

Duration without taking traffic conditions into consideration, represented in text form.

staticDurationLanguage

Type:  string optional

The static duration text's BCP-47 language code, such as "en-US" or "sr-Latn".

transitFare

Type:  string optional

Transit fare, represented in text form.

transitFareLanguage

Type:  string optional

The transit fare text's BCP-47 language code, such as "en-US" or "sr-Latn".

For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.

Methods

toJSON

toJSON()

Parameters:  None

Return Value:  Object

Converts to an object.

Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2026-03-02 UTC.