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 天的行程。

使用 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,系統會忽略這個欄位。你可以指定 departureTimearrivalTime,但不能同時指定兩者。大眾運輸行程最多可查詢過去 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 尋找新的排序方式。如果 ComputeRoutesResponseroutes.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)

(選用步驟) 指定計算交通時間時要採用的假設。這項設定會影響 RouteRouteLeg 中時間長度欄位傳回的值,其中包含根據歷來平均值預估的交通時間。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 地圖已知違法的任何動作。

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

這項功能不支援其他交通方式、中途行經的路線控點或 optimizeWaypointOrder,否則要求會失敗。不過,您可以搭配任何 routingPreference 使用。

ExtraComputation

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

列舉
EXTRA_COMPUTATION_UNSPECIFIED 未使用。含有這個值的要求會失敗。
TOLLS 路線的收費資訊。
FUEL_CONSUMPTION 路線的預估燃料耗量。
TRAFFIC_ON_POLYLINE 路線的車流量監測折線。
HTML_FORMATTED_NAVIGATION_INSTRUCTIONS NavigationInstructions,以格式化的 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/費用可能會有所變動。

路徑

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

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中途路線控點,則只有一個路段。路段順序與路線控點順序一致,從 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

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

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

列舉
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

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

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 上預計有收費站時,才會填入這個欄位。如果已設定這個欄位,但未填入 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,具有相同的 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)

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

PolylineDetails

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

JSON 表示法
{
  "flyoverInfo": [
    {
      object (FlyoverInfo)
    }
  ],
  "narrowRoadInfo": [
    {
      object (NarrowRoadInfo)
    }
  ]
}
欄位
flyoverInfo[]

object (FlyoverInfo)

折線沿途的立體空照圖詳細資料。

narrowRoadInfo[]

object (NarrowRoadInfo)

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

FlyoverInfo

封裝沿折線的飛越資訊。

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

enum (RoadFeatureState)

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

polylinePointIndex

object (PolylinePointIndex)

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

RoadFeatureState

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

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

PolylinePointIndex

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

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

integer

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

endIndex

integer

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

NarrowRoadInfo

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

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

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

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