# RoutingParameters

- [JSON representation](https://developers.google.com/maps/documentation/places/web-service/reference/rest/v1/RoutingParameters#SCHEMA_REPRESENTATION)
- [TravelMode](https://developers.google.com/maps/documentation/places/web-service/reference/rest/v1/RoutingParameters#TravelMode)
- [RouteModifiers](https://developers.google.com/maps/documentation/places/web-service/reference/rest/v1/RoutingParameters#RouteModifiers)
  - [JSON representation](https://developers.google.com/maps/documentation/places/web-service/reference/rest/v1/RoutingParameters#RouteModifiers.SCHEMA_REPRESENTATION)
- [RoutingPreference](https://developers.google.com/maps/documentation/places/web-service/reference/rest/v1/RoutingParameters#RoutingPreference)

Parameters to configure the routing calculations to the places in the response, both along a route (where result ranking will be influenced) and for calculating travel times on results.

| JSON representation |
|---|
| ``` { "origin": { object (`https://developers.google.com/maps/documentation/places/web-service/reference/rest/v1/places#LatLng`) }, "travelMode": enum (`https://developers.google.com/maps/documentation/places/web-service/reference/rest/v1/RoutingParameters#TravelMode`), "routeModifiers": { object (`https://developers.google.com/maps/documentation/places/web-service/reference/rest/v1/RoutingParameters#RouteModifiers`) }, "routingPreference": enum (`https://developers.google.com/maps/documentation/places/web-service/reference/rest/v1/RoutingParameters#RoutingPreference`) } ``` |

| Fields ||
|---|---|
| `origin` | ``object (`https://developers.google.com/maps/documentation/places/web-service/reference/rest/v1/places#LatLng`)`` Optional. An explicit routing origin that overrides the origin defined in the polyline. By default, the polyline origin is used. |
| `travelMode` | ``enum (`https://developers.google.com/maps/documentation/places/web-service/reference/rest/v1/RoutingParameters#TravelMode`)`` Optional. The travel mode. |
| `routeModifiers` | ``object (`https://developers.google.com/maps/documentation/places/web-service/reference/rest/v1/RoutingParameters#RouteModifiers`)`` Optional. The route modifiers. |
| `routingPreference` | ``enum (`https://developers.google.com/maps/documentation/places/web-service/reference/rest/v1/RoutingParameters#RoutingPreference`)`` Optional. Specifies how to compute the routing summaries. The server attempts to use the selected routing preference to compute the route. The traffic aware routing preference is only available for the `DRIVE` or `TWO_WHEELER` `travelMode`. |

## TravelMode

Travel mode options. These options map to what [Routes API offers](https://developers.google.com/maps/documentation/routes/reference/rest/v2/RouteTravelMode).

| Enums ||
|---|---|
| `TRAVEL_MODE_UNSPECIFIED` | No travel mode specified. Defaults to `DRIVE`. |
| `DRIVE` | Travel by passenger car. |
| `BICYCLE` | Travel by bicycle. Not supported with `searchAlongRouteParameters`. |
| `WALK` | Travel by walking. Not supported with `searchAlongRouteParameters`. |
| `TWO_WHEELER` | Motorized two wheeled vehicles of all kinds such as scooters and motorcycles. Note that this is distinct from the `BICYCLE` travel mode which covers human-powered transport. Not supported with `searchAlongRouteParameters`. Only supported in those countries listed at [Countries and regions supported for two-wheeled vehicles](https://developers.google.com/maps/documentation/routes/coverage-two-wheeled). |

## RouteModifiers

Encapsulates a set of optional conditions to satisfy when calculating the routes.

| JSON representation |
|---|
| ``` { "avoidTolls": boolean, "avoidHighways": boolean, "avoidFerries": boolean, "avoidIndoor": boolean } ``` |

| Fields ||
|---|---|
| `avoidTolls` | `boolean` Optional. When set to true, avoids toll roads where reasonable, giving preference to routes not containing toll roads. Applies only to the `DRIVE` and `TWO_WHEELER` `https://developers.google.com/maps/documentation/places/web-service/reference/rest/v1/RoutingParameters#TravelMode`. |
| `avoidHighways` | `boolean` Optional. When set to true, avoids highways where reasonable, giving preference to routes not containing highways. Applies only to the `DRIVE` and `TWO_WHEELER` `https://developers.google.com/maps/documentation/places/web-service/reference/rest/v1/RoutingParameters#TravelMode`. |
| `avoidFerries` | `boolean` Optional. When set to true, avoids ferries where reasonable, giving preference to routes not containing ferries. Applies only to the `DRIVE` and `TWO_WHEELER` `https://developers.google.com/maps/documentation/places/web-service/reference/rest/v1/RoutingParameters#TravelMode`. |
| `avoidIndoor` | `boolean` Optional. When set to true, avoids navigating indoors where reasonable, giving preference to routes not containing indoor navigation. Applies only to the `WALK` `https://developers.google.com/maps/documentation/places/web-service/reference/rest/v1/RoutingParameters#TravelMode`. |

## RoutingPreference

A set of values that specify factors to take into consideration when calculating the route.

| Enums ||
|---|---|
| `ROUTING_PREFERENCE_UNSPECIFIED` | No routing preference specified. Default to `TRAFFIC_UNAWARE`. |
| `TRAFFIC_UNAWARE` | Computes routes without taking live traffic conditions into consideration. Suitable when traffic conditions don't matter or are not applicable. Using this value produces the lowest latency. Note: For `https://developers.google.com/maps/documentation/places/web-service/reference/rest/v1/RoutingParameters#TravelMode` `DRIVE` and `TWO_WHEELER`, the route and duration chosen are based on road network and average time-independent traffic conditions, not current road conditions. Consequently, routes may include roads that are temporarily closed. Results for a given request may vary over time due to changes in the road network, updated average traffic conditions, and the distributed nature of the service. Results may also vary between nearly-equivalent routes at any time or frequency. |
| `TRAFFIC_AWARE` | Calculates routes taking live traffic conditions into consideration. In contrast to `TRAFFIC_AWARE_OPTIMAL`, some optimizations are applied to significantly reduce latency. |
| `TRAFFIC_AWARE_OPTIMAL` | Calculates the routes taking live traffic conditions into consideration, without applying most performance optimizations. Using this value produces the highest latency. |