- HTTP 要求
- 要求主體
- 回應主體
- PolylineQuality
- PolylineEncoding
- ReferenceRoute
- ExtraComputation
- 路徑
- RouteLabel
- RouteLeg
- Polyline
- RouteLegStep
- NavigationInstruction
- 機動
- RouteLegStepTravelAdvisory
- RouteLegStepLocalizedValues
- RouteLegStepTransitDetails
- TransitStopDetails
- TransitStop
- TransitDetailsLocalizedValues
- LocalizedTime
- TransitLine
- TransitAgency
- TransitVehicle
- TransitVehicleType
- RouteLegTravelAdvisory
- RouteLegLocalizedValues
- StepsOverview
- MultiModalSegment
- Viewport
- 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 個中繼路線控點。 |
travel |
選用設定。指定交通方式。 |
routing |
選用設定。指定計算路線的方式。伺服器會嘗試使用所選的路由偏好設定來計算路徑。如果路由偏好設定導致錯誤或延遲時間過長,系統會傳回錯誤。只有在 |
polyline |
選用設定。指定折線的品質偏好設定。 |
polyline |
選用設定。指定折線的偏好編碼。 |
departure |
選用設定。出發時間。如果您未設定這個值,則預設值為您提出要求的時間。注意:只有在 採用 RFC3339 世界標準時間「Zulu」格式的時間戳記,精確度達奈秒單位,最多九個小數位數。例如 |
arrival |
選用設定。抵達時間。注意:只有在 採用 RFC3339 世界標準時間「Zulu」格式的時間戳記,精確度達奈秒單位,最多九個小數位數。例如 |
compute |
選用設定。指定是否要計算路線以外的替代路線。對於含有中繼路線控點的要求,系統不會傳回替代路線。 |
route |
選用設定。一組會影響路徑計算方式的條件。 |
language |
選用設定。BCP-47 語言代碼,例如「en-US」或「sr-Latn」。詳情請參閱「Unicode 語言代碼」。如需支援語言清單,請參閱「程式語言支援」一文。如果您未提供這個值,系統會根據路線要求的位置推測顯示語言。 |
region |
選用設定。區碼,採 ccTLD (「頂層網域」) 的兩位字元值 詳情請參閱「國家/地區代碼頂層網域」。 |
units |
選用設定。指定顯示欄位的測量單位。這些欄位包括 |
optimize |
選用設定。如果設為 true,服務會嘗試重新排序指定的中繼路線點,盡可能降低路線的整體成本。如果任何中繼路線控點都是 |
requested |
選用設定。除了預設路線外,還可指定要計算哪些參考路線做為要求的一部分。參考路徑是指與預設路徑不同的路徑計算目標。舉例來說, |
extra |
選用設定。可用來完成要求的額外運算清單。注意:這些額外運算可能會在回應中傳回額外欄位。您必須在回應中傳回的欄位遮罩中指定這些額外欄位。 |
traffic |
選用設定。指定計算交通時間時要採用的假設。這項設定會影響 |
transit |
選用設定。指定會影響 |
回應主體
v2.computeRoutes 回應訊息。
如果成功,回應主體會含有以下結構的資料:
JSON 表示法 |
---|
{ "routes": [ { object ( |
欄位 | |
---|---|
routes[] |
在您指定 |
fallback |
在某些情況下,如果伺服器無法根據所有輸入偏好設定計算路徑結果,可能會改用其他計算方式。使用備用模式時,這個欄位會包含備用回應的詳細資訊。否則,這個欄位未設定。 |
geocoding |
包含路線控點的 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 |
路線的移動距離較短。這是實驗功能。 對於 針對 這項功能不支援任何其他行程模式、中繼路線控點或 |
ExtraComputation
在完成要求時要執行的額外運算。
列舉 | |
---|---|
EXTRA_COMPUTATION_UNSPECIFIED |
未使用。含有這個值的要求會失敗。 |
TOLLS |
路線的通行費資訊。 |
FUEL_CONSUMPTION |
路線的預估油耗。 |
TRAFFIC_ON_POLYLINE |
路線的車流量監測折線。 |
HTML_FORMATTED_NAVIGATION_INSTRUCTIONS |
NavigationInstructions 會以格式化的 HTML 文字字串呈現。這類內容應按原樣讀取。請勿以程式輔助方式剖析。 |
路線
包含路線,路線由一系列連接的路段組成,這些路段會連結起點、終點和中途路線控點。
JSON 表示法 |
---|
{ "routeLabels": [ enum ( |
欄位 | |
---|---|
route |
|
legs[] |
路線的路段集合 (路線控點之間的路徑區段)。每個路段都對應至兩個非 |
distance |
路線的移動距離 (以公尺為單位)。 |
duration |
導航路線所需的時間長度。如果您將 時間長度以秒為單位,最多可有 9 個小數位數,並應以「 |
static |
不考量交通狀況的路線行駛時間。 時間長度以秒為單位,最多可有 9 個小數位數,並應以「 |
polyline |
整體路線折線。這條折線是所有 |
description |
路線說明。 |
warnings[] |
顯示路線時要顯示的警告陣列。 |
viewport |
折線的可視區域定界框。 |
travel |
路線的其他資訊。 |
optimized |
如果您將 |
localized |
|
route |
不透明權杖,可傳遞至 Navigation SDK,以便在導航期間重建路線,並在重新導航時,遵循建立路線時的原始意圖。將這個符記視為不透明 blob。請勿比較不同要求的值,因為即使服務傳回完全相同的路線,值也可能會有所變動。 注意: |
RouteLabel
的標籤,可用於識別路線的特定屬性,以便與其他路線進行比較。Route
列舉 | |
---|---|
ROUTE_LABEL_UNSPECIFIED |
預設值 - 未使用。 |
DEFAULT_ROUTE |
路線運算作業傳回的預設「最佳」路線。 |
DEFAULT_ROUTE_ALTERNATE |
這是預設「最佳」路線的替代方案。指定 時,系統會傳回類似這樣的路線。 |
FUEL_EFFICIENT |
省油路線。標示為此值的路線會根據燃料消耗量等 Eco 參數進行最佳化。 |
SHORTER_DISTANCE |
行程距離較短的路線。這是實驗功能。 |
RouteLeg
包含非 via
路線控點之間的路段。
JSON 表示法 |
---|
{ "distanceMeters": integer, "duration": string, "staticDuration": string, "polyline": { object ( |
欄位 | |
---|---|
distance |
路線路段的移動距離,以公尺為單位。 |
duration |
航程所需的時間長度。如果 時間長度以秒為單位,最多可有 9 個小數位數,並應以「 |
static |
路段的實際行程時間,計算時不考量交通狀況。 時間長度以秒為單位,最多可有 9 個小數位數,並應以「 |
polyline |
這個路段的整體折線,包含每個 |
start |
這個路段的起點。這個位置可能與提供的 |
end |
這個路段的終點位置。這個位置可能與提供的 |
steps[] |
這個路段內的步驟陣列,用於表示路段內的區段。每個步驟都代表一個導覽指示。 |
travel |
包含使用者應瞭解的其他資訊,例如路線路段可能的交通區限制。 |
localized |
|
steps |
這個 |
折線
封裝已編碼的折線。
JSON 表示法 |
---|
{ // Union field |
欄位 | |
---|---|
聯集欄位 polyline_type 。封裝折線類型。預設值為 encoded_polyline。polyline_type 只能是下列其中一項: |
|
encoded |
使用折線編碼演算法對折線進行字串編碼 |
geo |
使用 GeoJSON LineString 格式指定折線。 |
RouteLegStep
包含
的區段。步驟對應單一導覽指示,路線段落由步驟組成。RouteLeg
JSON 表示法 |
---|
{ "distanceMeters": integer, "staticDuration": string, "polyline": { object ( |
欄位 | |
---|---|
distance |
這個步驟的移動距離,以公尺為單位。在某些情況下,這個欄位可能沒有值。 |
static |
不考量交通狀況的這個步驟所需的移動時間。在某些情況下,這個欄位可能沒有值。 時間長度以秒為單位,最多可有 9 個小數位數,並應以「 |
polyline |
與此步驟相關聯的折線。 |
start |
這個步驟的起點。 |
end |
這個步驟的結束位置。 |
navigation |
導航指示。 |
travel |
包含使用者應瞭解的其他資訊,例如路線步驟的可能交通區限制。 |
localized |
|
transit |
如果旅遊模式為 |
travel |
這個步驟使用的交通模式。 |
機動
一組值,用於指定目前步驟的導航動作 (例如左轉、併入或直行)。
列舉 | |
---|---|
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 ( |
欄位 | |
---|---|
speed |
注意:這個欄位目前未填入任何內容。 |
RouteLegStepLocalizedValues
特定資源的文字表示法。
JSON 表示法 |
---|
{ "distance": { object ( |
欄位 | |
---|---|
distance |
以文字形式表示的移動距離。 |
static |
不考量交通狀況的時間長度,以文字形式表示。 |
RouteLegStepTransitDetails
與 TRANSIT
路徑相關的 RouteLegStep
額外資訊。
JSON 表示法 |
---|
{ "stopDetails": { object ( |
欄位 | |
---|---|
stop |
步驟的抵達和出發站資訊。 |
localized |
|
headsign |
指定這條路線的行進方向,如交通工具或出發站上所標示的方向。方向通常是終點站。 |
headway |
指定從目前同一站點出發的預計間隔時間。例如,假設間隔秒數值為 600,則表示如果錯過上一班公車,下一班預計要等 10 分鐘。 時間長度以秒為單位,最多可有 9 個小數位數,並應以「 |
transit |
這個步驟中使用的大眾運輸路線相關資訊。 |
stop |
從出發站到抵達站的停靠站數量。這個計數包含抵達站,但不包含出發站。舉例來說,如果路線從 A 站出發,途經 B 和 C 兩站,最後抵達 D 站,
會傳回 3。 |
trip |
時刻表和看板上顯示的文字,可供乘客識別大眾運輸行程。這段文字應可用於識別服務日內的特定行程。舉例來說,「538」是 Amtrak 火車的 |
TransitStopDetails
RouteLegStep
的轉運站詳細資料。
JSON 表示法 |
---|
{ "arrivalStop": { object ( |
欄位 | |
---|---|
arrival |
步驟的抵達站資訊。 |
arrival |
步驟的預計到達時間。 採用 RFC3339 世界標準時間「Zulu」格式的時間戳記,精確度達奈秒單位,最多九個小數位數。例如 |
departure |
步驟的出發站資訊。 |
departure |
步驟的預估出發時間。 採用 RFC3339 世界標準時間「Zulu」格式的時間戳記,精確度達奈秒單位,最多九個小數位數。例如 |
TransitStop
大眾運輸站點資訊。
JSON 表示法 |
---|
{
"name": string,
"location": {
object ( |
欄位 | |
---|---|
name |
大眾運輸停靠站的名稱。 |
location |
停靠站的位置,以經緯度座標表示。 |
TransitDetailsLocalizedValues
RouteTransitDetails
值的本地化說明。
JSON 表示法 |
---|
{ "arrivalTime": { object ( |
欄位 | |
---|---|
arrival |
時間的格式化文字表示法,以及對應的時區。 |
departure |
時間的格式化文字表示法,以及對應的時區。 |
LocalizedTime
時間的本地化說明。
JSON 表示法 |
---|
{
"time": {
object ( |
欄位 | |
---|---|
time |
以字串形式指定的時間,以特定時區為準。 |
time |
包含時區。這個值是時區名稱 (如 IANA 時區資料庫中所定義),例如「America/New_York」。 |
TransitLine
包含目前步驟中使用的大眾運輸路線相關資訊。
JSON 表示法 |
---|
{ "agencies": [ { object ( |
欄位 | |
---|---|
agencies[] |
營運這條大眾運輸路線的大眾運輸公司 (或多家公司)。 |
name |
這條大眾運輸路線的全名,例如「8 Avenue Local」。 |
uri |
這條大眾運輸路線的 URI (由運輸公司提供)。 |
color |
這條路線常用的標示顏色。以十六進制表示。 |
icon |
與這條路線相關聯的圖示 URI。 |
name |
這條大眾運輸路線的簡稱。這個名稱通常是一個路線編號,例如「M7」或「355」。 |
text |
這條路線常用的文字顏色,以十六進制表示。 |
vehicle |
這條大眾運輸路線的車輛類型。 |
TransitAgency
營運大眾運輸路線的大眾運輸公司。
JSON 表示法 |
---|
{ "name": string, "phoneNumber": string, "uri": string } |
欄位 | |
---|---|
name |
運輸公司的名稱。 |
phone |
運輸公司依地區設定的電話號碼格式。 |
uri |
運輸公司的 URI。 |
TransitVehicle
大眾運輸路線中使用的車輛資訊。
JSON 表示法 |
---|
{ "name": { object ( |
欄位 | |
---|---|
name |
車輛名稱 (大寫)。 |
type |
使用的車輛類型。 |
icon |
與此交通工具類型相關聯的圖示 URI。 |
local |
此交通工具類型相關圖示的 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 ( |
欄位 | |
---|---|
toll |
包含特定 |
speed |
速度讀取間隔,詳細說明流量密度。適用於 範例:
|
RouteLegLocalizedValues
特定資源的文字表示法。
JSON 表示法 |
---|
{ "distance": { object ( |
欄位 | |
---|---|
distance |
以文字形式表示的移動距離。 |
duration |
時間長度,以文字形式表示,並依查詢的地區進行本地化。考量路況。注意:如果您未要求流量資訊,這個值就會與 staticDuration 相同。 |
static |
不考量交通狀況的時間長度,以文字形式表示。 |
StepsOverview
提供 RouteLegStep
清單的總覽資訊。
JSON 表示法 |
---|
{
"multiModalSegments": [
{
object ( |
欄位 | |
---|---|
multi |
|
MultiModalSegment
提供 RouteLeg.steps
的不同多模態區段的摘要資訊。多模態區段的定義是一或多個連續的 RouteLegStep
,且這些 RouteLegStep
具有相同的 RouteTravelMode
。如果 RouteLeg
的步驟中不含任何多模態區隔,這個欄位就不會填入資料。
JSON 表示法 |
---|
{ "navigationInstruction": { object ( |
欄位 | |
---|---|
navigation |
多模態路段的 NavigationInstruction。 |
travel |
多模態路段的交通方式。 |
step |
對應的 |
step |
對應的 |
可視區域
經緯度可視區域,以兩個對角相反的 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 |
時間長度,以文字形式表示,並依查詢的地區進行本地化。考量路況。注意:如果您未要求擷取流量資訊,這個值會與 |
static |
不考量交通狀況的時間長度,以文字形式表示。 |
transit |
以文字形式表示的大眾運輸票價。 |
GeocodingResults
包含起點、目的地和中繼路線控點的
。僅會針對地址路線點填入資料。GeocodedWaypoints
JSON 表示法 |
---|
{ "origin": { object ( |
欄位 | |
---|---|
origin |
經過地理編碼的起點路線控點。 |
destination |
目的地經過地理編碼的路線控點。 |
intermediates[] |
中間地理編碼路線控點清單,每個路線控點都包含一個索引欄位,對應於要求中指定的路線控點位置 (以 0 為基準)。 |
GeocodedWaypoint
用作路線點的詳細位置。只有在地址路線點時才會填入資料。包含地理編碼結果的詳細資料,用於判斷地址的地理編碼結果。
JSON 表示法 |
---|
{
"geocoderStatus": {
object ( |
欄位 | |
---|---|
geocoder |
表示地理編碼作業產生的狀態碼。 |
type[] |
結果的類型,以零或多個類型標記的形式呈現。支援的類型:地址類型和地址元件類型。 |
partial |
表示地理編碼器沒有傳回與原始要求完全相符的結果,但可以比對部分要求的地址。建議您比對原始要求,檢查是否有拼寫錯誤和/或不完整的地址。 |
place |
這個結果的地點 ID。 |
intermediate |
要求中對應中繼路線點的索引。只有在對應路線控點是中繼路線控點時,才會填入這個值。 |