取得大眾運輸路線

歐洲經濟區 (EEA) 開發人員

大眾運輸路線會根據該地區的大眾運輸選項提供導航指示。大眾運輸選項可能包括公車、地鐵和火車等。大眾運輸路線通常也會提供步行至大眾運輸站點、從大眾運輸站點出發,以及在大眾運輸站點間移動的指示。由於大眾運輸路線通常需要使用多種交通方式,因此要求路線的方式和部分回應內容會有所不同。

大眾運輸路線與其他路線的差異

您透過設定 travelModeTRANSIT 要求的路線與使用不同交通方式選項的路線不同。與其他路徑相比,您無法要求所有相同的物件和選項,且回應會傳回不同的欄位。

在 Routes API 中,步驟一律是所有類型交通方式的單一導覽指示。因此,每項導覽指示都是一個步驟。大眾運輸路線回應與其他交通方式的路線非常相似,但有幾項主要差異:

要求差異 回覆差異
你無法指定中途停靠點。 包括 Transit 詳細資料。
無法取得環保路徑 包含每種交通方式的中繼資料,其中含有該交通方式的步驟摘要,位於 stepsOverview 中 (如要要求這項中繼資料,請使用 stepsOverview 欄位遮罩)。
無法指定是否要納入流量資料,以及納入方式
無法指定要避開的路線特徵
只能指定 transitPreferences。詳情請參閱 TransitPreference

規劃大眾運輸路線

  1. 設定起點和目的地。
  2. travelMode 設為 TRANSIT
  3. 新增適當的欄位遮罩,即可取得所需的回覆。請參閱「要求所需的大眾運輸路線欄位」。
  4. 視需要設定選用參數。請參閱「設定大眾運輸路線的參數

要求所需的轉乘路線欄位

使用欄位遮罩要求所需的大眾運輸路線欄位。下表列出一些建議的路線回應,以及用於要求這些回應的欄位遮罩。

如何要求這項資訊 使用這個欄位遮罩
所有路線詳細資料。 *
路線段的交通運輸詳細資料。 legs
路線各階段的預估車資,以及本地化的預估車資。 travelAdvisory
時間和距離的本地化文字 localizedValues

設定大眾運輸路線的參數

以下是大眾運輸路線的相關參數:

如要這麼做 使用這項參數 附註
選取大眾運輸模式 travelMode: "TRANSIT" 必要元素。瞭解詳情
設定抵達或出發時間 arrivalTime: new Date(yyyy-mm-ddThh:mm:ssZ)

departureTime: new Date(yyyy-mm-ddThh:mm:ssZ)
(選用步驟) 您可以指定抵達時間或出發時間。如果未指定任何時間,departureTime 預設為目前的執行時間 (now)。您只能在以下時間範圍內設定抵達和出發時間,並以目前的執行時間 (now) 做為參考:
  • 最晚在 now 前 7 天
  • now後 100 天內 (含第 100 天)
時間以 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'],
};