Routes Preferred API is currently available only to select customers. Contact sales to learn more.

Package google.maps.routes.v1

Index

RoutesPreferred

The Routes Preferred API.

ComputeCustomRoutes

rpc ComputeCustomRoutes(ComputeCustomRoutesRequest) returns (ComputeCustomRoutesResponse)

Given a set of terminal and intermediate waypoints, and a route objective, computes the best route for the route objective. Also returns fastest route and shortest route as reference routes.

NOTE: This method requires that you specify a response field mask in the input. You can provide the response field mask by using the URL parameter $fields or fields, or by using the HTTP/gRPC header X-Goog-FieldMask (see the available URL parameters and headers. The value is a comma separated list of field paths. See this detailed documentation about how to construct the field paths.

For example, in this method:

  • Field mask of all available fields (for manual inspection): X-Goog-FieldMask: *
  • Field mask of route distances, durations, token and toll info: X-Goog-FieldMask: routes.route.distanceMeters,routes.route.duration,routes.token,routes.route.travelAdvisory.tollInfo

Google discourages the use of the wildcard (*) response field mask, or specifying the field mask at the top level (routes), 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 higher network throughput.
Authorization Scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/maps-platform.routespreferred

For more information, see the OAuth 2.0 Overview.

ComputeRouteMatrix

rpc ComputeRouteMatrix(ComputeRouteMatrixRequest) returns (RouteMatrixElement)

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

NOTE: This method requires that you specify a response field mask in the input. You can provide the response field mask by using the URL parameter $fields or fields, or by using the HTTP/gRPC header X-Goog-FieldMask (see the available URL parameters and headers. The value is a comma separated list of field paths. See this detailed documentation about how to construct the field paths.

For example, in this method:

  • Field mask of all available fields (for manual inspection): X-Goog-FieldMask: *
  • Field mask of route durations, distances, element status, condition, and element indices (an example production setup): X-Goog-FieldMask: originIndex,destinationIndex,status,condition,distanceMeters,duration

It is critical that you include status in your field mask as otherwise all messages will appear to be OK. Google discourages the use of the wildcard (*) response field mask, 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 higher network throughput.
Authorization Scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/maps-platform.routespreferred

For more information, see the OAuth 2.0 Overview.

ComputeRoutes

rpc ComputeRoutes(ComputeRoutesRequest) returns (ComputeRoutesResponse)

Returns the primary route along with optional alternate routes, given a set of terminal and intermediate waypoints.

NOTE: This method requires that you specify a response field mask in the input. You can provide the response field mask by using URL parameter $fields or fields, or by using an HTTP/gRPC header X-Goog-FieldMask (see the available URL parameters and headers. The value is a comma separated list of field paths. See detailed documentation about how to construct the field paths.

For example, in this method:

  • Field mask of all available fields (for manual inspection): X-Goog-FieldMask: *
  • Field mask of Route-level duration, distance, and polyline (an example production setup): X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.polyline.encodedPolyline

Google discourage the use of the wildcard (*) response field mask, or specifying the field mask at the top level (routes), 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 higher network throughput.
Authorization Scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/maps-platform.routespreferred

For more information, see the OAuth 2.0 Overview.

ComputeCustomRoutesRequest

ComputeCustomRoutes request message.

Fields
origin

Waypoint

Required. Origin waypoint.

destination

Waypoint

Required. Destination waypoint.

intermediates[]

Waypoint

Optional. A set of waypoints along the route (excluding terminal points), for either stopping at or passing by. Up to 25 intermediate waypoints are supported.

travel_mode

RouteTravelMode

Optional. Specifies the mode of transportation. Only DRIVE is supported now.

routing_preference

RoutingPreference

Optional. Specifies how to compute the route. The server attempts to use the selected routing preference to compute the route. If the routing preference results in an error or an extra long latency, then an error is returned. In the future, we might implement a fallback mechanism to use a different option when the preferred option does not give a valid result. You can specify this option only when the travel_mode is DRIVE or TWO_WHEELER, otherwise the request fails.

polyline_quality

PolylineQuality

Optional. Specifies your preference for the quality of the polyline.

polyline_encoding

PolylineEncoding

Optional. Specifies the preferred encoding for the polyline.

departure_time

Timestamp

Optional. The departure time. If you don't set this value, then this value defaults to the time that you made the request. If you set this value to a time that has already occurred, then the request fails.

route_modifiers

RouteModifiers

Optional. A set of conditions to satisfy that affect the way routes are calculated.

route_objective

RouteObjective

Required. A route objective to optimize for.

language_code

string

Optional. The BCP-47 language code, such as "en-US" or "sr-Latn". For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. See Language Support for the list of supported languages. When you don't provide this value, the display language is inferred from the location of the route request.

units

Units

Optional. Specifies the units of measure for the display fields. This includes the instruction field in NavigationInstruction. The units of measure used for the route, leg, step distance, and duration are not affected by this value. If you don't provide this value, then the display units are inferred from the location of the request.

ComputeCustomRoutesResponse

ComputeCustomRoutes response message.

Fields
routes[]

CustomRoute

The ‘best’ routes for the input route objective.

fastest_route

CustomRoute

The fastest reference route.

shortest_route

CustomRoute

The shortest reference route.

fallback_info

FallbackInfo

Fallback info for custom routes.

FallbackInfo

Encapsulates fallback info for ComputeCustomRoutes. ComputeCustomRoutes performs two types of fallbacks:

  1. If it cannot compute the route using the routing_preference requested by the customer, it will fallback to another routing mode. In this case fallback_routing_mode and routing_mode_fallback_reason are used to communicate the fallback routing mode used, as well as the reason for fallback.

  2. If it cannot compute a 'best' route for the route objective specified by the customer, it might fallback to another objective. fallback_route_objective is used to communicate the fallback route objective.

Fields
routing_mode

FallbackRoutingMode

Routing mode used for the response. If fallback was triggered, the mode may be different from routing preference set in the original client request.

routing_mode_reason

FallbackReason

The reason why fallback response was used instead of the original response. This field is only populated when the fallback mode is triggered and the fallback response is returned.

route_objective

FallbackRouteObjective

The route objective used for the response. If fallback was triggered, the objective may be different from the route objective provided in the original client request.

FallbackRouteObjective

RouteObjective used for the response.

Enums
FALLBACK_ROUTE_OBJECTIVE_UNSPECIFIED Fallback route objective unspecified.
FALLBACK_RATECARD_WITHOUT_TOLL_PRICE_DATA If customer requests RateCard and sets include_tolls to true, and Google does not have toll price data for the route, the API falls back to RateCard without considering toll price.

ComputeRouteMatrixRequest

ComputeRouteMatrix request message

Fields
origins[]

RouteMatrixOrigin

Required. Array of origins, which determines the rows of the response matrix. Several size restrictions apply to the cardinality of origins and destinations:

  • The number of elements (origins × destinations) must be no greater than 625 in any case.
  • The number of elements (origins × destinations) must be no greater than 100 if routing_preference is set to TRAFFIC_AWARE_OPTIMAL.
  • The number of waypoints (origins + destinations) specified as place_id must be no greater than 50.
destinations[]

RouteMatrixDestination

Required. Array of destinations, which determines the columns of the response matrix.

travel_mode

RouteTravelMode

Optional. Specifies the mode of transportation.

routing_preference

RoutingPreference

Optional. Specifies how to compute the route. The server attempts to use the selected routing preference to compute the route. If the routing preference results in an error or an extra long latency, an error is returned. In the future, we might implement a fallback mechanism to use a different option when the preferred option does not give a valid result. You can specify this option only when the travel_mode is DRIVE or TWO_WHEELER, otherwise the request fails.

departure_time

Timestamp

Optional. The departure time. If you don't set this value, this defaults to the time that you made the request. If you set this value to a time that has already occurred, the request fails.

ComputeRoutesRequest

ComputeRoutes request message.

Fields
origin

Waypoint

Required. Origin waypoint.

destination

Waypoint

Required. Destination waypoint.

intermediates[]

Waypoint

Optional. A set of waypoints along the route (excluding terminal points), for either stopping at or passing by. Up to 25 intermediate waypoints are supported.

travel_mode

RouteTravelMode

Optional. Specifies the mode of transportation.

routing_preference

RoutingPreference

Optional. Specifies how to compute the route. The server attempts to use the selected routing preference to compute the route. If the routing preference results in an error or an extra long latency, then an error is returned. In the future, we might implement a fallback mechanism to use a different option when the preferred option does not give a valid result. You can specify this option only when the travel_mode is DRIVE or TWO_WHEELER, otherwise the request fails.

polyline_quality

PolylineQuality

Optional. Specifies your preference for the quality of the polyline.

polyline_encoding

PolylineEncoding

Optional. Specifies the preferred encoding for the polyline.

departure_time

Timestamp

Optional. The departure time. If you don't set this value, then this value defaults to the time that you made the request. If you set this value to a time that has already occurred, then the request fails.

compute_alternative_routes

bool

Specifies whether to calculate alternate routes in addition to the route.

route_modifiers

RouteModifiers

Optional. A set of conditions to satisfy that affect the way routes are calculated.

language_code

string

Optional. The BCP-47 language code, such as "en-US" or "sr-Latn". For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. See Language Support for the list of supported languages. When you don't provide this value, the display language is inferred from the location of the route request.

units

Units

Optional. Specifies the units of measure for the display fields. This includes the instruction field in NavigationInstruction. The units of measure used for the route, leg, step distance, and duration are not affected by this value. If you don't provide this value, then the display units are inferred from the location of the request.

optimize_waypoint_order

bool

If optimizeWaypointOrder is set to true, an attempt is made to re-order the specified intermediate waypoints to minimize the overall cost of the route. If any of the intermediate waypoints is via waypoint the request fails. Use ComputeRoutesResponse.Routes.optimized_intermediate_waypoint_index to find the new ordering. If routes.optimized_intermediate_waypoint_index is not requested in the X-Goog-FieldMask header, the request fails. If optimizeWaypointOrder is set to false, ComputeRoutesResponse.optimized_intermediate_waypoint_index is empty.

ComputeRoutesResponse

ComputeRoutes the response message.

Fields
routes[]

Route

Contains an array of computed routes (up to three) when you specify compute_alternatives_routes, and contains just one route when you don't. When this array contains multiple entries, the first one is the most recommended route. If the array is empty, then it means no route could be found.

fallback_info

FallbackInfo

In some cases when the server is not able to compute the route results with all of the input preferences, it may fallback to using a different way of computation. When fallback mode is used, this field contains detailed info about the fallback response. Otherwise this field is unset.

CustomRoute

Encapsulates a custom route computed based on the route objective specified by the customer. CustomRoute contains a route and a route token, which can be passed to NavSDK to reconstruct the custom route for turn by turn navigation.

Fields
route

Route

The route considered 'best' for the input route objective.

token

string

Web-safe base64 encoded route token that can be passed to NavSDK, which allows NavSDK to reconstruct the route during navigation, and in the event of rerouting honor the original intention when RoutesPreferred ComputeCustomRoutes is called. Customers should treat this token as an opaque blob.

FallbackInfo

Information related to how and why a fallback result was used. If this field is set, then it means the server used a different routing mode from your preferred mode as fallback.

Fields
routing_mode

FallbackRoutingMode

Routing mode used for the response. If fallback was triggered, the mode may be different from routing preference set in the original client request.

reason

FallbackReason

The reason why fallback response was used instead of the original response. This field is only populated when the fallback mode is triggered and the fallback response is returned.

FallbackReason

Reasons for using fallback response.

Enums
FALLBACK_REASON_UNSPECIFIED No fallback reason specified.
SERVER_ERROR A server error happened while calculating routes with your preferred routing mode, but we were able to return a result calculated by an alternative mode.
LATENCY_EXCEEDED We were not able to finish the calculation with your preferred routing mode on time, but we were able to return a result calculated by an alternative mode.

FallbackRoutingMode

Actual routing mode used for returned fallback response.

Enums
FALLBACK_ROUTING_MODE_UNSPECIFIED Not used.
FALLBACK_TRAFFIC_UNAWARE Indicates the "TRAFFIC_UNAWARE" routing mode was used to compute the response.
FALLBACK_TRAFFIC_AWARE Indicates the "TRAFFIC_AWARE" routing mode was used to compute the response.

Location

Encapsulates a location (a geographic point, and an optional heading).

Fields
lat_lng

LatLng

The waypoint's geographic coordinates.

heading

Int32Value

The compass heading associated with the direction of the flow of traffic. This value is used to specify the side of the road to use for pickup and drop-off. Heading values can be from 0 to 360, where 0 specifies a heading of due North, 90 specifies a heading of due East, etc. You can use this field only for DRIVE and TWO_WHEELER travel modes.

Maneuver

A set of values that specify the navigation action to take for the current step (e.g., turn left, merge, straight, etc.).

Enums
MANEUVER_UNSPECIFIED Not used.
TURN_SLIGHT_LEFT Turn slightly to the left.
TURN_SHARP_LEFT Turn sharply to the left.
UTURN_LEFT Make a left u-turn.
TURN_LEFT Turn left.
TURN_SLIGHT_RIGHT Turn slightly to the right.
TURN_SHARP_RIGHT Turn sharply to the right.
UTURN_RIGHT Make a right u-turn.
TURN_RIGHT Turn right.
STRAIGHT Go straight.
RAMP_LEFT Take the left ramp.
RAMP_RIGHT Take the right ramp.
MERGE Merge into traffic.
FORK_LEFT Take the left fork.
FORK_RIGHT Take the right fork.
FERRY Take the ferry.
FERRY_TRAIN Take the train leading onto the ferry.
ROUNDABOUT_LEFT Turn left at the roundabout.
ROUNDABOUT_RIGHT Turn right at the roundabout.
Fields
maneuver

Maneuver

Encapsulates the navigation instructions for the current step (e.g., turn left, merge, straight, etc.). This field determines which icon to display.

instructions

string

Instructions for navigating this step.

Polyline

Encapsulates an encoded polyline.

Fields
Union field polyline_type. Encapsulates the type of polyline. Defaults to encoded_polyline. polyline_type can be only one of the following:
encoded_polyline

string

The string encoding of the polyline using the polyline encoding algorithm

geo_json_linestring

Struct

Specifies a polyline using the GeoJSON LineString format

PolylineEncoding

Specifies the preferred type of polyline to be returned.

Enums
POLYLINE_ENCODING_UNSPECIFIED No polyline type preference specified. Defaults to ENCODED_POLYLINE.
ENCODED_POLYLINE Specifies a polyline encoded using the polyline encoding algorithm.
GEO_JSON_LINESTRING Specifies a polyline using the GeoJSON LineString format

PolylineQuality

A set of values that specify the quality of the polyline.

Enums
POLYLINE_QUALITY_UNSPECIFIED No polyline quality preference specified. Defaults to OVERVIEW.
HIGH_QUALITY Specifies a high-quality polyline - which is composed using more points than OVERVIEW, at the cost of increased response size. Use this value when you need more precision.
OVERVIEW Specifies an overview polyline - which is composed using a small number of points. Use this value when displaying an overview of the route. Using this option has a lower request latency compared to using the HIGH_QUALITY option.

Route

Encapsulates a route, which consists of a series of connected road segments that join beginning, ending, and intermediate waypoints.

Fields
legs[]

RouteLeg

A collection of legs (path segments between waypoints) that make-up the route. Each leg corresponds to the trip between two non-via Waypoints. For example, a route with no intermediate waypoints has only one leg. A route that includes one non-via intermediate waypoint has two legs. A route that includes one via intermediate waypoint has one leg. The order of the legs matches the order of Waypoints from origin to intermediates to destination.

distance_meters

int32

The travel distance of the route, in meters.

duration

Duration

The length of time needed to navigate the route. If you set the routing_preference to TRAFFIC_UNAWARE, then this value is the same as static_duration. If you set the routing_preference to either TRAFFIC_AWARE or TRAFFIC_AWARE_OPTIMAL, then this value is calculated taking traffic conditions into account.

static_duration

Duration

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

polyline

Polyline

The overall route polyline. This polyline will be the combined polyline of all legs.

description

string

A description of the route.

warnings[]

string

An array of warnings to show when displaying the route.

viewport

Viewport

The viewport bounding box of the polyline.

travel_advisory

RouteTravelAdvisory

Additional information about the route.

optimized_intermediate_waypoint_index[]

int32

If ComputeRoutesRequest.optimize_waypoint_order is set to true, this field contains the optimized ordering of intermediates waypoints. otherwise, this field is empty. For example, suppose the input is Origin: LA; Intermediates: Dallas, Bangor, Phoenix; Destination: New York; and the optimized intermediate waypoint order is: Phoenix, Dallas, Bangor. Then this field contains the values [2, 0, 1]. The index starts with 0 for the first intermediate waypoint.

RouteLeg

Encapsulates a segment between non-via waypoints.

Fields
distance_meters

int32

The travel distance of the route leg, in meters.

duration

Duration

The length of time needed to navigate the leg. If the route_preference is set to TRAFFIC_UNAWARE, then this value is the same as static_duration. If the route_preference is either TRAFFIC_AWARE or TRAFFIC_AWARE_OPTIMAL, then this value is calculated taking traffic conditions into account.

static_duration

Duration

The duration of traveling through the leg, calculated without taking traffic conditions into consideration.

polyline

Polyline

The overall polyline for this leg. This includes that each step's polyline.

start_location

Location

The start location of this leg. This might be different from the provided origin. For example, when the provided origin is not near a road, this is a point on the road.

end_location

Location

The end location of this leg. This might be different from the provided destination. For example, when the provided destination is not near a road, this is a point on the road.

steps[]

RouteLegStep

An array of steps denoting segments within this leg. Each step represents one navigation instruction.

travel_advisory

RouteLegTravelAdvisory

Encapsulates the additional information that the user should be informed about, such as possible traffic zone restriction etc. on a route leg.

RouteLegStep

Encapsulates a segment of a RouteLeg. A step corresponds to a single navigation instruction. Route legs are made up of steps.

Fields
distance_meters

int32

The travel distance of this step, in meters. In some circumstances, this field might not have a value.

static_duration

Duration

The duration of travel through this step without taking traffic conditions into consideration. In some circumstances, this field might not have a value.

polyline

Polyline

The polyline associated with this step.

start_location

Location

The start location of this step.

end_location

Location

The end location of this step.

navigation_instruction

NavigationInstruction

Navigation instructions.

travel_advisory

RouteLegStepTravelAdvisory

Encapsulates the additional information that the user should be informed about, such as possible traffic zone restriction on a leg step.

RouteLegStepTravelAdvisory

Encapsulates the additional information that the user should be informed about, such as possible traffic zone restriction on a leg step.

Fields
speed_reading_intervals[]

SpeedReadingInterval

Speed reading intervals detailing traffic density. Applicable in case of TRAFFIC_AWARE and TRAFFIC_AWARE_OPTIMAL routing preferences. The intervals cover the entire polyline of the RouteLegStep without overlap. The start point of a specified interval is the same as the end point of the preceding interval.

Example:

polyline: A ---- B ---- C ---- D ---- E ---- F ---- G
speed_reading_intervals: [A,C), [C,D), [D,G).

RouteLegTravelAdvisory

Encapsulates the additional information that the user should be informed about, such as possible traffic zone restriction etc. on a route leg.

Fields
toll_info

TollInfo

Encapsulates information about tolls on the specific RouteLeg. This field is only populated if we expect there are tolls on the RouteLeg. If this field is set but the estimated_price subfield is not populated, we expect that road contains tolls but we do not know an estimated price. If this field does not exist, then there is no toll on the RouteLeg.

speed_reading_intervals[]

SpeedReadingInterval

Speed reading intervals detailing traffic density. Applicable in case of TRAFFIC_AWARE and TRAFFIC_AWARE_OPTIMAL routing preferences. The intervals cover the entire polyline of the RouteLg without overlap. The start point of a specified interval is the same as the end point of the preceding interval.

Example:

polyline: A ---- B ---- C ---- D ---- E ---- F ---- G
speed_reading_intervals: [A,C), [C,D), [D,G).

RouteMatrixDestination

A single destination for ComputeRouteMatrixRequest

Fields
waypoint

Waypoint

Required. Destination waypoint

RouteMatrixElement

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

Fields
origin_index

int32

Zero-based index of the origin in the request.

destination_index

int32

Zero-based index of the destination in the request.

status

Status

Error status code for this element.

condition

RouteMatrixElementCondition

Indicates whether the route was found or not. Independent of status.

distance_meters

int32

The travel distance of the route, in meters.

duration

Duration

The length of time needed to navigate the route. If you set the routing_preference to TRAFFIC_UNAWARE, then this value is the same as static_duration. If you set the routing_preference to either TRAFFIC_AWARE or TRAFFIC_AWARE_OPTIMAL, then this value is calculated taking traffic conditions into account.

static_duration

Duration

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

travel_advisory

RouteTravelAdvisory

Additional information about the route. For example: restriction information and toll information

fallback_info

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.

RouteMatrixElementCondition

The condition of the route being returned.

Enums
ROUTE_MATRIX_ELEMENT_CONDITION_UNSPECIFIED Only used when the status of the element is not OK.
ROUTE_EXISTS A route was found, and the corresponding information was filled out for the element.
ROUTE_NOT_FOUND No route could be found. Fields containing route information, such as distance_meters or duration, will not be filled out in the element.

RouteMatrixOrigin

A single origin for ComputeRouteMatrixRequest

Fields
waypoint

Waypoint

Required. Origin waypoint

route_modifiers

RouteModifiers

Optional. Modifiers for every route that takes this as the origin

RouteModifiers

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

Fields
avoid_tolls

bool

Specifies whether to avoid toll roads where reasonable. Preference will be given to routes not containing toll roads. Applies only to the DRIVE and TWO_WHEELER travel modes.

avoid_highways

bool

Specifies whether to avoid highways where reasonable. Preference will be given to routes not containing highways. Applies only to the DRIVE and TWO_WHEELER travel modes.

avoid_ferries

bool

Specifies whether to avoid ferries where reasonable. Preference will be given to routes not containing travel by ferries. Applies only to the DRIVE andTWO_WHEELER travel modes.

avoid_indoor

bool

Specifies whether to avoid navigating indoors where reasonable. Preference will be given to routes not containing indoor navigation. Applies only to the WALK travel mode.

vehicle_info

VehicleInfo

Specifies the vehicle information.

toll_passes[]

TollPass

Encapsulates information about toll passes. If toll passes are provided, the API tries to return the pass price. If toll passes are not provided, the API treats the toll pass as unknown and tries to return the cash price. Applies only to the DRIVE and TWO_WHEELER travel modes.

RouteObjective

Encapsulates an objective to optimize for by ComputeCustomRoutes.

Fields
rate_card

RateCard

The RateCard objective.

RateCard

Encapsulates a RateCard route objective.

Fields
cost_per_minute

MonetaryCost

Optional. Cost per minute.

cost_per_km

MonetaryCost

Optional. Cost per kilometer.

include_tolls

bool

Optional. Whether to include toll cost in the overall cost.

MonetaryCost

Encapsulates the cost used in the rate card.

Fields
value

double

Required. The cost value in local currency inferred from the request.

RouteTravelAdvisory

Encapsulates the additional information that the user should be informed about, such as possible traffic zone restriction etc.

Fields
toll_info

TollInfo

Encapsulates information about tolls on the Route. This field is only populated if we expect there are tolls on the Route. If this field is set but the estimated_price subfield is not populated, we expect that road contains tolls but we do not know an estimated price. If this field is not set, then we expect there is no toll on the Route.

speed_reading_intervals[]

SpeedReadingInterval

Speed reading intervals detailing traffic density. Applicable in case of TRAFFIC_AWARE and TRAFFIC_AWARE_OPTIMAL routing preferences. The intervals cover the entire polyline of the route without overlap. The start point of a specified interval is the same as the end point of the preceding interval.

Example:

polyline: A ---- B ---- C ---- D ---- E ---- F ---- G
speed_reading_intervals: [A,C), [C,D), [D,G).

RouteTravelMode

A set of values used to specify the mode of travel.

Enums
TRAVEL_MODE_UNSPECIFIED No travel mode specified. Defaults to DRIVE.
DRIVE Travel by passenger car.
BICYCLE Travel by bicycle.
WALK Travel by walking.
TWO_WHEELER Two-wheeled, motorized vehicle. For example, motorcycle. Note that this differs from the BICYCLE travel mode which covers human-powered mode.
TAXI

Travel by licensed taxi, which may allow the vehicle to travel on designated taxi lanes in some areas.

TAXI mode is an experimental feature. If customer requests TAXI route in a city where taxi lane data is not available, a DRIVE route is returned.

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_AWARE.
TRAFFIC_UNAWARE Computes routes without taking traffic conditions into consideration. Suitable when traffic conditions don't matter. Using this value produces the lowest latency.
TRAFFIC_AWARE Calculates routes taking 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 traffic conditions into consideration, without applying most performance optimizations. Using this value produces the highest latency.

SpeedReadingInterval

Traffic density indicator on a contiguous segment of a polyline or path. Given a path with points P_0, P_1, ... , P_N (zero-based index), the SpeedReadingInterval defines an interval and describes its traffic using the following categories.

Fields
start_polyline_point_index

int32

The starting index of this interval in the polyline. In JSON, when the index is 0, the field appears to be unpopulated.

end_polyline_point_index

int32

The ending index of this interval in the polyline. In JSON, when the index is 0, the field appears to be unpopulated.

speed

Speed

Traffic speed in this interval.

Speed

The classification of polyline speed based on traffic data.

Enums
SPEED_UNSPECIFIED Default value. This value is unused.
NORMAL Normal speed, no slowdown is detected.
SLOW Slowdown detected, but no traffic jam formed.
TRAFFIC_JAM Traffic jam detected.

TollInfo

Encapsulates toll information on a Route or on a RouteLeg.

Fields
estimated_price[]

Money

The monetary amount of tolls for the corresponding Route or RouteLeg. This list contains a money amount for each currency that is expected to be charged by the toll stations. Typically this list will contain only one item for routes with tolls in one currency. For international trips, this list may contain multiple items to reflect tolls in different currencies.

TollPass

List of toll passes around the world that we support.

Enums
TOLL_PASS_UNSPECIFIED Not used. If this value is used, then the request fails.
AU_ETOLL_TAG One of many Sydney toll pass providers. https://www.myetoll.com.au
AU_EWAY_TAG One of many Sydney toll pass providers. https://www.tollpay.com.au/
AU_LINKT Australia-wide toll pass. See additional details at https://www.linkt.com.au/.
AR_TELEPASE Argentina toll pass. See additional details at https://telepase.com.ar
BR_AUTO_EXPRESO Brazil toll pass. See additional details at https://www.autoexpreso.com
BR_CONECTCAR Brazil toll pass. See additional details at https://conectcar.com.
BR_MOVE_MAIS Brazil toll pass. See additional details at https://movemais.com.
BR_PASSA_RAPIDO Brazil toll pass. See additional details at https://pasorapido.gob.do/
BR_SEM_PARAR Brazil toll pass. See additional details at https://www.semparar.com.br.
BR_TAGGY Brazil toll pass. See additional details at https://taggy.com.br.
BR_VELOE Brazil toll pass. See additional details at https://veloe.com.br/site/onde-usar.
CA_US_AKWASASNE_SEAWAY_CORPORATE_CARD Canada to United States border crossing.
CA_US_AKWASASNE_SEAWAY_TRANSIT_CARD Canada to United States border crossing.
CA_US_BLUE_WATER_EDGE_PASS Ontario, Canada to Michigan, United States border crossing.
CA_US_CONNEXION Ontario, Canada to Michigan, United States border crossing.
CA_US_NEXUS_CARD Canada to United States border crossing.
ID_E_TOLL Indonesia. E-card provided by multiple banks used to pay for tolls. All e-cards via banks are charged the same so only one enum value is needed. E.g. Bank Mandiri https://www.bankmandiri.co.id/e-money BCA https://www.bca.co.id/flazz BNI https://www.bni.co.id/id-id/ebanking/tapcash
IN_FASTAG India.
IN_LOCAL_HP_PLATE_EXEMPT India, HP state plate exemption.
MX_TAG_IAVE Mexico toll pass.
MX_TAG_TELEVIA Mexico toll pass company. One of many operating in Mexico City. See additional details at https://www.televia.com.mx.
MX_VIAPASS Mexico toll pass. See additional details at https://www.viapass.com.mx/viapass/web_home.aspx.
US_AL_FREEDOM_PASS AL, USA.
US_AK_ANTON_ANDERSON_TUNNEL_BOOK_OF_10_TICKETS AK, USA.
US_CA_FASTRAK CA, USA.
US_CA_FASTRAK_CAV_STICKER Indicates driver has any FasTrak pass in addition to the DMV issued Clean Air Vehicle (CAV) sticker. https://www.bayareafastrak.org/en/guide/doINeedFlex.shtml
US_CO_EXPRESSTOLL CO, USA.
US_CO_GO_PASS CO, USA.
US_DE_EZPASSDE DE, USA.
US_FL_BOB_SIKES_TOLL_BRIDGE_PASS FL, USA.
US_FL_DUNES_COMMUNITY_DEVELOPMENT_DISTRICT_EXPRESSCARD FL, USA.
US_FL_EPASS FL, USA.
US_FL_GIBA_TOLL_PASS FL, USA.
US_FL_LEEWAY FL, USA.
US_FL_SUNPASS FL, USA.
US_FL_SUNPASS_PRO FL, USA.
US_IL_EZPASSIL IL, USA.
US_IL_IPASS IL, USA.
US_IN_EZPASSIN IN, USA.
US_KS_BESTPASS_HORIZON KS, USA.
US_KS_KTAG KS, USA.
US_KS_NATIONALPASS KS, USA.
US_KS_PREPASS_ELITEPASS KS, USA.
US_LA_GEAUXPASS LA, USA.
US_LA_TOLL_TAG LA, USA.
US_MA_EZPASSMA MA, USA.
US_MD_EZPASSMD MD, USA.
US_ME_EZPASSME ME, USA.
US_MI_AMBASSADOR_BRIDGE_PREMIER_COMMUTER_CARD MI, USA.
US_MI_GROSSE_ILE_TOLL_BRIDGE_PASS_TAG MI, USA.
US_MI_IQ_PROX_CARD MI, USA.
US_MI_MACKINAC_BRIDGE_MAC_PASS MI, USA.
US_MI_NEXPRESS_TOLL MI, USA.
US_MN_EZPASSMN MN, USA.
US_NC_EZPASSNC NC, USA.
US_NC_PEACH_PASS NC, USA.
US_NC_QUICK_PASS NC, USA.
US_NH_EZPASSNH NH, USA.
US_NJ_DOWNBEACH_EXPRESS_PASS NJ, USA.
US_NJ_EZPASSNJ NJ, USA.
US_NY_EXPRESSPASS NY, USA.
US_NY_EZPASSNY NY, USA.
US_OH_EZPASSOH OH, USA.
US_PA_EZPASSPA PA, USA.
US_RI_EZPASSRI RI, USA.
US_SC_PALPASS SC, USA.
US_TX_BANCPASS TX, USA.
US_TX_DEL_RIO_PASS TX, USA.
US_TX_EFAST_PASS TX, USA.
US_TX_EAGLE_PASS_EXPRESS_CARD TX, USA.
US_TX_EPTOLL TX, USA.
US_TX_EZ_CROSS TX, USA.
US_TX_EZTAG TX, USA.
US_TX_LAREDO_TRADE_TAG TX, USA.
US_TX_PLUSPASS TX, USA.
US_TX_TOLLTAG TX, USA.
US_TX_TXTAG TX, USA.
US_TX_XPRESS_CARD TX, USA.
US_UT_ADAMS_AVE_PARKWAY_EXPRESSCARD UT, USA.
US_VA_EZPASSVA VA, USA.
US_WA_BREEZEBY WA, USA.
US_WA_GOOD_TO_GO WA, USA.
US_WV_EZPASSWV WV, USA.
US_WV_MEMORIAL_BRIDGE_TICKETS WV, USA.
US_WV_NEWELL_TOLL_BRIDGE_TICKET WV, USA.

Units

A set of values that specify the unit of measure used in the display.

Enums
UNITS_UNSPECIFIED Units of measure not specified. Defaults to the unit of measure inferred from the request.
METRIC Metric units of measure.
IMPERIAL Imperial (English) units of measure.

VehicleEmissionType

A set of values describing the vehicle's emission type. Applies only to the DRIVE travel mode.

Enums
VEHICLE_EMISSION_TYPE_UNSPECIFIED No emission type specified. Default to GASOLINE.
GASOLINE Gasoline/petrol fueled vehicle.
ELECTRIC Electricity powered vehicle.
HYBRID Hybrid fuel (such as gasoline + electric) vehicle.

VehicleInfo

Encapsulates the vehicle information, such as the license plate last character.

Fields
emission_type

VehicleEmissionType

Describes the vehicle's emission type. Applies only to the DRIVE travel mode.

Waypoint

Encapsulates a waypoint. Waypoints mark both the beginning and end of a route, and include intermediate stops along the route.

Fields
via

bool

Marks this waypoint as a milestone rather a stopping point. For each non-via waypoint in the request, the response appends an entry to the legs array to provide the details for stopovers on that leg of the trip. Set this value to true when you want the route to pass through this waypoint without stopping over. Via waypoints don't cause an entry to be added to the legs array, but they do route the journey through the waypoint. You can only set this value on waypoints that are intermediates. The request fails if you set this field on terminal waypoints. If ComputeRoutesRequest.optimize_waypoint_order is set to true then this field cannot be set to true; otherwise, the request fails.

vehicle_stopover

bool

Indicates that the waypoint is meant for vehicles to stop at, where the intention is to either pickup or drop-off. When you set this value, the calculated route won't include non-via waypoints on roads that are unsuitable for pickup and drop-off. This option works only for DRIVE and TWO_WHEELER travel modes, and when the location_type is location.

side_of_road

bool

Indicates that the location of this waypoint is meant to have a preference for the vehicle to stop at a particular side of road. When you set this value, the route will pass through the location so that the vehicle can stop at the side of road that the location is biased towards from the center of the road. This option works only for 'DRIVE' and 'TWO_WHEELER' travel modes, and when the 'location_type' is set to 'location'.

Union field location_type. Different ways to represent a location. location_type can be only one of the following:
location

Location

A point specified using geographic coordinates, including an optional heading.

place_id

string

The POI Place ID associated with the waypoint.