大眾運輸路線會根據該地區的大眾運輸選項提供導航指示。大眾運輸選項可能包括公車、地鐵和火車等。大眾運輸路線通常也會提供步行至大眾運輸站點、從大眾運輸站點出發,以及在大眾運輸站點間移動的指示。由於大眾運輸路線通常需要使用多種交通方式,因此要求路線的方式和部分回應內容會有所不同。
大眾運輸路線與其他路線的差異
您透過設定 travelMode 為 TRANSIT 要求的路線與使用不同交通方式選項的路線不同。與其他路徑相比,您無法要求所有相同的物件和選項,且回應會傳回不同的欄位。
在 Routes API 中,步驟一律是所有類型交通方式的單一導覽指示。因此,每項導覽指示都是一個步驟。大眾運輸路線回應與其他交通方式的路線非常相似,但有幾項主要差異:
| 要求差異 | 回覆差異 |
|---|---|
| 你無法指定中途停靠點。 | 包括 Transit 詳細資料。 |
| 無法取得環保路徑 | 包含每種交通方式的中繼資料,其中含有該交通方式的步驟摘要,位於 stepsOverview 中 (如要要求這項中繼資料,請使用 stepsOverview 欄位遮罩)。 |
| 無法指定是否要納入流量資料,以及納入方式 | |
| 無法指定要避開的路線特徵 | |
只能指定 transitPreferences。詳情請參閱 TransitPreference。 |
規劃大眾運輸路線
- 設定起點和目的地。
- 將
travelMode設為TRANSIT。 - 新增適當的欄位遮罩,即可取得所需的回覆。請參閱「要求所需的大眾運輸路線欄位」。
- 視需要設定選用參數。請參閱「設定大眾運輸路線的參數」
要求所需的轉乘路線欄位
使用欄位遮罩要求所需的大眾運輸路線欄位。下表列出一些建議的路線回應,以及用於要求這些回應的欄位遮罩。
| 如何要求這項資訊 | 使用這個欄位遮罩 |
|---|---|
| 所有路線詳細資料。 | * |
| 路線段的交通運輸詳細資料。 | legs |
| 路線各階段的預估車資,以及本地化的預估車資。 | travelAdvisory |
| 時間和距離的本地化文字 | localizedValues |
設定大眾運輸路線的參數
以下是大眾運輸路線的相關參數:
| 如要這麼做 | 使用這項參數 | 附註 |
|---|---|---|
| 選取大眾運輸模式 | travelMode: "TRANSIT" |
必要元素。瞭解詳情。 |
| 設定抵達或出發時間 | arrivalTime: new Date(yyyy-mm-ddThh:mm:ssZ)
或 departureTime: new Date(yyyy-mm-ddThh:mm:ssZ) |
(選用步驟) 您可以指定抵達時間或出發時間。如果未指定任何時間,departureTime 預設為目前的執行時間 (now)。您只能在以下時間範圍內設定抵達和出發時間,並以目前的執行時間 (now) 做為參考:
Date 物件表示。
注意:大眾運輸時刻表經常變動,可搭乘的大眾運輸行程可能會隨時間改變,且無法保證能提供長期預測的穩定結果。 |
| 包含替代路線 | computeAlternativeRoutes: true |
(選用步驟) 設為 true 時,computeRoutes 最多會計算 3 條額外路線 (如有)。瞭解詳情 |
| 指定大眾運輸類型的偏好設定 | transitPreference: {allowedTransitModes: ["BUS", "SUBWAY", "TRAIN", "LIGHT_RAIL", "RAIL"]}
注意:即使指定偏好的交通方式,系統仍可能會回傳使用其他交通方式的路線,甚至只使用其他交通方式,具體情況取決於路線的效率,以及偏好交通方式的可用性。 |
(選用步驟) 指定偏好的大眾運輸交通方式。 瞭解詳情 |
| 指定大眾運輸路線的偏好設定 | transitPreference: {routingPreference: "LESS_WALKING|FEWER_TRANSFERS"} |
(選用步驟) 指定大眾運輸路線偏好設定。瞭解詳情 |
要求範例
以下範例說明如何要求大眾運輸路線:
const request = { origin: 'Hunters Point San Francisco, CA 94124', destination: '201 Marine Dr, San Francisco, CA 94129', travelMode: 'TRANSIT', departureTime: new Date(), transitPreference: { allowedTransitModes: ['BUS', 'SUBWAY', 'TRAIN', 'LIGHT_RAIL', 'RAIL'], routingPreference: 'FEWER_TRANSFERS', // Alternatively, 'LESS_WALKING'. }, fields: ['path', 'legs', 'travelAdvisory', 'localizedValues'], };