Package google.maps.routing.v2

  • The Routes API offers two primary methods: ComputeRouteMatrix for calculating route information between multiple origins and destinations and ComputeRoutes for finding routes between a single origin and destination, including optional waypoints.

  • Developers can customize route calculations by specifying travel mode, routing preferences (like traffic awareness), departure/arrival times, and route modifiers such as avoiding tolls or highways.

  • Response field masks are crucial for performance and stability, allowing developers to retrieve only the necessary data, reducing latency and response size.

  • The API provides comprehensive route details including distance, duration, traffic conditions, navigation instructions, toll information, and alternative routes when available.

  • Various data structures and enumerations support the API's functionality, including waypoints, route modifiers, transit preferences, polyline encodings, and toll passes, enabling detailed route planning and customization.

Index

Routes

The Routes API.

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.
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.

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 sum of the number of origins + the number of destinations specified as either place_id or address must be no greater than 50.
  • The product of number of origins × number of destinations must be no greater than 625 in any case.
  • The product of the number of origins × number of destinations must be no greater than 100 if routing_preference is set to TRAFFIC_AWARE_OPTIMAL.
  • The product of the number of origins × number of destinations must be no greater than 100 if travel_mode is set to TRANSIT.
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. 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, then this value defaults to the time that you made the request. NOTE: You can only specify a departure_time in the past when RouteTravelMode is set to TRANSIT.

arrival_time

Timestamp

Optional. The arrival time. NOTE: Can only be set when RouteTravelMode is set to TRANSIT. You can specify either departure_time or arrival_time, but not both.

language_code

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 display language is inferred from the location of the first origin.

region_code

string

Optional. The region code, specified as a ccTLD ("top-level domain") two-character value. For more information see Country code top-level domains.

units

Units

Optional. Specifies the units of measure for the display fields.

extra_computations[]

ExtraComputation

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 the field mask to be returned in the response.

traffic_model

TrafficModel

Optional. Specifies the assumptions to use when calculating time in traffic. This setting affects the value returned in the duration field in the RouteMatrixElement which contains the predicted time in traffic based on historical averages. TrafficModel is only available for requests that have set RoutingPreference to TRAFFIC_AWARE_OPTIMAL and RouteTravelMode to DRIVE. Defaults to BEST_GUESS if traffic is requested and TrafficModel is not specified.

transit_preferences

TransitPreferences

Optional. Specifies preferences that influence the route returned for TRANSIT routes. NOTE: You can only specify a transit_preferences when RouteTravelMode is set to TRANSIT.

ExtraComputation

Extra computations to perform while completing the request.

Enums
EXTRA_COMPUTATION_UNSPECIFIED Not used. Requests containing this value will fail.
TOLLS Toll information for the matrix element(s).

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. 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. NOTE: You can only specify a departure_time in the past when RouteTravelMode is set to TRANSIT. Transit trips are available for up to 7 days in the past or 100 days in the future.

arrival_time

Timestamp

Optional. The arrival time. NOTE: This field is ignored when requests specify a RouteTravelMode other than TRANSIT. You can specify either departure_time or arrival_time, but not both. Transit trips are available for up to 7 days in the past or 100 days in the future.

compute_alternative_routes

bool

Optional. Specifies whether to calculate alternate routes in addition to the route. No alternative routes are returned for requests that have intermediate waypoints.

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 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.

region_code

string

Optional. The region code, specified as a ccTLD ("top-level domain") two-character value. For more information see Country code top-level domains.

units

Units

Optional. Specifies the units of measure for the display fields. These fields include 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 first origin.

optimize_waypoint_order

bool

Optional. If set to true, the service attempts to minimize the overall cost of the route by re-ordering the specified intermediate waypoints. The request fails if any of the intermediate waypoints is a via waypoint. Use ComputeRoutesResponse.Routes.optimized_intermediate_waypoint_index to find the new ordering. If ComputeRoutesResponseroutes.optimized_intermediate_waypoint_index is not requested in the X-Goog-FieldMask header, the request fails. If optimize_waypoint_order is set to false, ComputeRoutesResponse.optimized_intermediate_waypoint_index will be empty.

requested_reference_routes[]

ReferenceRoute

Optional. Specifies what reference routes to calculate as part of the request in addition to the default route. A reference route is a route with a different route calculation objective than the default route. For example a FUEL_EFFICIENT reference route calculation takes into account various parameters that would generate an optimal fuel efficient route. When using this feature, look for route_labels on the resulting routes.

extra_computations[]

ExtraComputation

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 the field mask to be returned in the response.

traffic_model

TrafficModel

Optional. Specifies the assumptions to use when calculating time in traffic. This setting affects the value returned in the duration field in the Route and RouteLeg which contains the predicted time in traffic based on historical averages. TrafficModel is only available for requests that have set RoutingPreference to TRAFFIC_AWARE_OPTIMAL and RouteTravelMode to DRIVE. Defaults to BEST_GUESS if traffic is requested and TrafficModel is not specified.

transit_preferences

TransitPreferences

Optional. Specifies preferences that influence the route returned for TRANSIT routes. NOTE: You can only specify a transit_preferences when RouteTravelMode is set to TRANSIT.

ExtraComputation

Extra computations to perform while completing the request.

Enums
EXTRA_COMPUTATION_UNSPECIFIED Not used. Requests containing this value will fail.
TOLLS Toll information for the route(s).
FUEL_CONSUMPTION Estimated fuel consumption for the route(s).
TRAFFIC_ON_POLYLINE Traffic aware polylines for the route(s).
HTML_FORMATTED_NAVIGATION_INSTRUCTIONS NavigationInstructions presented as a formatted HTML text string. This content is meant to be read as-is. This content is for display only. Do not programmatically parse it.
FLYOVER_INFO_ON_POLYLINE Flyover information for the route(s). The routes.polyline_details.flyover_info fieldmask must be specified to return this information. This data will only currently be populated for certain metros in India. This feature is experimental, and the SKU/charge is subject to change.
NARROW_ROAD_INFO_ON_POLYLINE Narrow road information for the route(s). The routes.polyline_details.narrow_road_info fieldmask must be specified to return this information. This data will only currently be populated for certain metros in India. This feature is experimental, and the SKU/charge is subject to change.

ReferenceRoute

A supported reference route on the ComputeRoutesRequest.

Enums
REFERENCE_ROUTE_UNSPECIFIED Not used. Requests containing this value fail.
FUEL_EFFICIENT Fuel efficient route.
SHORTER_DISTANCE

Route with shorter travel distance. This is an experimental feature.

For DRIVE requests, this feature prioritizes shorter distance over driving comfort. For example, it may prefer local roads instead of highways, take dirt roads, cut through parking lots, etc. This feature does not return any maneuvers that Google Maps knows to be illegal.

For BICYCLE and TWO_WHEELER requests, this feature returns routes similar to those returned when you don't specify requested_reference_routes.

This feature is not compatible with any other travel modes, via intermediate waypoints, or optimize_waypoint_order; such requests will fail. However, you can use it with any routing_preference.

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.

geocoding_results

GeocodingResults

Contains geocoding response info for waypoints specified as addresses.

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 RoutingPreference was used to compute the response.
FALLBACK_TRAFFIC_AWARE Indicates the TRAFFIC_AWARE RoutingPreference was used to compute the response.

GeocodedWaypoint

Details about the locations used as waypoints. Only populated for address waypoints. Includes details about the geocoding results for the purposes of determining what the address was geocoded to.

Fields
geocoder_status

Status

Indicates the status code resulting from the geocoding operation.

type[]

string

The type(s) of the result, in the form of zero or more type tags. Supported types: Address types and address component types.

partial_match

bool

Indicates that the geocoder did not return an exact match for the original request, though it was able to match part of the requested address. You may wish to examine the original request for misspellings and/or an incomplete address.

place_id

string

The place ID for this result.

intermediate_waypoint_request_index

int32

The index of the corresponding intermediate waypoint in the request. Only populated if the corresponding waypoint is an intermediate waypoint.

GeocodingResults

Contains GeocodedWaypoints for origin, destination and intermediate waypoints. Only populated for address waypoints.

Fields
origin

GeocodedWaypoint

Origin geocoded waypoint.

destination

GeocodedWaypoint

Destination geocoded waypoint.

intermediates[]

GeocodedWaypoint

A list of intermediate geocoded waypoints each containing an index field that corresponds to the zero-based position of the waypoint in the order they were specified in the request.

LocalizedTime

Localized description of time.

Fields
time

LocalizedText

The time specified as a string in a given time zone.

time_zone

string

Contains the time zone. The value is the name of the time zone as defined in the IANA Time Zone Database, e.g. "America/New_York".

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 specifies the side of the road 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, and so on. You can use this field only for DRIVE and TWO_WHEELER RouteTravelMode.

Maneuver

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

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.
DEPART Initial maneuver.
NAME_CHANGE Used to indicate a street name change.

Encapsulates navigation instructions for a RouteLegStep.

Fields
maneuver

Maneuver

Encapsulates the navigation instructions for the current step (for example, turn left, merge, or straight). 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.

PolylineDetails

Details corresponding to a given index or contiguous segment of a polyline. Given a polyline with points P_0, P_1, ... , P_N (zero-based index), the PolylineDetails defines an interval and associated metadata.

Fields
flyover_info[]

FlyoverInfo

Flyover details along the polyline.

narrow_road_info[]

NarrowRoadInfo

Narrow road details along the polyline.

FlyoverInfo

Encapsulates information about flyovers along the polyline.

Fields
flyover_presence

RoadFeatureState

Output only. Denotes whether a flyover exists for a given stretch of the polyline.

polyline_point_index

PolylinePointIndex

The location of flyover related information along the polyline.

NarrowRoadInfo

Encapsulates information about narrow roads along the polyline.

Fields
narrow_road_presence

RoadFeatureState

Output only. Denotes whether a narrow road exists for a given stretch of the polyline.

polyline_point_index

PolylinePointIndex

The location of narrow road related information along the polyline.

PolylinePointIndex

Encapsulates the start and end indexes for a polyline detail. For instances where the data corresponds to a single point, start_index and end_index will be equal.

Fields
start_index

int32

The start index of this detail in the polyline.

end_index

int32

The end index of this detail in the polyline.

RoadFeatureState

Encapsulates the states of road features along a stretch of polyline.

Enums
ROAD_FEATURE_STATE_UNSPECIFIED The road feature's state was not computed (default value).
EXISTS The road feature exists.
DOES_NOT_EXIST The road feature does not exist.

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

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

Fields
route_labels[]

RouteLabel

Labels for the Route that are useful to identify specific properties of the route to compare against others.

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 travel through the route without taking traffic conditions into consideration.

polyline

Polyline

The overall route polyline. This polyline is 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 you set optimize_waypoint_order to true, this field contains the optimized ordering of intermediate waypoints. Otherwise, this field is empty. For example, if you give an input of Origin: LA; Intermediate waypoints: 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 provided in the input.

localized_values

RouteLocalizedValues

Text representations of properties of the Route.

route_token

string

An opaque token that can be passed to Navigation SDK to reconstruct the route during navigation, and, in the event of rerouting, honor the original intention when the route was created. Treat this token as an opaque blob. Don't compare its value across requests as its value may change even if the service returns the exact same route.

NOTE: Route.route_token is only available for requests that have set ComputeRoutesRequest.routing_preference to TRAFFIC_AWARE or TRAFFIC_AWARE_OPTIMAL. Route.route_token is not supported for requests that have Via waypoints.

polyline_details

PolylineDetails

Contains information about details along the polyline.

RouteLocalizedValues

Text representations of certain properties.

Fields
distance

LocalizedText

Travel distance represented in text form.

duration

LocalizedText

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 static_duration.

static_duration

LocalizedText

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

transit_fare

LocalizedText

Transit fare represented in text form.

RouteLabel

Labels for the Route that are useful to identify specific properties of the route to compare against others.

Enums
ROUTE_LABEL_UNSPECIFIED Default - not used.
DEFAULT_ROUTE The default "best" route returned for the route computation.
DEFAULT_ROUTE_ALTERNATE An alternative to the default "best" route. Routes like this will be returned when compute_alternative_routes is specified.
FUEL_EFFICIENT Fuel efficient route. Routes labeled with this value are determined to be optimized for Eco parameters such as fuel consumption.
SHORTER_DISTANCE Shorter travel distance route. This is an experimental feature.

RouteLeg

Contains 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 travel through the leg, calculated without taking traffic conditions into consideration.

polyline

Polyline

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

start_location

Location

The start location of this leg. This location 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 location 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

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

localized_values

RouteLegLocalizedValues

Text representations of properties of the RouteLeg.

steps_overview

StepsOverview

Overview information about the steps in this RouteLeg. This field is only populated for TRANSIT routes.

RouteLegLocalizedValues

Text representations of certain properties.

Fields
distance

LocalizedText

Travel distance represented in text form.

duration

LocalizedText

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 static_duration.

static_duration

LocalizedText

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

StepsOverview

Provides overview information about a list of RouteLegSteps.

Fields
multi_modal_segments[]

MultiModalSegment

Summarized information about different multi-modal segments of the RouteLeg.steps. This field is not populated if the RouteLeg does not contain any multi-modal segments in the steps.

MultiModalSegment

Provides summarized information about different multi-modal segments of the RouteLeg.steps. A multi-modal segment is defined as one or more contiguous RouteLegStep that have the same RouteTravelMode. This field is not populated if the RouteLeg does not contain any multi-modal segments in the steps.

Fields
navigation_instruction

NavigationInstruction

NavigationInstruction for the multi-modal segment.

travel_mode

RouteTravelMode

The travel mode of the multi-modal segment.

step_start_index

int32

The corresponding RouteLegStep index that is the start of a multi-modal segment.

step_end_index

int32

The corresponding RouteLegStep index that is the end of a multi-modal segment.

RouteLegStep

Contains 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

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

localized_values

RouteLegStepLocalizedValues

Text representations of properties of the RouteLegStep.

transit_details

RouteLegStepTransitDetails

Details pertaining to this step if the travel mode is TRANSIT.

travel_mode

RouteTravelMode

The travel mode used for this step.

RouteLegStepLocalizedValues

Text representations of certain properties.

Fields
distance

LocalizedText

Travel distance represented in text form.

static_duration

LocalizedText

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

RouteLegStepTransitDetails

Additional information for the RouteLegStep related to TRANSIT routes.

Fields
stop_details

TransitStopDetails

Information about the arrival and departure stops for the step.

localized_values

TransitDetailsLocalizedValues

Text representations of properties of the RouteLegStepTransitDetails.

headsign

string

Specifies the direction in which to travel on this line as marked on the vehicle or at the departure stop. The direction is often the terminus station.

headway

Duration

Specifies the expected time as a duration between departures from the same stop at this time. For example, with a headway seconds value of 600, you would expect a ten minute wait if you should miss your bus.

transit_line

TransitLine

Information about the transit line used in this step.

stop_count

int32

The number of stops from the departure to the arrival stop. This count includes the arrival stop, but excludes the departure stop. For example, if your route leaves from Stop A, passes through stops B and C, and arrives at stop D,

stop_count

returns 3.

trip_short_text

string

The text that appears in schedules and sign boards to identify a transit trip to passengers. The text should uniquely identify a trip within a service day. For example, "538" is the trip_short_text of the Amtrak train that leaves San Jose, CA at 15:10 on weekdays to Sacramento, CA.

TransitDetailsLocalizedValues

Localized descriptions of values for RouteTransitDetails.

Fields
arrival_time

LocalizedTime

Time in its formatted text representation with a corresponding time zone.

departure_time

LocalizedTime

Time in its formatted text representation with a corresponding time zone.

TransitStopDetails

Details about the transit stops for the RouteLegStep.

Fields
arrival_stop

TransitStop

Information about the arrival stop for the step.

arrival_time

Timestamp

The estimated time of arrival for the step.

departure_stop

TransitStop

Information about the departure stop for the step.

departure_time

Timestamp

The estimated time of departure for the step.

RouteLegStepTravelAdvisory

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

Fields
speed_reading_intervals[]

SpeedReadingInterval

NOTE: This field is not currently populated.

RouteLegTravelAdvisory

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

Fields
toll_info

TollInfo

Contains information about tolls on the specific RouteLeg. This field is only populated if we expect there are tolls on the RouteLeg and TOLLS is included in the request's ComputeRoutesRequest.extra_computations. 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 toll_info does not exist, then there is no toll on the RouteLeg.

speed_reading_intervals[]

SpeedReadingInterval

Speed reading intervals indicating traffic density. This field is only populated for requests when the request has a TRAFFIC_AWARE or TRAFFIC_AWARE_OPTIMAL ComputeRoutesRequest.routing_preference value, and TRAFFIC_ON_POLYLINE is included in the ComputeRoutesRequest.extra_computations. The intervals cover the entire polyline of the RouteLeg 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

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

Fields
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