Method: computeRoutes

在指定一組終端和中繼路線控點的情況下,傳回主要路線和可選的替代路線。

注意:這個方法需要您在輸入內容中指定回應欄位遮罩。您可以使用網址參數 $fieldsfields,或是使用 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)

選用設定。指定計算路線的方式。伺服器會嘗試使用所選的路由偏好設定來計算路徑。如果路由偏好設定導致錯誤或延遲時間過長,系統會傳回錯誤。只有在 travelModeDRIVETWO_WHEELER 時,才能指定這個選項,否則要求會失敗。

polylineQuality

enum (PolylineQuality)

選用設定。指定折線的品質偏好設定。

polylineEncoding

enum (PolylineEncoding)

選用設定。指定折線的偏好編碼。

departureTime

string (Timestamp format)

選用設定。出發時間。如果您未設定這個值,則預設值為您提出要求的時間。注意:只有在 RouteTravelMode 設為 TRANSIT 時,您才能指定過去的 departureTime。大眾運輸行程最多可查詢過去 7 天或未來 100 天的行程。

採用 RFC3339 世界標準時間「Zulu」格式的時間戳記,精確度達奈秒單位,最多九個小數位數。例如 "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

arrivalTime

string (Timestamp format)

選用設定。抵達時間。注意:只有在 RouteTravelMode 設為 TRANSIT 時才能設定。您可以選擇指定 departureTimearrivalTime,但不能兩者同時指定。大眾運輸行程最多可查詢過去 7 天或未來 100 天的行程。

採用 RFC3339 世界標準時間「Zulu」格式的時間戳記,精確度達奈秒單位,最多九個小數位數。例如 "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

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 找出新的排序。如果未在 X-Goog-FieldMask 標頭中要求 ComputeRoutesResponseroutes.optimized_intermediate_waypoint_index,要求就會失敗。如果 optimizeWaypointOrder 設為 false,ComputeRoutesResponse.optimized_intermediate_waypoint_index 會是空白。

requestedReferenceRoutes[]

enum (ReferenceRoute)

選用設定。除了預設路線外,還可指定要計算哪些參考路線做為要求的一部分。參考路徑是指與預設路徑不同的路徑計算目標。舉例來說,FUEL_EFFICIENT 參考路線計算會考量各種參數,產生最省油的路線。使用這項功能時,請在產生的路線上尋找 routeLabels

extraComputations[]

enum (ExtraComputation)

選用設定。可用來完成要求的額外運算清單。注意:這些額外運算可能會在回應中傳回額外欄位。您必須在回應中傳回的欄位遮罩中指定這些額外欄位。

trafficModel

enum (TrafficModel)

選用設定。指定計算交通時間時要採用的假設。這項設定會影響 RouteRouteLeg 中 duration 欄位傳回的值,其中包含根據歷來平均值預估的交通時間。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 時,此陣列會包含計算路線的陣列 (最多三個),如果未指定 compute_alternatives_routes,則只會包含一個路線。如果這個陣列包含多個項目,建議您採用第一個項目。如果陣列為空白,表示系統找不到路線。

fallbackInfo

object (FallbackInfo)

在某些情況下,如果伺服器無法根據所有輸入偏好設定計算路徑結果,可能會改用其他計算方式。使用備用模式時,這個欄位會包含備用回應的詳細資訊。否則,這個欄位未設定。

geocodingResults

object (GeocodingResults)

包含路線控點的 Geocoding 回應資訊,這些路線控點會指定為地址。

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 地圖認為違法的任何操作。

針對 BICYCLETWO_WHEELER 要求,這項功能會傳回類似於未指定 requestedReferenceRoutes 時傳回的路線。

這項功能不支援任何其他行程模式、中繼路線控點或 optimizeWaypointOrder;這類要求會失敗。不過,您可以將其與任何 routingPreference 搭配使用。

ExtraComputation

在完成要求時要執行的額外運算。

列舉
EXTRA_COMPUTATION_UNSPECIFIED 未使用。含有這個值的要求會失敗。
TOLLS 路線的通行費資訊。
FUEL_CONSUMPTION 路線的預估油耗。
TRAFFIC_ON_POLYLINE 路線的車流量監測折線。
HTML_FORMATTED_NAVIGATION_INSTRUCTIONS NavigationInstructions 會以格式化的 HTML 文字字串呈現。這類內容應按原樣讀取。請勿以程式輔助方式剖析。

路線

包含路線,路線由一系列連接的路段組成,這些路段會連結起點、終點和中途路線控點。

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
}
欄位
routeLabels[]

enum (RouteLabel)

Route 的標籤,可用於識別路線的特定屬性,以便與其他路線進行比較。

legs[]

object (RouteLeg)

路線的路段集合 (路線控點之間的路徑區段)。每個路段都對應至兩個非 via Waypoints 之間的行程。舉例來說,沒有中繼路線控點的路線只有一個路段。路線包含一個非 via 中繼路線控點,則有兩個路段。路線包含一個 via 中繼路線控點,則有一個路段。路段的順序與路線控點的順序相符,從 originintermediates 再到 destination

distanceMeters

integer

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

duration

string (Duration format)

導航路線所需的時間長度。如果您將 routingPreference 設為 TRAFFIC_UNAWARE,則這個值與 staticDuration 相同。如果您將 routingPreference 設為 TRAFFIC_AWARETRAFFIC_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_AWARETRAFFIC_AWARE_OPTIMAL 的要求。對於含有經過路線控點的要求,系統不支援 Route.route_token

RouteLabel

Route 的標籤,可用於識別路線的特定屬性,以便與其他路線進行比較。

列舉
ROUTE_LABEL_UNSPECIFIED 預設值 - 未使用。
DEFAULT_ROUTE 路線運算作業傳回的預設「最佳」路線。
DEFAULT_ROUTE_ALTERNATE 這是預設「最佳」路線的替代方案。指定 computeAlternativeRoutes 時,系統會傳回類似這樣的路線。
FUEL_EFFICIENT 省油路線。標示為此值的路線會根據燃料消耗量等 Eco 參數進行最佳化。
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_preferenceTRAFFIC_AWARETRAFFIC_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 中的步驟概覽資訊。這個欄位只會填入大眾運輸路線的資料。

折線

封裝已編碼的折線。

JSON 表示法
{

  // Union field polyline_type can be only one of the following:
  "encodedPolyline": string,
  "geoJsonLinestring": {
    object
  }
  // End of list of possible types for union field polyline_type.
}
欄位
聯集欄位 polyline_type。封裝折線類型。預設值為 encoded_polyline。polyline_type 只能是下列其中一項:
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_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 用於表示街道名稱變更。

RouteLegStepTravelAdvisory

包含應向使用者說明的其他資訊,例如路段步驟可能的交通區限制。

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

object (SpeedReadingInterval)

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

RouteLegStepLocalizedValues

特定資源的文字表示法。

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

object (LocalizedText)

以文字形式表示的移動距離。

staticDuration

object (LocalizedText)

不考量交通狀況的時間長度,以文字形式表示。

RouteLegStepTransitDetails

TRANSIT 路徑相關的 RouteLegStep 額外資訊。

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

時刻表和看板上顯示的文字,可供乘客識別大眾運輸行程。這段文字應可用於識別服務日內的特定行程。舉例來說,「538」是 Amtrak 火車的 tripShortText,這班火車在工作日的 15:10 從加州聖荷西出發,前往加州薩克拉門托。

TransitStopDetails

RouteLegStep 的轉運站詳細資料。

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

object (TransitStop)

步驟的抵達站資訊。

arrivalTime

string (Timestamp format)

步驟的預計到達時間。

採用 RFC3339 世界標準時間「Zulu」格式的時間戳記,精確度達奈秒單位,最多九個小數位數。例如 "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

departureStop

object (TransitStop)

步驟的出發站資訊。

departureTime

string (Timestamp format)

步驟的預估出發時間。

採用 RFC3339 世界標準時間「Zulu」格式的時間戳記,精確度達奈秒單位,最多九個小數位數。例如 "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

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 有收費時,才會填入這個欄位。如果已設定這個欄位,但未填入 estimatedPrice 子欄位,則表示該路段含有收費站,但我們不知道預估價格。如果這個欄位不存在,則 RouteLeg 就沒有通行費。

speedReadingIntervals[]

object (SpeedReadingInterval)

速度讀取間隔,詳細說明流量密度。適用於 TRAFFIC_AWARETRAFFIC_AWARE_OPTIMAL 轉送偏好設定。間隔會涵蓋 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,且這些 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 索引,是多模態區段的結尾。

可視區域

經緯度可視區域,以兩個對角相反的 lowhigh 點表示。可視區域視為封閉區域,也就是包含邊界。緯度範圍必須介於 -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,則緯度範圍為空白。

lowhigh 都必須填入資料,且代表的方塊不得為空白 (如上述定義所述)。空白的檢視區會導致錯誤。

舉例來說,這個視區會完全包含紐約市:

{ "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)

以文字形式表示的大眾運輸票價。

GeocodingResults

包含起點、目的地和中繼路線控點的 GeocodedWaypoints。僅會針對地址路線點填入資料。

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

object (GeocodedWaypoint)

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

destination

object (GeocodedWaypoint)

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

intermediates[]

object (GeocodedWaypoint)

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

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

要求中對應中繼路線點的索引。只有在對應路線控點是中繼路線控點時,才會填入這個值。