- HTTP 要求
- 要求主體
- 回應主體
- PolylineQuality
- PolylineEncoding
- ReferenceRoute
- ExtraComputation
- 路徑
- RouteLabel
- RouteLeg
- Polyline
- RouteLegStep
- NavigationInstruction
- Maneuver
- RouteLegStepTravelAdvisory
- RouteLegStepLocalizedValues
- RouteLegStepTransitDetails
- TransitStopDetails
- TransitStop
- TransitDetailsLocalizedValues
- LocalizedTime
- TransitLine
- TransitAgency
- TransitVehicle
- TransitVehicleType
- RouteLegTravelAdvisory
- RouteLegLocalizedValues
- StepsOverview
- MultiModalSegment
- 可視區域
- RouteLocalizedValues
- GeocodingResults
- GeocodedWaypoint
傳回主要路線以及選擇性替代路線,指定一組航線和中繼路點。
注意:這個方法需要您在輸入中指定回應欄位遮罩。如要提供回應欄位遮罩,可以使用網址參數 $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 ( |
欄位 | |
---|---|
origin |
必要欄位。來源路線控點。 |
destination |
必要欄位。目的地路線控點。 |
intermediates[] |
選用設定。沿途一組路線控點 (不含終點站),用來在 或 經過。最多支援 25 個中繼路線控點。 |
travelMode |
選用設定。指定交通方式, |
routingPreference |
選用設定。指定如何計算路徑。伺服器會嘗試使用所選轉送偏好設定來計算路徑。如果轉送偏好設定導致錯誤或過長的延遲時間,則會傳回錯誤。只有在 |
polylineQuality |
選用設定。指定您對折線品質的偏好設定。 |
polylineEncoding |
選用設定。指定折線的偏好編碼。 |
departureTime |
選用設定。出發時間。如未設定這個值,則這個值會預設為您提出要求的時間。注意:當 RFC3339 世界標準時間「Zulu」的時間戳記格式,解析度為奈秒,且最多 9 個小數位數。範例: |
arrivalTime |
選用設定。抵達時間。注意:只有在 RFC3339 世界標準時間「Zulu」的時間戳記格式,解析度為奈秒,且最多 9 個小數位數。範例: |
computeAlternativeRoutes |
選用設定。指定是否要計算路線以外的替代路徑。系統不會為具有中繼路線控點的要求傳回替代路線。 |
routeModifiers |
選用設定。一組滿足條件,這些條件會影響路線的計算方式。 |
languageCode |
選用設定。BCP-47 語言代碼,例如「en-US」或「sr-Latn」。詳情請參閱 Unicode 語言代碼 ID。如需支援的語言清單,請參閱語言支援。如未提供這個值,系統會根據路線要求的位置推斷顯示語言。 |
regionCode |
選用設定。區碼,指定為 ccTLD (「頂層網域」) 的兩位字元值詳情請參閱國家/地區代碼頂層網域。 |
units |
選用設定。指定顯示欄位的測量單位。這些欄位包含 |
optimizeWaypointOrder |
選用設定。設為 true 時,服務會嘗試重新排序指定的中繼路線控點,盡可能降低路線的總成本。如果任何中繼路線控點是 |
requestedReferenceRoutes[] |
選用設定。除了預設路徑之外,指定要在要求中計算的參照路徑。參照路徑是路線,其路線計算目標與預設路線不同。舉例來說, |
extraComputations[] |
選用設定。一份額外運算清單,可用來完成要求。注意:這些額外的運算作業可能會在回應中傳回額外的欄位。您也必須在欄位遮罩中指定這些額外的欄位,才能在回應中傳回。 |
trafficModel |
選用設定。指定計算交通時間時要採用的假設。這項設定會影響 |
transitPreferences |
選用設定。指定偏好設定,讓 |
回應主體
v2.computeRoutes 回應訊息。
如果成功,回應主體會含有以下結構的資料:
JSON 表示法 |
---|
{ "routes": [ { object ( |
欄位 | |
---|---|
routes[] |
指定 |
fallbackInfo |
在某些情況下,當伺服器無法根據所有輸入偏好設定計算路線結果時,可能會改回使用其他運算方式。使用備用模式時,這個欄位會包含備用回應的詳細資訊。否則,系統會取消設定這個欄位。 |
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 |
省油路線。系統會判斷標有這個值的路線,已針對燃料消耗等參數進行最佳化。 |
ExtraComputation
完成要求時要執行的其他運算。
列舉 | |
---|---|
EXTRA_COMPUTATION_UNSPECIFIED |
未使用。包含這個值的要求都會失敗。 |
TOLLS |
路線的收費路段資訊。 |
FUEL_CONSUMPTION |
路線的預估燃油耗量。 |
TRAFFIC_ON_POLYLINE |
路況感知折線。 |
HTML_FORMATTED_NAVIGATION_INSTRUCTIONS |
NavigationInstructions 會以格式化的 HTML 文字字串形式呈現。這類內容應按原樣閱讀。本內容僅供檢視,請勿以程式輔助方式剖析。 |
路線
包含路線,包含一系列連接起點、終點和中間路點的相連路段。
JSON 表示法 |
---|
{ "routeLabels": [ enum ( |
欄位 | |
---|---|
routeLabels[] |
|
legs[] |
組成路線的一組航段 (路線控點之間的路徑區段)。每個路段都對應至兩個非 |
distanceMeters |
路線的移動距離 (以公尺為單位)。 |
duration |
導航路線所需時間。如果將 持續時間以秒為單位,最多 9 個小數位數,結尾為「 |
staticDuration |
在不考量路況的情況下行經該路線的時間長度。 持續時間以秒為單位,最多 9 個小數位數,結尾為「 |
polyline |
整體路線折線。此折線是所有 |
description |
路線的說明。 |
warnings[] |
顯示路線時要顯示的警告陣列。 |
viewport |
折線的可視區域定界框。 |
travelAdvisory |
路線的其他資訊。 |
optimizedIntermediateWaypointIndex[] |
如果將 |
localizedValues |
|
routeToken |
一種具備網路安全性的 Base64 編碼路徑符記,這個符記可傳送至 Navigation SDK,讓 Navigation SDK 在導航期間重建路徑,並在重新規劃路線時,配合呼叫 v2.computeRoutes 建立路徑時的原始意圖。客戶應將此權杖視為不透明 blob。請勿跨要求比較這個值,即使傳回完全相同的路線,這個憑證仍可能有所變更。注意: |
RouteLabel
的標籤,可用來識別路徑的特定屬性,以便與其他項目比較。Route
列舉 | |
---|---|
ROUTE_LABEL_UNSPECIFIED |
預設 - 不使用。 |
DEFAULT_ROUTE |
預設為「最佳」路線計算傳回的路徑。 |
DEFAULT_ROUTE_ALTERNATE |
取代預設「最佳」的替代選項路徑。指定 時,會傳回這類路徑。 |
FUEL_EFFICIENT |
省油路線。系統判斷標有這個值的路線,已針對燃油量等節能參數進行最佳化。 |
RouteLeg
包含非 via
路線控點之間的線段。
JSON 表示法 |
---|
{ "distanceMeters": integer, "duration": string, "staticDuration": string, "polyline": { object ( |
欄位 | |
---|---|
distanceMeters |
路線路段的移動距離 (以公尺為單位)。 |
duration |
瀏覽路段所需的時間長度。如果 持續時間以秒為單位,最多 9 個小數位數,結尾為「 |
staticDuration |
行經路段的時間長度,不將路況納入考量。 持續時間以秒為單位,最多 9 個小數位數,結尾為「 |
polyline |
這個路段的整體折線,當中含有每個 |
startLocation |
這個路段的起點。這個位置可能與提供的 |
endLocation |
這個路段的終點。這個位置可能與提供的 |
steps[] |
代表這個路段中路段的步驟陣列。每個步驟都代表一個導覽指示。 |
travelAdvisory |
包含需告知使用者的其他相關資訊,例如路線路段的可能交通區域限制。 |
localizedValues |
|
stepsOverview |
此 |
折線
封裝編碼折線。
JSON 表示法 |
---|
{ // Union field |
欄位 | |
---|---|
聯集欄位 polyline_type 。封裝折線的類型。預設為 encoded_polyline。polyline_type 只能是下列其中一項: |
|
encodedPolyline |
使用折線編碼演算法的折線字串編碼 |
geoJsonLinestring |
使用 GeoJSON LineString 格式指定折線。 |
RouteLegStep
包含
的區段。步驟對應單一導覽指示。路線路段包含步數。RouteLeg
JSON 表示法 |
---|
{ "distanceMeters": integer, "staticDuration": string, "polyline": { object ( |
欄位 | |
---|---|
distanceMeters |
這個步驟的移動距離 (以公尺為單位)。在某些情況下,這個欄位可能沒有值。 |
staticDuration |
在不考量路況的情況下,通過此步驟所需的時間。在某些情況下,這個欄位可能沒有值。 持續時間以秒為單位,最多 9 個小數位數,結尾為「 |
polyline |
與這個步驟相關聯的折線。 |
startLocation |
這個步驟的開始位置。 |
endLocation |
這個步驟的結束位置。 |
navigationInstruction |
導航指示。 |
travelAdvisory |
包含需告知使用者有關車腿步驟的其他資訊,例如可能的交通區域限制。 |
localizedValues |
|
transitDetails |
如果交通方式為 |
travelMode |
這個步驟所用的交通方式。 |
製造
一組值,用於指定目前步驟要採取的導覽動作 (例如向左轉、合併或直接)。
列舉 | |
---|---|
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 ( |
欄位 | |
---|---|
speedReadingIntervals[] |
注意:這個欄位目前未填入資料。 |
RouteLegStepLocalizedValues
特定屬性的文字表示法。
JSON 表示法 |
---|
{ "distance": { object ( |
欄位 | |
---|---|
distance |
以文字形式表示的移動距離。 |
staticDuration |
未考量路況,以文字格式表示的時間長度。 |
RouteLegStepTransitDetails
與 TRANSIT
路線相關的 RouteLegStep
其他資訊。
JSON 表示法 |
---|
{ "stopDetails": { object ( |
欄位 | |
---|---|
stopDetails |
步驟抵達和出發停靠站的相關資訊。 |
localizedValues |
|
headsign |
指定這條路線上標示為車輛或出發站的行進方向。方向通常是終點站。 |
headway |
用來指定從目前同一站點出發的預計時間。例如,假設班距秒數值為 600,則表示如果錯過上一班公車,下一班預計要等 10 分鐘。 持續時間以秒為單位,最多 9 個小數位數,結尾為「 |
transitLine |
這個步驟中使用的大眾運輸路線相關資訊。 |
stopCount |
從出發到抵達站的停靠站數量。這包括抵達站,但不含出發站。例如,假設您的路線是從 A 站出發,途經 B、C 兩站,最後抵達 D 站,則 stopCount 會傳回 3。 |
tripShortText |
時刻表和看板上顯示的文字,可供乘客識別大眾運輸行程。這類文字應用於識別服務日內的特定行程。例如「538」是阿姆特拉克的 |
TransitStopDetails
RouteLegStep
大眾運輸停靠站的詳細資料。
JSON 表示法 |
---|
{ "arrivalStop": { object ( |
欄位 | |
---|---|
arrivalStop |
步驟的抵達站相關資訊。 |
arrivalTime |
步驟的預計到達時間。 RFC3339 世界標準時間「Zulu」的時間戳記格式,解析度為奈秒,且最多 9 個小數位數。範例: |
departureStop |
步驟的出發停靠站相關資訊。 |
departureTime |
步驟的預計出發時間。 RFC3339 世界標準時間「Zulu」的時間戳記格式,解析度為奈秒,且最多 9 個小數位數。範例: |
TransitStop
大眾運輸站點相關資訊。
JSON 表示法 |
---|
{
"name": string,
"location": {
object ( |
欄位 | |
---|---|
name |
大眾運輸停靠站的名稱。 |
location |
以經緯度座標表示的停靠站位置。 |
TransitDetailsLocalizedValues
RouteTransitDetails
值的本地化說明。
JSON 表示法 |
---|
{ "arrivalTime": { object ( |
欄位 | |
---|---|
arrivalTime |
以格式化文字表示的時間,以對應的時區表示。 |
departureTime |
以格式化文字表示的時間,以對應的時區表示。 |
LocalizedTime
本地化的時間說明。
JSON 表示法 |
---|
{
"time": {
object ( |
欄位 | |
---|---|
time |
在指定時區中以字串的形式指定的時間。 |
timeZone |
包含時區。這個值就是 IANA 時區資料庫中定義的時區名稱,例如「America/New_York」。 |
TransitLine
包含目前步驟中使用的大眾運輸路線相關資訊。
JSON 表示法 |
---|
{ "agencies": [ { object ( |
欄位 | |
---|---|
agencies[] |
提供這條大眾運輸路線的運輸公司 (或運輸公司)。 |
name |
這條大眾運輸路線的全名,例如「8 Avenue Local」。 |
uri |
大眾運輸路線的 URI (由運輸公司提供)。 |
color |
這條路線常用的顏色,以十六進位表示。 |
iconUri |
此行相關圖示的 URI。 |
nameShort |
這條大眾運輸路線的簡稱,這個名稱通常是一行編號,例如「M7」或「355」。 |
textColor |
這條路線常用的文字顏色,以十六進位表示。 |
vehicle |
行駛於這條大眾運輸路線的交通工具類型。 |
TransitAgency
提供大眾運輸路線的運輸公司。
JSON 表示法 |
---|
{ "name": string, "phoneNumber": string, "uri": string } |
欄位 | |
---|---|
name |
這間運輸公司的名稱。 |
phoneNumber |
運輸公司的特定地區格式電話號碼。 |
uri |
運輸公司的 URI。 |
TransitVehicle
大眾運輸路線中使用車輛的相關資訊。
JSON 表示法 |
---|
{ "name": { object ( |
欄位 | |
---|---|
name |
這輛車的名稱,大寫。 |
type |
使用的交通工具類型。 |
iconUri |
與此交通工具類型相關聯圖示的 URI。 |
localIconUri |
與此車輛類型相關聯圖示的 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[] |
速度讀取間隔,詳細說明交通密度。適用於 範例:
|
RouteLegLocalizedValues
特定屬性的文字表示法。
JSON 表示法 |
---|
{ "distance": { object ( |
欄位 | |
---|---|
distance |
以文字形式表示的移動距離。 |
duration |
將路況納入考量以文字形式計算的持續時間。注意:如果您沒有要求流量資訊,這個值將會與 staticDuration 相同。 |
staticDuration |
未考量路況,以文字格式表示的時間長度。 |
StepsOverview
提供 RouteLegStep
清單的總覽資訊。
JSON 表示法 |
---|
{
"multiModalSegments": [
{
object ( |
欄位 | |
---|---|
multiModalSegments[] |
有關 |
MultiModalSegment
提供 RouteLeg.steps
中不同多模態區段的摘要資訊。多模態區隔定義為一或多個具有相同 RouteTravelMode
的連續 RouteLegStep
。如果 RouteLeg
不包含步驟中的任何多模態區隔,則不會填入這個欄位。
JSON 表示法 |
---|
{ "navigationInstruction": { object ( |
欄位 | |
---|---|
navigationInstruction |
多模態區隔的導覽指示。 |
travelMode |
多模態區隔的交通方式。 |
stepStartIndex |
對應的 |
stepEndIndex |
多模態片段結尾的對應 |
可視區域
經緯度可視區域,以對角線的兩點對角線表示 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 ( |
欄位 | |
---|---|
low |
必要欄位。可視區域的低點。 |
high |
必要欄位。可視區域的高點。 |
RouteLocalizedValues
特定屬性的文字表示法。
JSON 表示法 |
---|
{ "distance": { object ( |
欄位 | |
---|---|
distance |
以文字形式表示的移動距離。 |
duration |
考量路況 (以文字格式表示) 的時間長度。注意:如果您沒有要求流量資訊,這個值將會與 |
staticDuration |
未考量路況,以文字格式表示的時間長度。 |
transitFare |
以文字表示的大眾運輸票價。 |
GeocodingResults
包含起點、目的地和中繼路線控點的
。僅針對地址路線控點填入。GeocodedWaypoints
JSON 表示法 |
---|
{ "origin": { object ( |
欄位 | |
---|---|
origin |
已進行地理編碼的路線控點。 |
destination |
目的地已地理編碼的路線控點。 |
intermediates[] |
一系列經過地理編碼的路點清單,每個路徑皆包含一個索引欄位,該欄位會依照要求中所指定的順序,與路線控點的零位置位置對應。 |
GeocodedWaypoint
做為路線控點位置的詳細資料。僅針對地址路線控點填入。包含地理編碼結果的詳細資料,用來判斷要進行地理編碼的地址。
JSON 表示法 |
---|
{
"geocoderStatus": {
object ( |
欄位 | |
---|---|
geocoderStatus |
指出地理編碼作業產生的狀態碼。 |
type[] |
結果的類型,格式為 0 或多個型別標記。支援的類型:地址類型和地址元件類型。 |
partialMatch |
表示地理編碼器沒有傳回與原始要求完全相符的結果,但可以比對部分要求的地址。建議您比對原始要求,檢查是否有拼寫錯誤和/或不完整的地址。 |
placeId |
這個結果的地點 ID。 |
intermediateWaypointRequestIndex |
要求中對應中繼路線控點的索引。只有在對應路點是中繼路線控點時,才會填入內容。 |