# RouteMatrixElement

- [JSON representation](https://developers.google.com/maps/documentation/routes_preferred/reference/rest/Shared.Types/RouteMatrixElement#SCHEMA_REPRESENTATION)
- [Status](https://developers.google.com/maps/documentation/routes_preferred/reference/rest/Shared.Types/RouteMatrixElement#Status)
  - [JSON representation](https://developers.google.com/maps/documentation/routes_preferred/reference/rest/Shared.Types/RouteMatrixElement#Status.SCHEMA_REPRESENTATION)

Encapsulates route information computed for an origin/destination pair in the ComputeRouteMatrix API. This proto can be streamed to the client.

| JSON representation |
|---|
| ``` { "originIndex": integer, "destinationIndex": integer, "status": { object (`https://developers.google.com/maps/documentation/routes_preferred/reference/rest/Shared.Types/RouteMatrixElement#Status`) }, "condition": enum (`https://developers.google.com/maps/documentation/routes_preferred/reference/rest/Shared.Types/RouteMatrixElementCondition`), "distanceMeters": integer, "duration": string, "staticDuration": string, "travelAdvisory": { object (`https://developers.google.com/maps/documentation/routes_preferred/reference/rest/Shared.Types/RouteTravelAdvisory`) }, "fallbackInfo": { object (`https://developers.google.com/maps/documentation/routes_preferred/reference/rest/Shared.Types/FallbackInfo`) } } ``` |

| Fields ||
|---|---|
| `originIndex` | `integer` Zero-based index of the origin in the request. |
| `destinationIndex` | `integer` Zero-based index of the destination in the request. |
| `status` | ``object (`https://developers.google.com/maps/documentation/routes_preferred/reference/rest/Shared.Types/RouteMatrixElement#Status`)`` Error status code for this element. |
| `condition` | ``enum (`https://developers.google.com/maps/documentation/routes_preferred/reference/rest/Shared.Types/RouteMatrixElementCondition`)`` Indicates whether the route was found or not. Independent of status. |
| `distanceMeters` | `integer` The travel distance of the route, in meters. |
| `duration` | ``string (`https://protobuf.dev/reference/protobuf/google.protobuf#duration` format)`` The length of time needed to navigate the route. If you set the `routingPreference` to `TRAFFIC_UNAWARE`, then this value is the same as `staticDuration`. If you set the `routingPreference` to either `TRAFFIC_AWARE` or `TRAFFIC_AWARE_OPTIMAL`, then this value is calculated taking traffic conditions into account. A duration in seconds with up to nine fractional digits, ending with '`s`'. Example: `"3.5s"`. |
| `staticDuration` | ``string (`https://protobuf.dev/reference/protobuf/google.protobuf#duration` format)`` The duration of traveling through the route without taking traffic conditions into consideration. A duration in seconds with up to nine fractional digits, ending with '`s`'. Example: `"3.5s"`. |
| `travelAdvisory` | ``object (`https://developers.google.com/maps/documentation/routes_preferred/reference/rest/Shared.Types/RouteTravelAdvisory`)`` Additional information about the route. For example: restriction information and toll information |
| `fallbackInfo` | ``object (`https://developers.google.com/maps/documentation/routes_preferred/reference/rest/Shared.Types/FallbackInfo`)`` 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 fallback mode is used, this field contains detailed information about the fallback response. Otherwise this field is unset. |

## Status

The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details.

You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).

| JSON representation |
|---|
| ``` { "code": integer, "message": string, "details": [ { "@type": string, field1: ..., ... } ] } ``` |

| Fields ||
|---|---|
| `code` | `integer` The status code, which should be an enum value of `google.rpc.Code`. |
| `message` | `string` A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the `https://developers.google.com/maps/documentation/routes_preferred/reference/rest/Shared.Types/RouteMatrixElement#Status.FIELDS.details` field, or localized by the client. |
| `details[]` | `object` A list of messages that carry the error details. There is a common set of message types for APIs to use. An object containing fields of an arbitrary type. An additional field `"@type"` contains a URI identifying the type. Example: `{ "id": 1234, "@type": "types.example.com/standard/id" }`. |