Google 大眾運輸 GTFS 擴充內容

透過集合功能整理內容 你可以依據偏好儲存及分類內容。

簡介

Google 大眾運輸團隊持續致力於改善一般大眾運輸動態饋給規格 (GTFS),以滿足合作夥伴的需求。我們已提議將多項擴充功能納入 GTFS 規格,於此同時,合作夥伴可在透過 Google 地圖提交給 Google 大眾運輸的動態饋給中使用這個規格。以下為這些功能的完整清單。

如果您有自己的 GTFS 規格擴充提案,請參閱 GTFS 官方變更程序

特定車資的轉乘次數上限

為了支援在包含多間運輸公司的動態饋給中加入車資屬性,我們正在考慮採用以下擴充功能:

欄位名稱 存在必要性 詳細資料
transfers 必要 請使用這個欄位為車資設定允許的轉乘次數上限,排程轉乘 (又稱不離座轉乘) 不包含在內。Google 大眾運輸接受從 05 的值。如果您不想為車資設定轉乘次數限制,請將 transfers 欄位留空。

IC 卡價格 (日本)

積體電路 (IC) 卡是可重複加值的預付智慧卡,「只能在日本」用於支付火車、地鐵、公車和單軌列車的車資。大多數 IC 卡 (例如 Pasmo 和超級都會智慧卡 (SUICA)) 通常都會為乘客提供折扣。下列 Google 專屬擴充內容支援模擬 IC 卡車資。

fare_attributes.txt

欄位名稱 必要性 詳細資料
ic_price 選用 如果為 IC 卡使用者提供折扣,這個值即為折扣後車資金額。如果沒有為 IC 卡片使用者提供折扣,請將值設為 -1。如果運輸公司不支援 IC 卡,請將值設為 -1

其他路線類型

GTFS 目前定義多種路線,可用於描述特定路線的服務類型 (例如公車、火車與渡輪)。為了支援更多類型,我們已提議 routes.txt route_type 欄位的擴充內容。詳情請參閱「擴充 GTFS 路線類型」一文。

車站車輛類型

我們已提議相關擴充內容,以指定為特定停靠站提供服務的車輛類型。

stops.txt

欄位名稱 必要性 詳細資料
vehicle_type 選用

請使用這個欄位來說明停靠站使用的交通工具類型。這個欄位可接受有效的 routes.txt route_type 值,包括我們提議的擴充 GTFS 路線類型值

行程改道

如果因為特殊事件或預定服務中斷 (例如軌道作業等),而提供在一般時間表之外營運的行程,或是偏離正常路線的行程,就很適合使用這個項目來指出這類情況。我們提議擴充 trips.txt 來指出這類例外服務。

trips.txt

欄位名稱 必要性 詳細資料
exceptional 選用

將這個欄位設為 1 來代表服務例外狀況,例如因特殊事件而新增的服務,或是因預定服務中斷 (軌道作業) 而偏離正常路線的服務。如果是一般服務,請將這個欄位設為 0

路線之間和行程之間的轉乘

目前,GTFS 規格允許運輸公司使用 transfers.txt 檔案定義轉乘語意,並支援首選轉乘、定時轉乘和受限轉乘等功能。這幾類轉乘目前僅適用於停靠站。Google 收到許多運輸公司的意見回饋,表示他們希望能夠在路線甚至是行程層級指定更詳細的轉乘資訊。我們與這些運輸公司合作,共同針對路線之間和行程之間的轉乘模擬設計了一項提案,而我們也希望 GTFS 社群能提供意見回饋。

動機

我們希望能為任何停靠站組合指定特定路線甚至是特定行程之間的轉乘,而不必為這個停靠站組合的所有行程指定相同的轉乘。

舉例來說:

  • 如果有兩個行程抵達同一個月台且彼此等候,我們會希望指定這兩個行程之間的定時轉乘。不過,我們不希望這個火車站的所有轉乘都是定時轉乘。

  • 如果知道某輛火車通常誤點最多 30 分鐘,且排定的抵達和出發時間相隔不到 35 分鐘,我們會希望禁止從這輛火車轉乘另一輛。

詳細資料

transfers.txt 中加入 4 個選用欄位:

  • from_route_id
  • to_route_id
  • from_trip_id
  • to_trip_id

from_route_idto_route_id 欄位可包含 route_id (如 routes.txt 所指定),因此會縮小該趟轉乘的適用範圍。如果指定 from_route_id,該趟轉乘就只會套用到位於特定 from_stop_id 且具有該路線 ID 的抵達行程。如果指定 to_route_id,該趟轉乘就只會套用到位於特定 to_stop_id 且具有該路線 ID 的出發行程。

from_trip_idto_trip_id 欄位可包含 trip_id (如 trips.txt 所指定)。如果指定 from_trip_id,系統就會略過 from_route_id;如果指定 to_trip_id,系統則會略過 to_route_id。如果指定 from_trip_id,該趟轉乘就只會套用到位於特定 from_stop_id 且具有該行程 ID 的抵達行程。如果指定 to_trip_id,該趟轉乘就只會套用到位於特定 to_stop_id 且具有該行程 ID 的出發行程。

轉乘的特異性

某些轉乘更具特異性。我們希望定義簡單的排名機制,以便判斷何時應採用轉乘。因此,我們會定義轉乘的「特異性」。

如果只指定 from_stop_id,則轉乘來源的特異性為 0,如果指定 from_route_id,則為 1,如果指定 from_trip_id,則為 2。這也適用於轉乘目標:如果只指定 to_stop_id,則為 0;如果指定 to_route_id,則為 1;如果指定 to_trip_id,則為 2。這兩個值的總和介於 04 之間 (含首尾),代表轉乘特異性。在任何經過排序的抵達行程和出發行程組合中,系統會選擇兩趟行程之間具有最高特異性的轉乘。因此,在任何行程組合中,不應有兩項轉乘具有相同的最高特異性。

模稜兩可的規則示例:

from_stop_id,to_stop_id,from_route_id,to_route_id,transfer_type
stopFrom,stopTo,routeFrom,,0
stopFrom,stopTo,,routeTo,1

這兩項轉乘的特異性都是 1。但針對在路線 ID routeFrom 抵達停靠站 stopFrom 的行程與路線 ID routeTo 抵達停靠站 stopTo 的行程之間的轉乘,這兩項規則的任何一項都適用。