Method: computeRoutes

指定一組終點和中途路線控點,即可傳回主要路線和選用的替代路線。

注意:這個方法需要您在輸入內容中指定回應欄位遮罩。您可以使用網址參數 $fields 或 fields,或使用 HTTP/gRPC 標頭 X-Goog-FieldMask 提供回應欄位遮罩 (請參閱可用的網址參數和標頭)。值是以半形逗號分隔的欄位路徑清單。請參閱如何建構欄位路徑的詳細說明文件。

舉例來說,在這個方法中:

  • 所有可用欄位的欄位遮罩 (供手動檢查):X-Goog-FieldMask: *
  • 路線層級時間、距離和折線的欄位遮罩 (正式環境設定範例):X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.polyline.encodedPolyline

Google 不建議使用萬用字元 (*) 回應欄位遮罩,或在頂層指定欄位遮罩 (routes),原因如下:

  • 只選取所需欄位有助於伺服器節省運算週期,讓我們能以較低的延遲時間將結果傳回給您。
  • 在實際執行作業中只選取所需欄位,可確保延遲效能穩定。我們日後可能會新增更多回應欄位,而這些新欄位可能需要額外的運算時間。如果您選取所有欄位,或選取頂層的所有欄位,系統可能會自動在回應中加入我們新增的欄位,導致效能降低。
  • 只選取需要的欄位可縮小回應大小,進而提高網路輸送量。

HTTP 要求

POST https://routes.googleapis.com/directions/v2:computeRoutes

這個網址使用 gRPC 轉碼語法。

要求主體

要求主體會包含結構如下的資料:

JSON 表示法
{
  "origin": {
    object (Waypoint)
  },
  "destination": {
    object (Waypoint)
  },
  "intermediates": [
    {
      object (Waypoint)
    }
  ],
  "travelMode": enum (RouteTravelMode),
  "routingPreference": enum (RoutingPreference),
  "polylineQuality": enum (PolylineQuality),
  "polylineEncoding": enum (PolylineEncoding),
  "departureTime": string,
  "arrivalTime": string,
  "computeAlternativeRoutes": boolean,
  "routeModifiers": {
    object (RouteModifiers)
  },
  "languageCode": string,
  "regionCode": string,
  "units": enum (Units),
  "optimizeWaypointOrder": boolean,
  "requestedReferenceRoutes": [
    enum (ReferenceRoute)
  ],
  "extraComputations": [
    enum (ExtraComputation)
  ],
  "trafficModel": enum (TrafficModel),
  "transitPreferences": {
    object (TransitPreferences)
  }
}
欄位
origin

object (Waypoint)

必填。起點航點。

destination

object (Waypoint)

必填。目的地路線控點。

intermediates[]

object (Waypoint)

(選用步驟) 路線上的一組路線控點 (不含終點),可停靠或經過。最多可新增 25 個中途停靠點。

travelMode

enum (RouteTravelMode)

(選用步驟) 指定交通方式。

routingPreference

enum (RoutingPreference)

(選用步驟) 指定如何計算路線。伺服器會嘗試使用所選的路線偏好設定計算路線。如果路由偏好設定導致錯誤或延遲時間過長,系統就會傳回錯誤。只有在 travelMode 為 DRIVE 或 TWO_WHEELER 時,才能指定這個選項,否則要求會失敗。

polylineQuality

enum (PolylineQuality)

(選用步驟) 指定折線品質的偏好設定。

polylineEncoding

enum (PolylineEncoding)

(選用步驟) 指定折線的偏好編碼方式。

departureTime

string (Timestamp format)

(選用步驟) 出發時間。如未設定這個值,系統會將這個值預設為您提出要求的時間。注意:只有在 RouteTravelMode 設為 TRANSIT 時,才能指定過去的 departureTime。系統最多會顯示過去 7 天或未來 100 天的大眾運輸行程。

使用 RFC 3339,產生的輸出內容一律會經過 Z 正規化,並使用 0、3、6 或 9 個小數位數,也接受「Z」以外的偏移量。範例:"2014-10-02T15:01:23Z"、"2014-10-02T15:01:23.045123456Z" 或 "2014-10-02T15:01:23+05:30"。

arrivalTime

string (Timestamp format)

(選用步驟) 抵達時間。注意:如果要求指定的 RouteTravelMode 不是 TRANSIT,系統會忽略這個欄位。你可以指定 departureTime 或 arrivalTime,但不能同時指定兩者。系統最多會顯示過去 7 天或未來 100 天的大眾運輸行程。

使用 RFC 3339,產生的輸出內容一律會經過 Z 正規化,並使用 0、3、6 或 9 個小數位數,也接受「Z」以外的偏移量。範例:"2014-10-02T15:01:23Z"、"2014-10-02T15:01:23.045123456Z" 或 "2014-10-02T15:01:23+05:30"。

computeAlternativeRoutes

boolean

(選用步驟) 指定是否要計算替代路線。如果要求包含中繼路線控點,系統不會傳回替代路線。

routeModifiers

object (RouteModifiers)

(選用步驟) 一組要滿足的條件,會影響路線的計算方式。

languageCode

string

(選用步驟) BCP-47 語言代碼,例如「en-US」或「sr-Latn」。詳情請參閱「Unicode 語言代碼」。如需支援語言清單,請參閱「語言支援」。如未提供這個值,系統會根據路線要求的地點推斷顯示語言。

regionCode

string

(選用步驟) 區碼,指定為 ccTLD (「頂層網域」) 的兩位字元值。詳情請參閱「國家/地區代碼頂層網域」。

units

enum (Units)

(選用步驟) 指定顯示欄位的測量單位。這些欄位包括 NavigationInstruction 中的 instruction 欄位。路線、路段、步距和時間長度所用的度量單位不會受到這個值影響。如未提供這個值,系統會根據第一個來源的位置推斷顯示單位。

optimizeWaypointOrder

boolean

(選用步驟) 如果設為 true,服務會重新排序指定的中途路線控點,盡可能降低路線的整體成本。如果任何中繼路線控點是 via 路線控點,要求就會失敗。使用 ComputeRoutesResponse.routes.optimized_intermediate_waypoint_index 尋找新的排序方式。如果 ComputeRoutesResponse.routes.optimized_intermediate_waypoint_index 未在 X-Goog-FieldMask 標頭中要求,要求就會失敗。如果 optimizeWaypointOrder 設為 false,ComputeRoutesResponse.optimized_intermediate_waypoint_index 會是空白。

requestedReferenceRoutes[]

enum (ReferenceRoute)

(選用步驟) 指定要在要求中計算哪些參考路線 (預設路線除外)。參考路線是指路線計算目標與預設路線不同的路線。舉例來說,FUEL_EFFICIENT 參考路線計算會考量各種參數,產生最佳的省油路線。使用這項功能時,請在路線結果中尋找 routeLabels。

extraComputations[]

enum (ExtraComputation)

(選用步驟) 可用於完成要求的額外運算清單。注意:這些額外運算可能會在回應中傳回額外欄位。如要在回應中傳回這些額外欄位,也必須在欄位遮罩中指定。

trafficModel

enum (TrafficModel)

(選用步驟) 指定計算交通時間時要採用的假設。這項設定會影響 Route 和 RouteLeg 中時間長度欄位傳回的值,其中包含根據歷來平均值預估的交通時間。TrafficModel 僅適用於將 RoutingPreference 設為 TRAFFIC_AWARE_OPTIMAL,並將 RouteTravelMode 設為 DRIVE 的要求。如果要求流量,但未指定 TrafficModel,系統會預設為 BEST_GUESS。

transitPreferences

object (TransitPreferences)

(選用步驟) 指定偏好設定,影響 TRANSIT 路線傳回的路線。注意:只有在 RouteTravelMode 設為 TRANSIT 時,才能指定 transitPreferences。

回應主體

v2.computeRoutes 回覆訊息。

如果成功,回應主體會含有以下結構的資料:

JSON 表示法
{
  "routes": [
    {
      object (Route)
    }
  ],
  "fallbackInfo": {
    object (FallbackInfo)
  },
  "geocodingResults": {
    object (GeocodingResults)
  }
}
欄位
routes[]

object (Route)

如果您指定 compute_alternatives_routes,這個陣列最多會包含三條計算出的路線;如果您未指定,則只會包含一條路線。如果這個陣列包含多個項目,第一個項目就是最建議的路線。如果陣列為空白,表示系統找不到路線。

fallbackInfo

object (FallbackInfo)

有時伺服器無法根據所有輸入偏好設定計算路線結果,可能會改用其他計算方式。使用備援模式時,這個欄位會包含備援回覆的詳細資訊。否則這個欄位不會設定。

geocodingResults

object (GeocodingResults)

包含以地址形式指定的路線控點地理編碼回應資訊。

PolylineQuality

一組指定折線品質的值。

列舉
POLYLINE_QUALITY_UNSPECIFIED 未指定折線品質偏好設定。預設值為 OVERVIEW。
HIGH_QUALITY 指定高品質折線,這類折線是由比 OVERVIEW 更多的點組成,但會增加回應大小。需要更精確的值時,請使用這個值。
OVERVIEW 指定概覽折線,這條折線是由少數幾個點組成。顯示路線總覽時,請使用這個值。相較於使用 HIGH_QUALITY 選項,這個選項的要求延遲時間較短。

PolylineEncoding

指定要傳回的折線偏好類型。

列舉
POLYLINE_ENCODING_UNSPECIFIED 未指定折線類型偏好設定。預設值為 ENCODED_POLYLINE。
ENCODED_POLYLINE 指定使用折線編碼演算法編碼的折線。
GEO_JSON_LINESTRING 使用 GeoJSON LineString 格式指定折線

ReferenceRoute

ComputeRoutesRequest 中的支援參考路線。

列舉
REFERENCE_ROUTE_UNSPECIFIED 未使用。如果要求包含這個值,就會失敗。
FUEL_EFFICIENT 節能路線。
SHORTER_DISTANCE

行車距離較短的路線。這是實驗功能。

如果是 DRIVE 要求,這項功能會優先選擇距離較短的路線,而非駕駛舒適度。例如,系統可能會偏好使用當地道路而非高速公路、行駛泥土路、穿過停車場等。這項功能不會傳回任何 Google 地圖已知違法的動作。

如果是 BICYCLE 和 TWO_WHEELER 要求,這項功能會傳回與未指定 requestedReferenceRoutes 時類似的路徑。

這項功能不支援其他交通方式、中途停靠點或 optimizeWaypointOrder,因此相關要求會失敗。不過,你可以搭配任何 routingPreference 使用。

ExtraComputation

完成要求時要執行的額外計算。日後可能會新增其他值。

列舉
EXTRA_COMPUTATION_UNSPECIFIED 未使用。如果要求包含這個值,就會失敗。
TOLLS 路線的收費資訊。
FUEL_CONSUMPTION 路線的預估燃料耗量。
TRAFFIC_ON_POLYLINE 路線的車流量監測折線。
HTML_FORMATTED_NAVIGATION_INSTRUCTIONS NavigationInstruction 會以格式化的 HTML 文字字串呈現。這類內容應按原樣讀取。這類內容僅供顯示。請勿以程式輔助方式剖析。
FLYOVER_INFO_ON_POLYLINE 路線的立體空照圖資訊。如要傳回這項資訊,必須指定 routes.polyline_details.flyover_info fieldmask。目前只有印度特定都會區會填入這項資料。這項功能仍在實驗階段,SKU/費用可能會有所變更。
NARROW_ROAD_INFO_ON_POLYLINE 路線的狹窄道路資訊。如要傳回這項資訊,必須指定 routes.polyline_details.narrow_road_info fieldmask。目前只有印度特定都會區會填入這項資料。這項功能仍在實驗階段,SKU/費用可能會有所變更。
TUNNEL_INFO_ON_POLYLINE 路線的隧道資訊。如要傳回這項資訊,必須指定 routes.polyline_details.tunnel_info fieldmask。
BRIDGE_INFO_ON_POLYLINE 路線的橋梁資訊。如要傳回這項資訊,必須指定 routes.polyline_details.bridge_info fieldmask。
SKYWAY_INFO_ON_POLYLINE 路線的天橋資訊。如要傳回這項資訊,必須指定 routes.polyline_details.skyway_info fieldmask。

路線

內含路線,由一系列相連的道路路段組成,連接起點、終點和中途路線控點。

JSON 表示法
{
  "routeLabels": [
    enum (RouteLabel)
  ],
  "legs": [
    {
      object (RouteLeg)
    }
  ],
  "distanceMeters": integer,
  "duration": string,
  "staticDuration": string,
  "polyline": {
    object (Polyline)
  },
  "description": string,
  "warnings": [
    string
  ],
  "viewport": {
    object (Viewport)
  },
  "travelAdvisory": {
    object (RouteTravelAdvisory)
  },
  "optimizedIntermediateWaypointIndex": [
    integer
  ],
  "localizedValues": {
    object (RouteLocalizedValues)
  },
  "routeToken": string,
  "polylineDetails": {
    object (PolylineDetails)
  }
}
欄位
routeLabels[]

enum (RouteLabel)

Route 的標籤,有助於找出路線的特定屬性,以便與其他路線比較。

legs[]

object (RouteLeg)

路線是由多個路段 (路線控點之間的路線區段) 組成。每段行程都對應兩個非 via Waypoints 之間的旅程。舉例來說,如果路線沒有中繼路線控點,就只會有一個路段。如果路線包含一個非 via 的中途路線控點,則會有兩個路段。如果路線包含一個 via 中間路線控點,則只有一個路段。路段順序與路線控點順序一致,從 origin 到 intermediates 再到 destination。

distanceMeters

integer

路線的移動距離 (以公尺為單位)。

duration

string (Duration format)

導覽路線所需的時間長度。如果將 routingPreference 設為 TRAFFIC_UNAWARE,這個值就會與 staticDuration 相同。如果將 routingPreference 設為 TRAFFIC_AWARE 或 TRAFFIC_AWARE_OPTIMAL,系統會考量路況來計算這個值。

以秒為單位的時間長度,最多 9 個小數位數,結尾為「s」。示例:"3.5s"。

staticDuration

string (Duration format)

不考慮路況的路線旅行時間。

以秒為單位的時間長度,最多 9 個小數位數,結尾為「s」。示例:"3.5s"。

polyline

object (Polyline)

整體路線的折線。這條折線是所有 legs 的合併折線。

description

string

路線說明。

warnings[]

string

顯示路線時要顯示的警告陣列。

viewport

object (Viewport)

折線的可視區域定界框。

travelAdvisory

object (RouteTravelAdvisory)

路線的其他資訊。

optimizedIntermediateWaypointIndex[]

integer

如果將 optimizeWaypointOrder 設為 true,這個欄位會包含中途路線控點的最佳化順序。否則這個欄位會空白。舉例來說,如果輸入的起點為洛杉磯,中途停靠點為達拉斯、班戈和鳳凰城,目的地為紐約,而最佳化的中途停靠點順序為鳳凰城、達拉斯和班戈,則這個欄位會包含 [2, 0, 1] 值。第一個中途航點的索引為 0。

localizedValues

object (RouteLocalizedValues)

Route 屬性的文字表示法。

routeToken

string

不透明權杖,可傳遞至 Navigation SDK,在導航期間重建路線,並在重新規劃路線時,遵守建立路線時的原始意圖。請將這個權杖視為不透明的 Blob。請勿比較不同要求中的值,因為即使服務傳回完全相同的路線,這個值也可能會變更。

注意:Route.route_token 僅適用於將 ComputeRoutesRequest.routing_preference 設為 TRAFFIC_AWARE 或 TRAFFIC_AWARE_OPTIMAL 的要求。Route.route_token不支援含有中途路線控點的要求。

polylineDetails

object (PolylineDetails)

包含有關折線詳細資料的資訊。

RouteLabel

Route 的標籤,有助於找出路線的特定屬性,以便與其他路線比較。

列舉
ROUTE_LABEL_UNSPECIFIED 預設值 - 未使用。
DEFAULT_ROUTE 路線計算傳回的預設「最佳」路線。
DEFAULT_ROUTE_ALTERNATE 替代預設的「最佳」路線。指定 computeAlternativeRoutes 時,系統會傳回這類路線。
FUEL_EFFICIENT 節能路線。標有這個值的路線會根據燃油消耗量等環保參數進行最佳化。
SHORTER_DISTANCE 路線的行車距離較短。這是實驗功能。

RouteLeg

包含非 via 路線控點之間的區段。

JSON 表示法
{
  "distanceMeters": integer,
  "duration": string,
  "staticDuration": string,
  "polyline": {
    object (Polyline)
  },
  "startLocation": {
    object (Location)
  },
  "endLocation": {
    object (Location)
  },
  "steps": [
    {
      object (RouteLegStep)
    }
  ],
  "travelAdvisory": {
    object (RouteLegTravelAdvisory)
  },
  "localizedValues": {
    object (RouteLegLocalizedValues)
  },
  "stepsOverview": {
    object (StepsOverview)
  }
}
欄位
distanceMeters

integer

路線段的行車距離 (以公尺為單位)。

duration

string (Duration format)

導覽該路段所需的時間長度。如果 route_preference 設為 TRAFFIC_UNAWARE,這個值會與 staticDuration 相同。如果 route_preference 為 TRAFFIC_AWARE 或 TRAFFIC_AWARE_OPTIMAL,系統會考量路況來計算這個值。

以秒為單位的時間長度,最多 9 個小數位數,結尾為「s」。示例:"3.5s"。

staticDuration

string (Duration format)

計算路段的行程時間時,不考量路況。

以秒為單位的時間長度,最多 9 個小數位數,結尾為「s」。示例:"3.5s"。

polyline

object (Polyline)

這個路段的整體折線,包含每個 step 的折線。

startLocation

object (Location)

這個路段的起點。這個位置可能與提供的 origin 不同。舉例來說,如果提供的 origin 不在道路附近,這就是道路上的點。

endLocation

object (Location)

這個路段的終點。這個位置可能與提供的 destination 不同。舉例來說,如果提供的 destination 不在道路附近,這就是道路上的點。

steps[]

object (RouteLegStep)

這個路段中的區隔步驟陣列。每個步驟代表一項導航指示。

travelAdvisory

object (RouteLegTravelAdvisory)

包含應告知使用者的額外資訊,例如路線路段上可能的交通區域限制。

localizedValues

object (RouteLegLocalizedValues)

RouteLeg 屬性的文字表示法。

stepsOverview

object (StepsOverview)

本節將簡要說明這些步驟。RouteLeg這個欄位只會填入 TRANSIT 路線。

折線

封裝編碼折線。

JSON 表示法
{

  // The following is a list of mutually exclusive fields. At most one of the
  // fields will be set in a response:
  "encodedPolyline": string,
  "geoJsonLinestring": {
    object
  }
  // End of mutually exclusive fields.
}
欄位
封裝折線類型。預設為 encoded_polyline。以下列出互斥欄位。回應中最多會設定一個欄位:
encodedPolyline

string

使用折線編碼演算法編碼的折線字串

geoJsonLinestring

object (Struct format)

使用 GeoJSON LineString 格式指定折線。

互斥欄位的結尾。

RouteLegStep

包含 RouteLeg 的片段。每個步驟都對應一項導航指示。路線路段是由步驟組成。

JSON 表示法
{
  "distanceMeters": integer,
  "staticDuration": string,
  "polyline": {
    object (Polyline)
  },
  "startLocation": {
    object (Location)
  },
  "endLocation": {
    object (Location)
  },
  "navigationInstruction": {
    object (NavigationInstruction)
  },
  "travelAdvisory": {
    object (RouteLegStepTravelAdvisory)
  },
  "localizedValues": {
    object (RouteLegStepLocalizedValues)
  },
  "transitDetails": {
    object (RouteLegStepTransitDetails)
  },
  "travelMode": enum (RouteTravelMode)
}
欄位
distanceMeters

integer

這個步驟的移動距離 (以公尺為單位)。在某些情況下,這個欄位可能沒有值。

staticDuration

string (Duration format)

不考量路況,通過這個步驟所需的時間。在某些情況下,這個欄位可能沒有值。

以秒為單位的時間長度,最多 9 個小數位數,結尾為「s」。示例:"3.5s"。

polyline

object (Polyline)

與這個步驟相關聯的折線。

startLocation

object (Location)

這個步驟的起點。

endLocation

object (Location)

這個步驟的終點。

navigationInstruction

object (NavigationInstruction)

導航指示。

travelAdvisory

object (RouteLegStepTravelAdvisory)

包含應告知使用者的額外資訊,例如路段步驟中可能的交通區域限制。

localizedValues

object (RouteLegStepLocalizedValues)

RouteLegStep 屬性的文字表示法。

transitDetails

object (RouteLegStepTransitDetails)

如果交通方式為 TRANSIT,系統會顯示這個步驟的詳細資料。

travelMode

enum (RouteTravelMode)

這個步驟使用的交通方式。

Maneuver

一組值,指定目前步驟要採取的導覽動作 (例如左轉、併入車道或直行)。

列舉
MANEUVER_UNSPECIFIED 未使用。
TURN_SLIGHT_LEFT 稍微向左轉。
TURN_SHARP_LEFT 向左急轉。
UTURN_LEFT 向左迴轉。
TURN_LEFT 向左轉。
TURN_SLIGHT_RIGHT 稍微向右轉。
TURN_SHARP_RIGHT 向右急轉。
UTURN_RIGHT 向右迴轉。
TURN_RIGHT 向右轉。
STRAIGHT 直走。
RAMP_LEFT 走左側匝道。
RAMP_RIGHT 走右側匝道。
MERGE 匯入流量。
FORK_LEFT 走左側岔路。
FORK_RIGHT 走右側岔路。
FERRY 搭乘渡輪。
FERRY_TRAIN 搭乘火車前往渡輪。
ROUNDABOUT_LEFT 在圓環處左轉。
ROUNDABOUT_RIGHT 在圓環處右轉。
DEPART 初始動作。
NAME_CHANGE 用於表示街道名稱變更。
DESTINATION 用於表示抵達目的地。

RouteLegStepTravelAdvisory

包含應告知使用者的額外資訊,例如路段步驟可能有的交通區域限制。

JSON 表示法
{
  "speedReadingIntervals": [
    {
      object (SpeedReadingInterval)
    }
  ]
}
欄位
speedReadingIntervals[]

object (SpeedReadingInterval)

注意:這個欄位目前未填入任何內容。

RouteLegStepLocalizedValues

特定屬性的文字表示法。

JSON 表示法
{
  "distance": {
    object (LocalizedText)
  },
  "staticDuration": {
    object (LocalizedText)
  }
}
欄位
distance

object (LocalizedText)

以文字形式表示的行車距離。

staticDuration

object (LocalizedText)

未考量路況的預估時間,以文字形式表示。

RouteLegStepTransitDetails

RouteLegStep 的相關補充資訊,與 TRANSIT 路線有關。

JSON 表示法
{
  "stopDetails": {
    object (TransitStopDetails)
  },
  "localizedValues": {
    object (TransitDetailsLocalizedValues)
  },
  "headsign": string,
  "headway": string,
  "transitLine": {
    object (TransitLine)
  },
  "stopCount": integer,
  "tripShortText": string
}
欄位
stopDetails

object (TransitStopDetails)

步驟的抵達和出發站資訊。

localizedValues

object (TransitDetailsLocalizedValues)

RouteLegStepTransitDetails 屬性的文字表示法。

headsign

string

指定這條路線的行進方向,如交通工具或出發站上所標示的方向。方向通常是終點站。

headway

string (Duration format)

指定從目前同一站點出發的預計間隔時間。舉例來說,假設間隔秒數值為 600,則表示如果錯過上一班公車,下一班預計要等 10 分鐘。

以秒為單位的時間長度,最多 9 個小數位數,結尾為「s」。示例:"3.5s"。

transitLine

object (TransitLine)

目前步驟中使用的大眾運輸路線相關資訊。

stopCount

integer

從出發站到抵達站的停靠站數量。這項計數包含抵達站,但不包含出發站。舉例來說,如果你的路線是從 A 站出發,途經 B、C 兩站,最後抵達 D 站,則 stopCount 會傳回 3。

tripShortText

string

時間表和看板上顯示的文字,可供乘客識別大眾運輸行程。文字應可明確識別服務日的特定行程。舉例來說,Amtrak 火車「538」tripShortText號於平日 15:10 從加州聖荷西出發,前往加州沙加緬度。

TransitStopDetails

RouteLegStep 的大眾運輸停靠站詳細資料。

JSON 表示法
{
  "arrivalStop": {
    object (TransitStop)
  },
  "arrivalTime": string,
  "departureStop": {
    object (TransitStop)
  },
  "departureTime": string
}
欄位
arrivalStop

object (TransitStop)

步驟的抵達站牌資訊。

arrivalTime

string (Timestamp format)

步驟的預計到達時間。

使用 RFC 3339,產生的輸出內容一律會經過 Z 正規化,並使用 0、3、6 或 9 個小數位數,也接受「Z」以外的偏移量。範例:"2014-10-02T15:01:23Z"、"2014-10-02T15:01:23.045123456Z" 或 "2014-10-02T15:01:23+05:30"。

departureStop

object (TransitStop)

步驟的起點站資訊。

departureTime

string (Timestamp format)

該步驟的預計出發時間。

使用 RFC 3339,產生的輸出內容一律會經過 Z 正規化,並使用 0、3、6 或 9 個小數位數,也接受「Z」以外的偏移量。範例:"2014-10-02T15:01:23Z"、"2014-10-02T15:01:23.045123456Z" 或 "2014-10-02T15:01:23+05:30"。

TransitStop

大眾運輸站點的相關資訊。

JSON 表示法
{
  "name": string,
  "location": {
    object (Location)
  }
}
欄位
name

string

大眾運輸停靠站的名稱。

location

object (Location)

停靠站位置的經緯度座標。

TransitDetailsLocalizedValues

RouteTransitDetails 值的在地化說明。

JSON 表示法
{
  "arrivalTime": {
    object (LocalizedTime)
  },
  "departureTime": {
    object (LocalizedTime)
  }
}
欄位
arrivalTime

object (LocalizedTime)

以格式化文字表示的時間,以及對應的時區。

departureTime

object (LocalizedTime)

以格式化文字表示的時間,以及對應的時區。

LocalizedTime

時間的本地化說明。

JSON 表示法
{
  "time": {
    object (LocalizedText)
  },
  "timeZone": string
}
欄位
time

object (LocalizedText)

以字串形式指定的時間,以特定時區為準。

timeZone

string

包含時區。這個值是時區名稱 (如 IANA 時區資料庫中所定義),例如「America/New_York」。

TransitLine

包含目前步驟中使用的大眾運輸路線相關資訊。

JSON 表示法
{
  "agencies": [
    {
      object (TransitAgency)
    }
  ],
  "name": string,
  "uri": string,
  "color": string,
  "iconUri": string,
  "nameShort": string,
  "textColor": string,
  "vehicle": {
    object (TransitVehicle)
  }
}
欄位
agencies[]

object (TransitAgency)

經營這條大眾運輸路線的運輸公司。

name

string

這條大眾運輸路線的全名,例如「8 Avenue Local」。

uri

string

這條大眾運輸路線的 URI (由運輸公司提供)。

color

string

這條路線常用的顏色,以十六進位表示。

iconUri

string

這條路線相關圖示的 URI。

nameShort

string

這條大眾運輸路線的簡稱。通常是路線編號,例如「M7」或「355」。

textColor

string

這條路線的標誌上常用的文字顏色。以十六進位表示。

vehicle

object (TransitVehicle)

這條大眾運輸路線使用的交通工具類型。

TransitAgency

經營大眾運輸路線的運輸公司。

JSON 表示法
{
  "name": string,
  "phoneNumber": string,
  "uri": string
}
欄位
name

string

這間運輸公司的名稱。

phoneNumber

string

運輸公司特定地區格式的電話號碼。

uri

string

運輸公司的 URI。

TransitVehicle

大眾運輸路線使用的車輛相關資訊。

JSON 表示法
{
  "name": {
    object (LocalizedText)
  },
  "type": enum (TransitVehicleType),
  "iconUri": string,
  "localIconUri": string
}
欄位
name

object (LocalizedText)

這輛車的名稱,採用大寫。

type

enum (TransitVehicleType)

使用的車輛類型。

iconUri

string

與此車輛類型相關聯的圖示 URI。

localIconUri

string

此交通工具類型相關圖示的 URI (根據本地交通標誌)。

TransitVehicleType

大眾運輸路線的交通工具類型。

列舉
TRANSIT_VEHICLE_TYPE_UNSPECIFIED 未使用。
BUS 公車。
CABLE_CAR 靠電纜運作的交通工具,通常在地面上行駛。空中纜車可視為 GONDOLA_LIFT 類型。
COMMUTER_TRAIN 通勤鐵路。
FERRY 渡輪。
FUNICULAR 靠電纜從陡坡往上拉升的交通工具。纜車通常由兩個車廂組成,其中每個車廂都為另一個車廂保持平衡。
GONDOLA_LIFT 空中纜車。
HEAVY_RAIL 重軌電車。
HIGH_SPEED_TRAIN 高速火車。
INTERCITY_BUS 城際巴士。
LONG_DISTANCE_TRAIN 長途火車。
METRO_RAIL 輕軌電車運輸。
MONORAIL 單軌電車。
OTHER 所有其他車輛。
RAIL 火車。
SHARE_TAXI 共乘計程車可視為一種公車,可供乘客沿路任意上下車。
SUBWAY 地下輕軌電車。
TRAM 地上輕軌電車。
TROLLEYBUS 無軌電車。

RouteLegTravelAdvisory

包含使用者應在路段步驟中瞭解的額外資訊,例如可能的交通區域限制。

JSON 表示法
{
  "tollInfo": {
    object (TollInfo)
  },
  "speedReadingIntervals": [
    {
      object (SpeedReadingInterval)
    }
  ]
}
欄位
tollInfo

object (TollInfo)

包含特定 RouteLeg 的收費資訊。只有在預期 RouteLeg 有收費路段,且要求中包含 TOLLS ComputeRoutesRequest.extra_computations 時,這個欄位才會填入資料。如果已設定這個欄位,但未填入 estimatedPrice 子欄位,表示道路包含收費路段,但我們不知道預估價格。如果 tollInfo 不存在,則 RouteLeg 不會收取費用。

speedReadingIntervals[]

object (SpeedReadingInterval)

顯示交通密度的高速朗讀間隔。只有在要求具有 TRAFFIC_AWARE 或 TRAFFIC_AWARE_OPTIMAL ComputeRoutesRequest.routing_preference 值,且 ComputeRoutesRequest.extra_computations 中包含 TRAFFIC_ON_POLYLINE 時,系統才會為要求填入這個欄位。這些間隔會涵蓋 RouteLeg 的整條折線,且不會重疊。指定間隔的起點與前一個間隔的終點相同。

範例:

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

RouteLegLocalizedValues

特定屬性的文字表示法。

JSON 表示法
{
  "distance": {
    object (LocalizedText)
  },
  "duration": {
    object (LocalizedText)
  },
  "staticDuration": {
    object (LocalizedText)
  }
}
欄位
distance

object (LocalizedText)

以文字形式表示的行車距離。

duration

object (LocalizedText)

以文字形式表示的時長,並根據查詢區域進行在地化。將路況納入考量。注意:如果沒有要求流量資訊,這個值會與 staticDuration 相同。

staticDuration

object (LocalizedText)

未考量路況的預估時間,以文字形式表示。

StepsOverview

提供 RouteLegStep 清單的總覽資訊。

JSON 表示法
{
  "multiModalSegments": [
    {
      object (MultiModalSegment)
    }
  ]
}
欄位
multiModalSegments[]

object (MultiModalSegment)

RouteLeg.steps不同多模態區隔的摘要資訊。如果 RouteLeg 的步驟中沒有任何多模式路段,這個欄位就不會填入資料。

MultiModalSegment

提供 RouteLeg.steps 不同多模態區隔的摘要資訊。多模式路段是指一或多個連續的 RouteLegStep,具有相同的 RouteTravelMode。如果 RouteLeg 的步驟中沒有任何多模式路段,這個欄位就不會填入資料。

JSON 表示法
{
  "navigationInstruction": {
    object (NavigationInstruction)
  },
  "travelMode": enum (RouteTravelMode),
  "stepStartIndex": integer,
  "stepEndIndex": integer
}
欄位
navigationInstruction

object (NavigationInstruction)

多模態區隔的 NavigationInstruction。

travelMode

enum (RouteTravelMode)

多模態路段的交通方式。

stepStartIndex

integer

多模態區隔的開頭對應 RouteLegStep 索引。

stepEndIndex

integer

多模態區隔結尾的對應 RouteLegStep 索引。

可視區域

經緯度可視區域,以兩個對角 low 和 high 點表示。視埠會視為封閉區域,也就是包含邊界。緯度範圍必須介於 -90 到 90 度之間 (含首尾),經度範圍則必須介於 -180 到 180 度之間 (含首尾)。這類情況包括:

  • 如果 low = high,可視區域就是該單一點。

  • 如果 low.longitude > high.longitude,經度範圍會反轉 (可視區域會跨越 180 度的經度線)。

  • 如果 low.longitude = -180 度且 high.longitude = 180 度,可視區域會包含所有經度。

  • 如果 low.longitude = 180 度且 high.longitude = -180 度,經度範圍會空白。

  • 如果 low.latitude > high.latitude,緯度範圍會空白。

low 和 high 都必須填入,且代表的方塊不得為空 (如上述定義所述)。如果檢視區塊為空白,就會發生錯誤。

舉例來說,這個檢視區塊完全涵蓋紐約市:

{ "low": { "latitude": 40.477398, "longitude": -74.259087 }, "high": { "latitude": 40.91618, "longitude": -73.70018 } }

JSON 表示法
{
  "low": {
    object (LatLng)
  },
  "high": {
    object (LatLng)
  }
}
欄位
low

object (LatLng)

必填。可視區域的最低點。

high

object (LatLng)

必填。可視區域的最高點。

RouteLocalizedValues

特定屬性的文字表示法。

JSON 表示法
{
  "distance": {
    object (LocalizedText)
  },
  "duration": {
    object (LocalizedText)
  },
  "staticDuration": {
    object (LocalizedText)
  },
  "transitFare": {
    object (LocalizedText)
  }
}
欄位
distance

object (LocalizedText)

以文字形式表示的行車距離。

duration

object (LocalizedText)

以文字形式表示的時長,並根據查詢區域進行在地化。將路況納入考量。注意:如果沒有要求提供即時路況資訊,這個值與 staticDuration 的值相同。

staticDuration

object (LocalizedText)

未考量路況的預估時間,以文字形式表示。

transitFare

object (LocalizedText)

以文字形式表示的大眾運輸車資。

PolylineDetails

對應於折線的指定索引或連續區段的詳細資料。假設折線包含 P_0、P_1、...、P_N 等點 (從零開始的索引),PolylineDetails 會定義間隔和相關聯的中繼資料。

JSON 表示法
{
  "tunnelInfo": [
    {
      object (TunnelInfo)
    }
  ],
  "restrictionInfo": [
    {
      object (RestrictionInfo)
    }
  ],
  "flyoverInfo": [
    {
      object (FlyoverInfo)
    }
  ],
  "narrowRoadInfo": [
    {
      object (NarrowRoadInfo)
    }
  ],
  "bridgeInfo": [
    {
      object (BridgeInfo)
    }
  ],
  "skywayInfo": [
    {
      object (SkywayInfo)
    }
  ]
}
欄位
tunnelInfo[]

object (TunnelInfo)

沿著折線的隧道詳細資料。如果要求指定 avoidTunnels 路線修飾符,但產生的路線無法避開隧道,或是 extraComputations 中指定 TUNNEL_INFO_ON_POLYLINE,且路線包含隧道,系統就會填入這個欄位。

restrictionInfo[]

object (RestrictionInfo)

沿著折線的限制詳細資料。只有在要求指定 vehicleInfo 路線修飾符,且產生的路線包含適用的限制時,系統才會填入這個欄位。否則系統不會使用這個欄位。

flyoverInfo[]

object (FlyoverInfo)

折線沿途的 Flyover 詳細資料。

narrowRoadInfo[]

object (NarrowRoadInfo)

折線沿途的狹窄道路詳細資料。

bridgeInfo[]

object (BridgeInfo)

折線上的橋梁詳細資料。

skywayInfo[]

object (SkywayInfo)

折線上的空路詳細資料。

TunnelInfo

封裝沿著折線的通道相關資訊。

JSON 表示法
{
  "tunnelPresence": enum (RoadFeatureState),
  "polylinePointIndex": {
    object (PolylinePointIndex)
  }
}
欄位
tunnelPresence

enum (RoadFeatureState)

表示折線的特定路段是否有隧道。

polylinePointIndex

object (PolylinePointIndex)

沿著折線的隧道相關資訊位置。

RoadFeatureState

封裝折線路段沿線道路特徵的狀態。

列舉
ROAD_FEATURE_STATE_UNSPECIFIED 系統未計算道路特徵的狀態 (預設值)。
EXISTS 道路特徵存在。
DOES_NOT_EXIST 道路特徵不存在。

PolylinePointIndex

封裝折線詳細資料的開始和結束索引。如果資料對應至單一點,startIndex 和 endIndex 會相等。

JSON 表示法
{
  "startIndex": integer,
  "endIndex": integer
}
欄位
startIndex

integer

折線中這個詳細資料的起始索引。

endIndex

integer

折線中這項詳細資料的結束索引。

RestrictionInfo

封裝有關折線沿線各種限制的資訊。

JSON 表示法
{
  "restrictionPresence": enum (RoadFeatureState),
  "polylinePointIndex": {
    object (PolylinePointIndex)
  },

  // The following is a list of mutually exclusive fields. At most one of the
  // fields will be set in a response:
  "restrictedHeightMm": string,
  "restrictedWeightKg": string,
  "hazardousGoods": boolean,
  "trucksProhibited": boolean
  // End of mutually exclusive fields.
}
欄位
restrictionPresence

enum (RoadFeatureState)

僅供輸出。表示指定折線路段是否有任何限制。

polylinePointIndex

object (PolylinePointIndex)

沿著折線的限制相關資訊位置。

封裝可套用至特定折線路段的限制類型。以下列出互斥欄位。回應中最多會設定一個欄位:
restrictedHeightMm

string (int64 format)

高度限制 (以毫米為單位)。如果指定車輛因限高而無法通行或淨空高度不足,系統就會填入這個欄位。

restrictedWeightKg

string (int64 format)

重量限制 (以公斤為單位)。如果重量限制導致車輛無法通行,或接近指定車輛的重量,系統就會填入這個欄位。

hazardousGoods

boolean

如果危險物品的運送受到限制,這個欄位會設為 true。

trucksProhibited

boolean

禁止卡車通行時,這個欄位會設為 true。

互斥欄位的結尾。

FlyoverInfo

封裝有關沿著折線飛越的資訊。

JSON 表示法
{
  "flyoverPresence": enum (RoadFeatureState),
  "polylinePointIndex": {
    object (PolylinePointIndex)
  }
}
欄位
flyoverPresence

enum (RoadFeatureState)

僅供輸出。表示指定折線路段是否有高架道路。

polylinePointIndex

object (PolylinePointIndex)

沿著折線的飛越相關資訊位置。

NarrowRoadInfo

封裝有關折線沿線狹窄道路的資訊。

JSON 表示法
{
  "narrowRoadPresence": enum (RoadFeatureState),
  "polylinePointIndex": {
    object (PolylinePointIndex)
  }
}
欄位
narrowRoadPresence

enum (RoadFeatureState)

僅供輸出。表示指定折線路段是否有狹窄道路。

polylinePointIndex

object (PolylinePointIndex)

沿著折線的狹窄道路相關資訊位置。

BridgeInfo

封裝有關折線橋樑的資訊。

JSON 表示法
{
  "bridgePresence": enum (RoadFeatureState),
  "polylinePointIndex": {
    object (PolylinePointIndex)
  }
}
欄位
bridgePresence

enum (RoadFeatureState)

表示指定折線路段是否有橋樑。

polylinePointIndex

object (PolylinePointIndex)

沿著折線的橋梁相關資訊位置。

SkywayInfo

封裝沿著折線的天橋相關資訊。

JSON 表示法
{
  "skywayPresence": enum (RoadFeatureState),
  "polylinePointIndex": {
    object (PolylinePointIndex)
  }
}
欄位
skywayPresence

enum (RoadFeatureState)

表示指定折線路段是否有高架道路。

polylinePointIndex

object (PolylinePointIndex)

折線上的空橋相關資訊位置。

GeocodingResults

包含起點、目的地和中途路線控點的 GeocodedWaypoints。只有地址航點會填入這項資料。

JSON 表示法
{
  "origin": {
    object (GeocodedWaypoint)
  },
  "destination": {
    object (GeocodedWaypoint)
  },
  "intermediates": [
    {
      object (GeocodedWaypoint)
    }
  ]
}
欄位
origin

object (GeocodedWaypoint)

經過地理編碼的起點路線控點。

destination

object (GeocodedWaypoint)

經過地理編碼的目的地路線控點。

intermediates[]

object (GeocodedWaypoint)

中間地理編碼路線控點清單,每個路線控點都包含一個索引欄位,對應於要求中指定路線控點順序的以零為準位置。

GeocodedWaypoint

用做中途點的地點詳細資料。只有地址航點會有這項資料。包含地理編碼結果的詳細資料,用於判斷地址的地理編碼結果。

JSON 表示法
{
  "geocoderStatus": {
    object (Status)
  },
  "type": [
    string
  ],
  "partialMatch": boolean,
  "placeId": string,
  "intermediateWaypointRequestIndex": integer
}
欄位
geocoderStatus

object (Status)

表示地理編碼作業產生的狀態碼。

type[]

string

結果類型,以零或多個類型標記的形式呈現。支援的類型:地址類型和地址元件類型。

partialMatch

boolean

指出地理編碼器沒有傳回與原始要求完全比對的結果,但可以比對部分要求的地址。建議您比對原始要求,檢查是否有拼寫錯誤和/或不完整的地址。

placeId

string

這筆結果的地點 ID。

intermediateWaypointRequestIndex

integer

要求中相應中途停靠點的索引。只有在對應路線控點是中繼路線控點時,才會填入這個欄位。