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 尋找新的排序方式。如果 X-Goog-FieldMask 標頭中未要求 ComputeRoutesResponse.routes.optimized_intermediate_waypoint_index,要求就會失敗。如果 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 NavigationInstruction,以格式化的 HTML 文字字串呈現。這類內容應按原樣讀取。這類內容僅供顯示,請勿以程式輔助方式剖析。
FLYOVER_INFO_ON_POLYLINE 路線的立體空照圖資訊。必須指定 routes.polyline_details.flyover_info 欄位遮罩,才能傳回這項資訊。目前這項資料只會填入印度特定都會區。這項功能仍在實驗階段,SKU/費用可能會有所變動。
NARROW_ROAD_INFO_ON_POLYLINE 路線的狹窄道路資訊。必須指定 routes.polyline_details.narrow_road_info 欄位遮罩,才能傳回這項資訊。目前這項資料只會填入印度特定都會區。這項功能仍在實驗階段,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 中間路線控點,則只有一個路段。路段順序與路線控點順序一致,從 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。請勿比較不同要求中的值,因為即使服務傳回完全相同的路線,這個值也可能會變更。

注意:只有將 ComputeRoutesRequest.routing_preference 設為 TRAFFIC_AWARETRAFFIC_AWARE_OPTIMAL 的要求,才能使用 Route.route_token。如果要求含有途經路線控點,則不支援 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 表示法
{

  // 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 用於表示街道名稱變更。

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 有收費路段,且要求中包含 ComputeRoutesRequest.extra_computationsTOLLS 時,才會填入這個欄位。如果已設定這個欄位,但未填入 estimatedPrice 子欄位,表示道路有收費路段,但我們不知道預估價格。如果 tollInfo 不存在,則 RouteLeg 不會收取通行費。

speedReadingIntervals[]

object (SpeedReadingInterval)

顯示交通密度的讀取速度間隔。只有在要求具有 TRAFFIC_AWARETRAFFIC_AWARE_OPTIMAL ComputeRoutesRequest.routing_preference 值,且 TRAFFIC_ON_POLYLINE 包含在 ComputeRoutesRequest.extra_computations 中時,才會填入這個欄位。間隔會涵蓋 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 不同多模態區隔的摘要資訊。多模態區隔是指一或多個具有相同 RouteTravelMode 的連續 RouteLegStep。如果 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 表示法
{
  "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)

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

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

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

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

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