Routes API 在计算路线时,会采用航点和 您作为输入提供的配置参数然后,该 API 会返回响应 (包含 default 路由以及一个或多个备用路由)。
您的响应可以包含不同类型的路线和其他数据,具体取决于您请求的字段:
在回答中添加此内容 | 请参阅此文档 |
---|---|
最省油或最节能的路线(取决于车辆的引擎类型)。 | 配置环保路线 |
最多 3 条备选路线 | 请求备选路线 |
整条路线、路线的每段路程和每个路段的多段线 | 请求路线多段线 |
估算的过路费,已考虑到驾驶员或车辆可享受的所有过路费折扣或通行卡。 | 计算通行费 |
根据语言代码和度量单位(英制或 指标)。 | 请求本地化值 |
如需将导航说明的格式设置为 HTML 文本字符串,请将 HTML_FORMATTED_NAVIGATION_INSTRUCTIONS 添加到
extraComputations 。 |
额外计算 |
如需查看输入选项的完整列表,请参阅可用的路线选项 和 请求正文。
您可以使用回答向客户提供相关信息 以选择符合其要求的路由。
关于字段掩码
调用方法来计算路线时,您必须指定一个字段掩码,以定义您希望在响应中返回哪些字段。没有任何 默认返回字段列表。如果您省略此列表,这些方法会返回 错误。
本文档中的示例展示了整个响应对象, 字段掩码。在生产环境中,您的响应 仅包含您在字段掩码中明确指定的字段。
如需了解详情,请参阅选择要返回的信息。
关于显示版权信息
在向用户显示结果时,您必须添加以下版权声明:
Powered by Google, ©YEAR Google
例如:
Powered by Google, ©2023 Google
关于路线、路段和步数
在查看 Routes API 返回的响应之前, 您应该对路由的组成部分有所了解:
您的响应可能包含下列各个路由组件的相关信息:
路线:从起点路径点经过任何中间路径点到达目的地路径点的整个行程。路线由一个或多个路程组成。
航段:路线中从一个航点到下一个航点的路径。每段路程都包含一个或多个离散的路段。
路线包含从每个航点到下一个航点的路径的单独路段。例如,如果路线包含一个起点航点和一个 那么,该路线会包含一段路程。对于每个 您向路线中添加起点和终点的其他航点, 称为中间航点,API 会添加一段单独的路程
API 不会为直通中间航点添加路程。对于 例如,包含起点航点、直通 而目标航点仅包含一段路程 同时经过航点。如需详细了解透视航点,请参阅定义透视航点。
步骤:路线路段中的单个指令。一步是 路线的原子单位。例如,步骤可以指示“在 Main Street 上左转”。
响应中的内容
JSON 对象 表示 API 响应包含以下顶级属性:
routes
,类型元素数组 路由。routes
数组包含 API 返回的每条路线的一个元素。该数组最多可包含五个元素:默认路线、 环保路线和最多 3 条备选路线。geocodingResults
,类型元素数组 GeocodingResults。 针对请求中的每个位置(出发地、目的地或中间位置) (以地址字符串或 Plus Code 形式指定), API 会执行地点 ID 查询。此数组的每个元素都包含与相应位置对应的地点 ID。请求中的位置指定为 不包括地点 ID 或纬度/经度坐标。 如果您已使用地点 ID 或纬度和经度指定所有位置 坐标,则不提供此数组。fallbackInfo
,类型 FallbackInfo. 如果 API 无法根据所有输入属性计算出路线, 它可能会回退为使用其他计算方法。后备时 模式,则此字段包含有关后备广告的详细信息 响应。否则,此字段将处于未设置状态。
响应的格式如下:
{ // The routes array. "routes": [ { object (Route) } ], // The place ID lookup results. "geocodingResults": [ { object (GeocodedWaypoint) } ], // The fallback property. "fallbackInfo": { object (FallbackInfo) } }
解密路由数组
响应包含 routes
数组,其中每个数组元素的类型均为 Route。每个数组元素都表示从起点到终点的一条完整路线。通过
API 始终返回至少一个路由,称为默认路由。
您可以请求其他路由。如果您请求获取
环保路线,那么数组可以包含两个元素:
默认路线和环保路线。或者,将 computeAlternativeRoutes
设置为
true
,用于向响应添加最多三个备选路由。
数组中的每个路线都通过 routeLabels
数组属性进行标识:
值 | 说明 |
---|---|
DEFAULT_ROUTE |
标识默认路由。 |
FUEL_EFFICIENT |
标识环保路线。 |
DEFAULT_ROUTE_ALTERNATE |
I 表示备选路线。 |
legs
数组包含路线每段路线的定义。其余属性(例如 distanceMeters
、duration
和 polyline,
)包含有关整个路线的信息:
{ "routeLabels": [ enum (RouteLabel) ], "legs": [ { object (RouteLeg) } ], "distanceMeters": integer, "duration": string, "routeLabels": [string], "staticDuration": string, "polyline": { object (Polyline) }, "description": string, "warnings": [ string ], "viewport": { object (Viewport) }, "travelAdvisory": { object (RouteTravelAdvisory) } "routeToken": string }
由于当前的驾驶条件和其他因素,默认路线和环保路线可能会相同。在此示例中为 routeLabels
数组
包含 DEFAULT_ROUTE
和 FUEL_EFFICIENT
这两个标签。
{ "routes": [ { "routeLabels": [ "DEFAULT_ROUTE", "FUEL_EFFICIENT" ], … } ] }
了解 legs 数组
响应中的每个 route
都包含一个 legs
数组,其中每个 legs
数组元素的类型为 RouteLeg。数组中的每段路程都定义从一个航点到下一个航点的路径
信息。路线始终至少包含一段路程。
legs
属性包含
steps
数组。其余属性,例如 distanceMeters
、duration
和 polyline
包含有关路程的信息。
{ "distanceMeters": integer, "duration": string, "staticDuration": string, "polyline": { object (Polyline) }, "startLocation": { object (Location) }, "endLocation": { object (Location) }, "steps": [ { object (RouteLegStep) } ], "travelAdvisory": { object (RouteLegTravelAdvisory) } }
了解 steps 数组
响应中的每个路程都包含一个 steps
数组,其中每个 steps
数组
元素的类型
RouteLegStep。
路段对应一段路程。路程始终包含
至少一个步骤。
steps
数组中的每个元素都包含 navigationInstruction
属性,类型为
NavigationInstruction、
其中包含相应步骤说明例如:
"navigationInstruction": { "maneuver": "TURN_LEFT", "instructions": "Turn left toward Frontage Rd" }
instructions
可能包含有关该步骤的更多信息。例如:
"navigationInstruction": { "maneuver": "TURN_SLIGHT_LEFT", "instructions": "Slight left (signs for I-90 W/Worcester)nParts of this road may be closed at certain times or days" }
该步骤中的其余属性用于描述该步骤的相关信息,例如
为 distanceMeters
、duration
和 polyline
:
{ "distanceMeters": integer, "staticDuration": string, "polyline": { object (Polyline) }, "startLocation": { object (Location) }, "endLocation": { object (Location) }, "navigationInstruction": { object (NavigationInstruction) } }
指定步骤说明的语言
该 API 会以本地语言返回路线信息,再音译为 脚本供用户阅读(如有必要),同时遵守首选脚本 语言。地址组成部分均以同一语言返回。
使用
languageCode
请求至 从受支持的语言列表中明确设置路线语言, 语言。Google 会经常更新支持的 因此,此列表可能并不详尽。如果某个名称没有以指定语言提供,API 会使用 最接近的匹配项。
指定的语言可能会影响 API 选择返回的结果集以及结果的返回顺序。通过 地理编码器会根据不同的语言以不同的方式解读缩写,如 街道类型缩写,或在一个 而不是其他语言。例如,utca 和 tér 是 一条匈牙利语的街道
了解 GeocodingResults 数组
针对请求中的每个位置(出发地、目的地或中间位置)
航点)作为地址字符串或 Plus Code 指定,则
API 会尝试查找具有对应地点的最相关位置
ID。geocodingResults
数组的每个元素都包含一个 placeID
字段,其中包含作为地点 ID 的位置信息,以及一个 type
字段,用于指定位置类型,例如 street_address
、premise
或 airport
。
geocodingResults
数组包含以下三个字段:
origin
:如果指定为地址字符串或 Plus 代码,则 出发地的地点 ID。否则,响应中将省略此字段。destination
:如果指定为地址字符串或 Plus 代码, 目的地的地点 ID。否则,系统将从 响应。intermediates
:包含任何中间项目的地点 ID 的数组 以地址字符串或 Plus 代码形式指定的航点。如果您指定 使用地点 ID 或纬度的中间航点,以及 经度坐标,则响应中会省略该坐标。使用响应中的intermediateWaypointRequestIndex
属性确定请求中的哪个中间航点与响应中的地点 ID 相对应。
"geocodingResults": { "origin": { "geocoderStatus": {}, "type": [ enum (Type) ], "placeId": string }, "destination": { "geocoderStatus": {}, "type": [ enum (Type) ], "placeId": string }, "intermediates": [ { "geocoderStatus": {}, "intermediateWaypointRequestIndex": integer, "type": [ enum (Type) ], "placeId": string }, { "geocoderStatus": {}, "intermediateWaypointRequestIndex": integer, "type": [ enum (Type) ], "placeId": string } ] }
了解本地化的回复值
本地化的响应值是一种额外的响应字段 返回的参数值的本地化文本。本地化文本适用于 行程时长、距离和单位制(公制或英制)。您请求 使用字段掩码来本地化值,并且可以指定语言和 单位制或使用 API 推断的值。有关详情,请参阅 LocalizedValues。
例如,如果您将语言代码指定为德语 (de) 和英制
那么 distanceMeters
的值为 49889.7,
还有以德语和
例如“31 Meile”。
以下是本地化值的示例:
{ "localized_values": { "distance": { "text": "31,0 Meile/n" }, "duration": { "text": 38 Minuten}. "static_duration": { "text": 36 Minuten}. } }
如果您未指定语言或单位制,API 将推断语言 和单位:
ComputeRoutes
方法会推断出位置和距离 为起点航点的单位设置值因此,对于美国的路由请求 会推断en-US
种语言和IMPERIAL
个单位。ComputeRouteMatrix
方法默认为“en-US”语言 和 METRIC 单位。