- HTTP 要求
- 要求主體
- 回應主體
- 折線品質
- 折線編碼
- 單位
- 參考路徑
- 額外運算
- 路徑
- RouteLabel
- RouteLeg
- 折線
- RouteLegStep
- NavigationInstruction
- 孟加拉文
- RouteLegStepTravelTravely
- RouteLegTravelAdvisory
- 可視區域
- 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 UTC 的「Zulu」格式的時間戳記,單位為奈秒解析度,最多可達 9 個小數位數。範例: |
computeAlternativeRoutes |
選填欄位,指定除了路線之外,是否要計算替代路徑。 |
routeModifiers |
選填欄位,一組可滿足路徑計算方式的條件。 |
languageCode |
選填欄位,BCP-47 語言代碼,例如「en-US」或「sr-Latn」。詳情請參閱 http://www.unicode.org/reports/tr35/#Unicode_locale_identifier。如需支援的語言清單,請參閱語言支援。如未提供這個值,系統則會根據路線要求的位置推測顯示語言。 |
regionCode |
選填欄位,以 ccTLD (「頂層網域」) 為兩個字元的值來指定區域代碼。詳情請參閱 https://en.wikipedia.org/wiki/List_of_Internet_top-level_domains#Country_code_top-level_domains |
units |
選填欄位,指定顯示欄位的測量單位。這包括 |
requestedReferenceRoutes[] |
選填欄位,除了預設的預設路徑外,也需指定在要求中計算的參考路徑。參考路徑是指與預設路線不同的路線計算目標。舉例來說,FUEL_EFFICIENT 參照路徑計算的計算方式會考量多種參數,以便找出最佳的燃油效率。 |
extraComputations[] |
選填欄位,可用於完成要求的額外運算清單。注意: 這些額外運算可能會在回應中傳回額外的欄位。您必須在欄位遮罩中指定這些額外欄位,以在回應中傳回。 |
回應主體
如果成功,回應主體即會包含具有以下結構的資料:
v2.computeRoutes 回應回應訊息,
JSON 表示法 |
---|
{ "routes": [ { object ( |
欄位 | |
---|---|
routes[] |
在您指定 compute_alternatives_routes 時,包含一組計算路徑 (最多三條),不指定則只包含一個路徑。當這個陣列包含多個項目時,第一個項目是最建議的路徑。如果陣列是空的,表示找不到任何路線。 |
fallbackInfo |
在某些情況下,如果伺服器無法根據所有輸入偏好設定計算路線結果,則會改用不同的運算方式。使用備用模式時,這個欄位會包含備用回應的詳細資訊。否則系統會取消設定這個欄位。 |
geocodingResults |
包含指定為地址的路線控點的地理編碼回應資訊。 |
折線品質
指定折線品質的一組值。
列舉 | |
---|---|
POLYLINE_QUALITY_UNSPECIFIED |
未指定折線品質偏好設定。預設值為 OVERVIEW 。 |
HIGH_QUALITY |
指定高品質折線,這類片段是由 OVERVIEW 以外的點所組成,但會增加回應的大小。當您需要更精準的數值時,請使用這個值。 |
OVERVIEW |
指定總覽折線 - 由少量點組成。顯示路徑總覽時,請使用這個值。相較於使用 HIGH_QUALITY 選項,使用這個選項的延遲時間較少。 |
折線編碼
指定要傳回的折線類型。
列舉 | |
---|---|
POLYLINE_ENCODING_UNSPECIFIED |
未指定折線類型偏好設定。預設值為 ENCODED_POLYLINE 。 |
ENCODED_POLYLINE |
指定使用折線編碼演算法編碼的折線。 |
GEO_JSON_LINESTRING |
使用 GeoJSON LineString 格式指定折線 |
單位
一組值,用於指定顯示器所使用的測量單位。
列舉 | |
---|---|
UNITS_UNSPECIFIED |
未指定度量單位。預設為從要求推估的測量單位。 |
METRIC |
度量單位。 |
IMPERIAL |
英制 (英制) 度量單位。 |
參考路徑
ComputeRoutesRequest 支援的參考路徑。
列舉 | |
---|---|
REFERENCE_ROUTE_UNSPECIFIED |
未使用。包含此值的要求會失敗。 |
FUEL_EFFICIENT |
省油路線。系統會判斷已加上這個路徑的路徑,以根據油耗等參數進行最佳化。 |
額外計算
在完成要求時執行的額外運算。
列舉 | |
---|---|
EXTRA_COMPUTATION_UNSPECIFIED |
未使用。包含此值的要求會失敗。 |
TOLLS |
路線收費資訊。 |
FUEL_CONSUMPTION |
路線的預估油耗量。 |
TRAFFIC_ON_POLYLINE |
路線的交通號誌折線。 |
路線
封裝路徑,由一系列連接的航段組成,可分為起點、終點和中間點。
JSON 表示法 |
---|
{ "routeLabels": [ enum ( |
欄位 | |
---|---|
routeLabels[] |
|
legs[] |
構成路線的一組腿 (路線點之間的路徑區隔)。每條腿都對應至兩個非 |
distanceMeters |
路線的移動距離,單位為公尺。 |
duration |
導航所需的所需時間。如果將 持續時間以秒為單位,最多 9 個小數位數,結尾為「 |
staticDuration |
沿著路線進行行駛的時間長度,但不考慮路況。 持續時間以秒為單位,最多 9 個小數位數,結尾為「 |
polyline |
整體路線折線。這個折線將是所有 |
description |
路線說明。 |
warnings[] |
顯示路徑時顯示的警告陣列。 |
viewport |
折線的可視區域定界框。 |
travelAdvisory |
有關路線的其他資訊。 |
routeToken |
可傳遞至 NavigationSDK 的 Web 安全 base64 編碼路徑權杖,讓 Navigation SDK 可在導航期間重建路徑,且會在呼叫 v2.computeRoutes 時重新轉送原始意圖。客戶應將這個權杖視為不透明的 blob。注意: |
路徑標籤
Route
的標籤,可用於識別路線的特定屬性,以與其他屬性進行比較。
列舉 | |
---|---|
ROUTE_LABEL_UNSPECIFIED |
預設 - 未使用。 |
DEFAULT_ROUTE |
路徑計算傳回的預設「最佳」路線。 |
DEFAULT_ROUTE_ALTERNATE |
這是預設「最佳」路線的替代方案。如果指定了 ComputeRoutesRequest.compute_alternative_routes ,系統將傳回這類路徑。 |
FUEL_EFFICIENT |
省油路線。包含此值的路徑已確定根據 Eco 參數 (如油耗) 最佳化。 |
路線
封裝非 via
路線控點之間的區隔。
JSON 表示法 |
---|
{ "distanceMeters": integer, "duration": string, "staticDuration": string, "polyline": { object ( |
欄位 | |
---|---|
distanceMeters |
路線腿的移動距離,單位為公尺。 |
duration |
導航腿所需的時間長度。如果 持續時間以秒為單位,最多 9 個小數位數,結尾為「 |
staticDuration |
穿越腿部的所需時間,計算時不會考量路況。 持續時間以秒為單位,最多 9 個小數位數,結尾為「 |
polyline |
這條腿的整體折線。這包括每個 |
startLocation |
這條腿的起點。這可能與提供的 |
endLocation |
這個腿的終點位置。這可能與提供的 |
steps[] |
表示這個腿中段的一系列步驟。每個步驟都代表一個瀏覽操作說明。 |
travelAdvisory |
封裝使用者應瞭解的其他資訊,例如可能的交通路線限制等交通路線限制。 |
Polyline
封裝編碼折線。
JSON 表示法 |
---|
{ // Union field |
欄位 | |
---|---|
聯集欄位 polyline_type 。封裝折線的類型。預設值為 encoded_polyline。polyline_type 只能是下列其中一項: |
|
encodedPolyline |
使用折線編碼演算法為折線的字串編碼 |
geoJsonLinestring |
使用 GeoJSON LineString 格式指定折線 |
路線圖例
封裝 RouteLeg
的區隔。步驟對應單一導覽指示。路線腿由多個步驟組成。
JSON 表示法 |
---|
{ "distanceMeters": integer, "staticDuration": string, "polyline": { object ( |
欄位 | |
---|---|
distanceMeters |
這個步驟的移動距離,單位為公尺。在某些情況下,這個欄位可能沒有值。 |
staticDuration |
完成這個步驟後,系統不會將流量狀況納入考量。在某些情況下,這個欄位可能沒有值。 持續時間以秒為單位,最多 9 個小數位數,結尾為「 |
polyline |
與這個步驟相關聯的折線。 |
startLocation |
這個步驟的起點。 |
endLocation |
這個步驟的終點位置。 |
navigationInstruction |
導航操作說明。 |
travelAdvisory |
封裝使用者應瞭解的額外資訊,例如腿部可能的交通區域限制。 |
駕駛人
一組值,用來指定目前步驟要完成的導覽動作 (例如向左、合併、直接等等)。
列舉 | |
---|---|
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 |
在圓環處向右轉。 |
航行步行旅程顧問
封裝使用者應瞭解的額外資訊,例如腿部可能的交通區域限制。
JSON 表示法 |
---|
{
"speedReadingIntervals": [
{
object ( |
欄位 | |
---|---|
speedReadingIntervals[] |
注意:這個欄位目前未填入資料。 |
航線旅遊顧問
封裝使用者應瞭解的其他資訊,例如可能的交通路線限制等交通路線限制。
JSON 表示法 |
---|
{ "tollInfo": { object ( |
欄位 | |
---|---|
tollInfo |
封裝特定 RouteLeg 上的收費路段相關資訊。只有在我們預期 RouteLeg 上有收費路段時,才會填入這個欄位。如果設定這個欄位,但系統卻未填寫推測價格子欄位,我們預期道路會包含收費路段,但不知道預估價格。如果這個欄位不存在,則 RouteLeg 不會支付任何費用。 |
speedReadingIntervals[] |
讀取流量密度的讀取間隔。適用於 例子:
|
可視區域
經緯度可視區域,以 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": { "緯度": 40.477398, "經度": -74.259087 }, "high": { "緯度": 40.91618, "經度": -73.70018 } }
JSON 表示法 |
---|
{ "low": { object ( |
欄位 | |
---|---|
low |
必要欄位。可視區域的低點。 |
high |
必要欄位。可視區域的高點。 |
地理編碼結果
包含起點、目的地和中繼路線控點的 GeocodedWaypoint。僅填入地址路線控點。
JSON 表示法 |
---|
{ "origin": { object ( |
欄位 | |
---|---|
origin |
來源地理編碼路線控點。 |
destination |
目的地地理編碼路線點。 |
intermediates[] |
中間點地理編碼路線清單,每個索引點都有一個索引欄位,且該欄位會對應至路線點的 0 定位點 (依要求中指定的順序)。 |
GPS 編碼方式
用來當做路線控點的位置詳細資料。僅填入地址路線控點。包含地理編碼結果的詳細資料,可用於判斷地址的地理編碼。
JSON 表示法 |
---|
{
"geocoderStatus": {
object ( |
欄位 | |
---|---|
geocoderStatus |
指出地理編碼作業產生的狀態碼。 |
type[] |
結果的類型,以零或多個類型標記的形式表示。支援的類型:https://developers.google.com/maps/documentation/syndication/requests-Composite#Types |
partialMatch |
表示地理編碼器能傳回要求部分部分,但原始要求卻無法傳回原始要求。建議您比對原始要求,檢查是否有拼寫錯誤和/或不完整的地址。 |
placeId |
這個結果的地點 ID。 |
intermediateWaypointRequestIndex |
要求中對應的中繼路線索引。只有在對應的路線控點為中繼路線控點時,才會填入資料。 |