GTFS リアルタイムとは

GTFS リアルタイムは、公共交通機関が運行車両に関するリアルタイムの最新情報をアプリケーション デベロッパーに提供できるようにするためのフィードの仕様です。この仕様は、公共交通機関の時刻表とその地理的情報に使用されるオープンなデータ形式である GTFS(General Transit Feed Specification)の拡張版です。GTFS リアルタイムは、実装しやすいこと、GTFS との相互運用性が高いこと、乗客に関係する情報に重点を置くことに基づいて考案されました。

この仕様の策定は、最初の Live Transit Updates の提携交通機関や多数の乗換案内アプリケーション デベロッパーと Google との間で協力して行われました。現在は、Apache 2.0 ライセンスの下で公開されています。

利用方法

  1. 以下の概要を読みます。
  2. 提供するフィードのタイプを決めます。
  3. フィードの例に目を通します。
  4. リファレンスを参考にして独自のフィードを作成します。
  5. フィードを公開します。

GTFS リアルタイムのフィード タイプの概要

この仕様では現在、次のタイプの情報をサポートしています:

  • ルート最新情報 - 遅延、中止、ルート変更
  • 運行情報 - 停車地の変更や、駅、ルート、または路線網全体に関係する不測の事態
  • 車両の現在地 - 現在地や渋滞の度合いなど、車両に関する情報

各タイプの最新情報は別々のフィードで提供されます。フィードは HTTP 経由で配信され、頻繁に更新されます。ファイル自体は通常のバイナリ ファイルなので、どのタイプのウェブサーバーでもファイルのホストと配信が可能です(他の転送プロトコルも使用できます)。あるいは、ウェブ アプリケーション サーバーを使用した場合は、有効な HTTP GET リクエストに対するレスポンスとしてフィードを返すことができます。フィードの更新、取得の頻度についても、その具体的な方法についても、特に制約はありません。

GTFS リアルタイムは、運行車両の「今現在の」状態を表すことができます。したがって、フィードは定期的に(できれば車両位置自動特定システムから新しいデータが送信されたときは常に)更新される必要があります。

フィードのタイプについて詳しくはこちらをご覧ください。

データ形式

GTFS リアルタイムのデータ交換形式はプロトコル バッファをベースとしています。

プロトコル バッファは、構造化データをシリアル化するための、言語とプラットフォームに中立なメカニズムです(XML のようですが、XML より小さく、高速で、シンプルです)。データ構造は gtfs-realtime.proto ファイルで定義されます。さらにこのファイルを基に、Java、C++、Python などの各種言語を使ってさまざまなデータ ストリームとの間で構造化データを簡単に読み書きするためのソース コードが生成されます。

プロトコル バッファについて詳しくはこちらをご覧ください。

データ構造

要素の階層と、各要素のタイプの定義は、gtfs-realtime.proto ファイルで指定します。

このテキスト ファイルを使って、必要なライブラリをお好みのプログラミング言語で生成します。これらのライブラリは、有効な GTFS リアルタイムのフィードを生成するために必要なクラスや関数を提供するものです。ライブラリを利用することで、フィードの作成が簡単になるだけでなく、有効なフィードだけを生成することができます。

データ構造について詳しくはこちらをご覧ください。

参考情報

GTFS リアルタイムに関するディスカッションに参加してこの仕様に対する変更や追加を提案するには、GTFS リアルタイムのヘルプ グループにご参加ください。

Google マップと Live Transit Updates

GTFS リアルタイムを応用したアプリケーションの 1 つに Live Transit Updates があります。これは Google マップ内の機能で、ユーザーにリアルタイムの交通機関情報を提供するものです。Google マップにリアルタイムの交通情報を提供することに興味をお持ちの公共交通機関の方は、乗換案内パートナー ページをご覧ください。