擴充內容

擴充內容

為協助測試新功能,並讓開發人員能在 GTFS Realtime 動態饋給中加入額外資訊,我們會使用通訊協定緩衝區的「擴充內容」功能。我們可運用擴充內容在通訊協定緩衝區訊息中定義命名空間,而第三方開發人員則可在其中定義其他欄位,無需修改原本的原型定義。

如果開發人員想要擴充 GTFS Realtime 規格,請與 GTFS Realtime 郵寄清單聯絡,我們會為他們指派下一個可用的擴充內容 ID (從 1000 開始按遞增順序從編號清單中挑選),並記在下方的「擴充內容登錄」部分中。

在每個 GTFS Realtime 訊息定義的 extension 命名空間,都有標記 ID 會與這些指派的擴充內容 ID 互相對應。開發人員擁有指派的擴充內容 ID 後,在擴充任何或所有 GTFS Realtime 訊息時就會使用這個 ID。即使開發人員只打算擴充一則訊息,指派的擴充內容 ID 仍會留給所有訊息使用。

如果開發人員想要擴充規格,請勿使用擴充內容 ID 加入 stringint32 等單一欄位。建議先定義 MyTripDescriptorExtension 之類的新訊息,用來擴充基礎 GTFS Realtime 訊息後,再把所有新欄位加進訊息中。這樣就能產生理想的資源,讓您以任何想要的方式管理擴充內容訊息內的所有欄位,而不必保留主要清單中的新擴充內容 ID。

message MyTripDescriptorExtension {
  optional string some_string = 1;
  optional bool some_bool = 2;
  ...
}
extend transit_realtime.TripDescriptor {
  optional MyTripDescriptorExtension my_trip_descriptor = YOUR_EXTENSION_ID;
}

擴充內容登錄

擴充內容 ID 開發人員 聯絡資訊 詳細資料
1000 OneBusAway onebusaway-developers https://github.com/OneBusAway/onebusaway/wiki/GTFS-Realtime-Resources
1001 紐約市 MTA mtadeveloperresources http://mta.info/developers/
1002 Google transit-realtime-partner-support@google.com Google 地圖大眾運輸工具即時路況更新
1003 OVapi gtfs-rt (位於 ovapi.nl) http://gtfs.ovapi.nl
1004 Metra William Ashbaugh w.l.ashbaugh@gmail.com
1005 Metro-North Railroad John Larsen
1006 realCity David Varga http://realcity.io
1007 NSW TrainLink Gregory Nicholls 群組討論
1008 SEPTA (賓州東南地區交通局)) Gregory Apessos https://github.com/septadev
1009 Swiftly mike@goswift.ly 群組討論
1010 IBI Group Ritesh Warade GitHub 提案:針對「服務快訊」中的新時間戳記