交通機関は GTFS リアルタイム フィードを利用して、運行の障害(駅の閉鎖、運転の見合わせ、大幅な遅れなど)、車両の現在地、予定到着時刻に関するリアルタイムの情報を利用客に提供することができます。
このサイトでは、バージョン 2.0 のフィード仕様についての説明をドキュメント化しています。
用語の定義
必須
GTFS リアルタイム v2.0 以降では「必須」列を追加しました。この列には、有効な乗換案内データとして、これを利用するアプリケーションにとって有意なものとなるために、データ作成者が提供しなければならないフィールドを示しています。
以下の説明において、「必須」フィールドには次の値が使われています。
- 必須: 指定する必要のあるフィールドです。
- 条件付き必須: 特定の条件下で必須となります。条件については、フィールドの「詳細」フィールドに記載されています。この条件外では、フィールドは省略することができます。
- 任意: 省略可能で、指定する必要はありません。ただし、基盤となる車両位置特定自動システム(
VehiclePosition
timestamp
など)でデータが利用可能である場合は、省略可能なフィールドでも、できる限り指定することをおすすめします。
セマンティック要件は GTFS リアルタイム バージョン 1.0 では定義されていないため、gtfs_realtime_version
が 1
のフィードはこれらの要件を満たしていない可能性があります(詳しくは、セマンティック要件のための提案をご覧ください)。
カーディナリティ(基数)
「カーディナリティ」は、特定のフィールドに指定できる要素の数を表します。次の値が使用されます。
- 1 - このフィールドに指定できる要素は 1 つです。これは、プロトコル バッファのフィールド ルールの required と optional に対応します。
- 多 - このフィールドには、多数の要素(0、1、またはそれ以上)を指定できます。これは、プロトコル バッファのフィールド ルールの repeated に対応します。
「必須」フィールドと「説明」フィールドを必ず参照し、フィールドが「必須」「条件付き必須」または「任意」のどれであるかを確認してください。プロトコル バッファのフィールド ルールについては gtfs-realtime.proto
を参照してください。
プロトコル バッファのデータタイプ
フィード要素の説明には、次のプロトコル バッファ データタイプが使用されます。
- message(メッセージ): 複合型
- enum(列挙型): 固定値のリスト
試験運用フィールド
試験運用とラベル付けされたフィールドは、まだ正式には採用されておらず、変更される可能性があります。試験運用フィールドは将来、正式に採用される可能性があります。
要素の目次
要素
message FeedMessage
フィード メッセージの内容です。ストリーム内の各メッセージは、適切な HTTP GET
リクエストへのレスポンスとして取得されます。リアルタイム フィードは、常に既存の GTFS フィードとの関係で定義されます。エンティティ ID はすべて GTFS フィードに対応して解決されます。
フィールド
フィールド名 | タイプ | 必須 | カーディナリティ | 説明 |
---|---|---|---|---|
header |
FeedHeader |
必須 | 1 | このフィードとフィード メッセージに関するメタデータ。 |
entity |
FeedEntity |
条件付き必須 | 多 | フィードの内容。交通システムに利用可能なリアルタイムの情報がある場合は、このフィールドを指定する必要があります。このフィールドが空の場合、情報を消費する側は利用可能なリアルタイム情報がないと判断する必要があります。 |
message FeedHeader
フィード メッセージに含まれるフィードに関するメタデータ。
フィールド
フィールド名 | タイプ | 必須 | カーディナリティ | 説明 |
---|---|---|---|---|
gtfs_realtime_version |
string |
必須 | 1 | フィード仕様のバージョン。最新バージョンは 2.0 です。 |
incrementality |
Incrementality |
必須 | 1 | |
timestamp |
uint64 |
必須 | 1 | このタイムスタンプは、このフィードの内容が作成された時間(サーバー時)を POSIX 時間(1970 年 1 月 1 日 00:00:00 UTC からの経過秒数)で表します。リアルタイムの情報を生成するシステムと消費するシステムの間の時間のずれを避けるため、timestamp はタイムサーバーから取得することを強くおすすめします。数秒の時間差は許容されるため、Stratum 3 のサーバーか、それより下位のサーバーを使用してもまったく差し支えありません。 |
enum Incrementality
最新の取得値が増分データかどうかを判断します。
FULL_DATASET
: このフィードの更新によって、更新以前のリアルタイム情報がすべて上書きされます。そのため、既知のリアルタイム情報が完全な状態で提供されると期待されています。DIFFERENTIAL
: 現在、このモードはサポートされておらず、このモードを使用したフィードの動作は特定されていません。DIFFERENTIAL
モードを使用した場合の動作については、GTFS リアルタイム メーリング リスト上でディスカッションが行われており、ドキュメントは結論が出次第更新される予定です。
値
値 |
---|
FULL_DATASET |
DIFFERENTIAL |
message FeedEntity
乗換案内フィード内のエンティティの定義(または更新)。エンティティが削除されていない場合は、trip_update
、vehicle
、alert
のいずれかのフィールドにデータを指定する必要があります。
フィールド
フィールド名 | タイプ | 必須 | カーディナリティ | 説明 |
---|---|---|---|---|
id |
string |
必須 | 1 | このエンティティのフィード固有 ID。この ID は、増分データをサポートする目的にのみ使用されます。フィードで参照される実際のエンティティは、明示的なセレクタで指定する必要があります(詳しくは、後続の EntitySelector の項をご覧ください)。 |
is_deleted |
bool |
任意 | 1 | このエンティティを削除するかどうか。Incrementality の値が DIFFERENTIAL のフィードに対してのみ指定する必要があります。このフィールドは、Incrementality の値が FULL_DATASET のフィードには指定しないでください。 |
trip_update |
TripUpdate |
条件付き必須 | 1 | ルートの発車時間の遅延に関するリアルタイムのデータ。trip_update 、vehicle 、alert のうち少なくとも 1 つのフィールドを指定する必要があります。これらのフィールドをすべて空にすることはできません。 |
vehicle |
VehiclePosition |
条件付き必須 | 1 | 車両の現在地に関するリアルタイムのデータ。trip_update 、vehicle 、alert のうち少なくとも 1 つのフィールドを指定する必要があります。これらのフィールドをすべて空にすることはできません。 |
alert |
Alert |
条件付き必須 | 1 | リアルタイムのアラートに関するデータ。trip_update 、vehicle 、alert のうち少なくとも 1 つのフィールドを指定する必要があります。これらのフィールドをすべて空にすることはできません。 |
message TripUpdate
ルートを走行中の車両の移動状況に関するリアルタイムの更新情報。ルート更新情報エンティティに関する概要もご覧ください。
ScheduleRelationship
の値に応じて、TripUpdate
では次の項目を指定できます。
- 運行スケジュールに従って進行しているルート。
- 経路に沿って進行しているが、決まった運行スケジュールがないルート。
- 運行スケジュールに追加または削除されたルート。
この更新情報は、将来の予測される到着や出発イベント、またはすでに発生した過去のイベントに対応します。ほとんどの場合、過去のイベントに関する情報は測定値であるため、不確実度の値は 0
にすることをおすすめします。ただし、これが当てはまらない場合もあり得るため、過去のイベントの不確実度を 0
以外に設定することもできます。不確実度が 0
ではない場合、その更新情報は、完了していないルートや測定値が正確ではないルートに対する概算予測か、イベント発生後の検証がまだ行われていない過去についての予測のいずれかです。
この更新情報で、すでに完了しているルートを説明することもできます。その場合は、ルートの終点の更新情報を提供するだけで十分です。終点到着時刻が過去であれば、そのルート全体が過去のものであるとクライアント側で判断されるためです(さらに、終点以外の停車地に関する更新情報を提供することも可能ですが、さほど重要ではないでしょう)。このオプションは、ルートが運行スケジュールより早く完了しており、スケジュール上ではルートが現在まだ進行中であることを示す場合に適しています。このルートの最新情報を削除してしまうと、クライアント側でルートがまだ進行中であると見なされる可能性があります。フィード提供者は、過去の更新情報を削除できます。ただ、特にこの例のように削除しない方が実用的である場合など、必ずしも削除する必要はありません。
フィールド
フィールド名 | タイプ | 必須 | カーディナリティ | 説明 |
---|---|---|---|---|
trip |
TripDescriptor |
必須 | 1 | このメッセージが適用されるルート。実際の各ルート インスタンスにつき指定できる TripUpdate エンティティは 1 つまでです。何もない場合は、利用可能な予測情報がないことを意味しており、ルートが運行スケジュールどおりに進んでいるというわけではありません。 |
vehicle |
VehicleDescriptor |
任意 | 1 | このルートを走行する車両に関する追加情報。 |
stop_time_update |
StopTimeUpdate |
条件付き必須 | 多 | ルートの StopTimes (将来の停車予測時刻、また場合によっては過去の停車時刻の両方)の更新情報。この情報は stop_sequence によって並べ替えられ、次に指定されている stop_time_update までの駅 / 停留所すべてに適用されます。trip.schedule_relationship が CANCELED でない限り、ルートにつき少なくとも 1 つの stop_time_update を提供する必要があります。ルートがキャンセルされた場合は、stop_time_updates を提供する必要はありません。 |
timestamp |
uint64 |
任意 | 1 | 車両のリアルタイムの移動状況が測定された日時。POSIX 時間(1970 年 1 月 1 日 00:00:00 UTC からの経過秒数)で表します。 |
delay |
int32 |
任意 | 1 | ルートの運行スケジュールからのずれ。delay は、GTFS 上の既存の運行スケジュールを基準として予測が行われる場合にのみ指定します。delay (秒単位)は、正(車両が遅れていることを意味する)または負(車両が定刻より早く運行していることを意味する)の値のどちらかで、delay が 0 の場合、車両が定刻どおり運行していることを意味します。StopTimeUpdates の遅延情報は、ルートレベルの遅延情報に優先します。これは、ルートレベルの遅延が、StopTimeUpdate delay 値が指定された次の駅 / 停留所までのみ伝搬されるようにするためです。データの最新性を評価するため、 delay 値が最後に更新された時間を示す TripUpdate.timestamp 値を提供することを強くおすすめします。注意: このフィールドはまだ試験運用中であり、変更される可能性があります。このフィールドは将来、正式に採用される可能性があります。 |
message StopTimeEvent
予測された単一のイベント(到着または出発)の時間情報。時間情報は、遅延または推定時刻(あるいはその両方)、および不確実度で構成されます。
delay
は、GTFS 上の既存の運行スケジュールを基準として予測が行われる場合に使用します。time
は、予測される運行スケジュールがあるかどうかにかかわらず提供されるものです。time
とdelay
の両方が指定されている場合、time
が優先されます(運行スケジュールがあるルートであればtime
の値は通常、GTFS での運行スケジュールの時間に遅延を加えた値と等しくなるはずです)。
不確実度は、時間と遅延の両方に等しく適用されます。不確実度は、実際の遅延時間で予想される誤差を大まかに指定します(正確な統計的意味はまだ定義されていません)。コンピュータによる時間制御の下で運転されている列車の場合など、不確実度を 0
にすることも可能です。
フィールド
フィールド名 | タイプ | 必須 | カーディナリティ | 説明 |
---|---|---|---|---|
delay |
int32 |
条件付き必須 | 1 | delay フィールド(秒単位)は、正(車両が遅れていることを意味する)または負(車両が定刻より早く運行していることを意味する)の値のどちらかで、delay が 0 の場合は、定刻どおり運行していることを表します。StopTimeEvent では、delay または time を指定する必要があります。両方のフィールドを空にすることはできません。 |
time |
int64 |
条件付き必須 | 1 | イベントの絶対時間。POSIX 時間(1970 年 1 月 1 日 00:00:00 UTC からの経過秒数)で表します。StopTimeEvent では、delay または time を指定する必要があります。両方のフィールドを空にすることはできません。 |
uncertainty |
int32 |
任意 | 1 | uncertainty を省略すると、「不明」として解釈されます。確実な予測であることを表す場合は、不確実度を 0 に設定します。 |
message StopTimeUpdate
ルートの特定の駅 / 停留所に関する発着イベントのリアルタイムの更新情報。TripDescriptor
およびルート更新情報エンティティのドキュメントにある停車時刻の更新情報に関する概要もご覧ください。
過去と未来のどちらのイベントについても更新情報を提供できます。フィード制作者は過去のイベントを削除できますが、必ずしも削除する必要はありません。この更新情報は stop_sequence
または stop_id
により特定の駅 / 停留所と関連付けられるため、どちらかのフィールドを設定する必要があります。同じ stop_id
が 1 回のルートで複数回訪問される場合、そのルートのその stop_id
に対するすべての StopTimeUpdates
に stop_sequence
を指定する必要があります。
フィールド
フィールド名 | タイプ | 必須 | カーディナリティ | 説明 |
---|---|---|---|---|
stop_sequence |
uint32 |
条件付き必須 | 1 | 対応する GTFS フィードの stop_times.txt 内の値と同じである必要があります。StopTimeUpdate では、stop_sequence または stop_id を指定する必要があります。両方のフィールドを空にすることはできません。stop_sequence は、同じ stop_id を複数回訪問するルート(ループなど)に必要です。これは、推定時刻がどの駅 / 停留所に対するものか明確にするためです。 |
stop_id |
string |
条件付き必須 | 1 | 対応する GTFS フィードの stops.txt 内の値と同じである必要があります。StopTimeUpdate では、stop_sequence または stop_id を指定する必要があります。両方のフィールドを空にすることはできません。 |
arrival |
StopTimeEvent |
条件付き必須 | 1 | schedule_relationship が空または SCHEDULED の場合、StopTimeUpdate 内で arrival または departure を指定する必要があります。両方のフィールドを空にすることはできません。schedule_relationship が SKIPPED の場合は、arrival と departure の両方を空にできることもあります。schedule_relationship が NO_DATA の場合、arrival と departure は空にする必要があります。 |
departure |
StopTimeEvent |
条件付き必須 | 1 | schedule_relationship が空または SCHEDULED の場合、StopTimeUpdate 内で arrival または departure を指定する必要があります。両方のフィールドを空にすることはできません。schedule_relationship が SKIPPED の場合は、arrival と departure の両方を空にできることもあります。schedule_relationship が NO_DATA の場合、arrival と departure は空にする必要があります。 |
schedule_relationship |
ScheduleRelationship |
任意 | 1 | デフォルトの関係は SCHEDULED です。 |
enum ScheduleRelationship
この StopTime
と静的な運行スケジュールとの関係。
値
値 | 説明 |
---|---|
SCHEDULED |
車両は、必ずしも定刻どおりではありませんが、予定された各駅 / 停留所を回っています。これはデフォルトの設定です。arrival または departure のうち少なくとも 1 つを指定する必要があります。 |
SKIPPED |
この駅 / 停留所は通過されます。つまり、車両はこの駅で停車しません。arrival と departure のフィールドは省略可能です。 |
NO_DATA |
この駅 / 停留所のためのデータが提供されていません。利用可能なリアルタイムの情報がないことを意味します。これが設定されている場合、NO_DATA が後続の駅 / 停留所を通して伝搬されるため、リアルタイムの情報がない駅 / 停留所の始まりを指定するおすすめの方法です。NO_DATA が設定されている場合、arrival と departure のいずれも指定することはできません。 |
message VehiclePosition
特定の車両のリアルタイムの現在地情報。
フィールド
フィールド名 | タイプ | 必須 | カーディナリティ | 説明 |
---|---|---|---|---|
trip |
TripDescriptor |
任意 | 1 | この車両が走行しているルート。車両を特定のルート インスタンスで特定できない場合は、部分的に指定するか、指定しなくてもかまいません。 |
vehicle |
VehicleDescriptor |
任意 | 1 | このルートを走行する車両に関する追加情報。各エントリーには一意の車両 ID が必要です。 |
position |
Position |
任意 | 1 | この車両の現在地。 |
current_stop_sequence |
uint32 |
任意 | 1 | 現在の駅 / 停留所の停車順序インデックス。current_stop_sequence (つまり、それが参照する駅 / 停留所)の意味は current_status によって決まります。current_status が指定されていない場合は IN_TRANSIT_TO であると見なされます。 |
stop_id |
string |
任意 | 1 | 現在の駅 / 停留所を表す識別子。対応する GTFS フィードの stops.txt 内の値と同じである必要があります。 |
current_status |
VehicleStopStatus |
任意 | 1 | 現在の駅 / 停留所に関する車両の正確なステータス。current_stop_sequence が指定されていない場合は無視されます。 |
timestamp |
uint64 |
任意 | 1 | 車両の現在地情報が測定された日時。POSIX 時間(1970 年 1 月 1 日 00:00:00 UTC からの経過秒数)で表します。 |
congestion_level |
CongestionLevel |
任意 | 1 | |
occupancy_status |
OccupancyStatus |
任意 | 1 | 車両の混雑状況。 注意: このフィールドはまだ試験運用中であり、変更される可能性があります。このフィールドは将来、正式に採用される可能性があります。 |
enum VehicleStopStatus
値
値 | 説明 |
---|---|
INCOMING_AT |
車両がまもなく駅 / 停留所に到着します(駅 / 停留所の表示では通常、車両シンボルが点滅します)。 |
STOPPED_AT |
車両は駅 / 停留所に停車中です。 |
IN_TRANSIT_TO |
車両は次の駅 / 停留所に向けて現在走行中です。 |
enum CongestionLevel
この車両に影響を及ぼす渋滞のレベル。
値
値 |
---|
UNKNOWN_CONGESTION_LEVEL |
RUNNING_SMOOTHLY |
STOP_AND_GO |
CONGESTION |
SEVERE_CONGESTION |
enum OccupancyStatus
車両の混雑状況。
注意: このフィールドはまだ試験運用中であり、変更される可能性があります。このフィールドは将来、正式に採用される可能性があります。
値
値 | 説明 |
---|---|
EMPTY |
ほぼ空車であると考えられる状態。車内に乗客はほとんど、またはまったくませんが、乗車はできます。 |
MANY_SEATS_AVAILABLE |
空席率が高い状態。利用可能な座席のうち、空いている座席の割合がどのくらい高ければこのカテゴリに分類されるかは、フィード制作者の裁量で決定されます。 |
FEW_SEATS_AVAILABLE |
空席率が低い状態。利用可能な座席のうち、空いている座席の割合がどのくらい低ければこのカテゴリに分類されるかは、フィード制作者の裁量で決定されます。 |
STANDING_ROOM_ONLY |
立っていれば乗れる状態。 |
CRUSHED_STANDING_ROOM_ONLY |
立っていれば乗れるものの、スペースは限られている状態。 |
FULL |
ほぼ満員であると考えられますが、まだ乗車できる可能性があります。 |
NOT_ACCEPTING_PASSENGERS |
乗客を受け入れていない状態。通常、車両は乗客を受け入れています。 |
NO_DATA_AVAILABLE |
利用できる乗車率データが車両にありません。 |
NOT_BOARDABLE |
車両は乗車不可能で、乗客を受け入れていません。特別な車両(エンジン、メンテナンス車両など)の場合に使用できます。 |
message Alert
公共交通機関になんらかの事態が発生したことを示す運行情報。
フィールド
フィールド名 | タイプ | 必須 | カーディナリティ | 説明 |
---|---|---|---|---|
active_period |
TimeRange |
任意 | 多 | このアラートをユーザーに表示する時間。指定されていない場合は、そのアラートがフィードに表示されている間表示されます。複数の期間が指定されている場合、そのすべての期間に表示されます。 |
informed_entity |
EntitySelector |
必須 | 多 | このアラートを通知する必要があるユーザーが使用しているエンティティ。少なくとも 1 つの informed_entity を指定する必要があります。 |
cause |
Cause |
任意 | 1 | |
effect |
Effect |
任意 | 1 | |
url |
TranslatedString |
任意 | 1 | このアラートに関する詳しい情報を提供するサイトの URL。 |
header_text |
TranslatedString |
必須 | 1 | アラートの見出し。この書式なしのテキスト文字列は、太字などで強調表示されます。 |
description_text |
TranslatedString |
必須 | 1 | アラート内容の説明。この書式なしのテキスト文字列は、運行情報の本文として表示されます(またはユーザーが明示的に「展開」をリクエストしたときに表示されます)。説明文中の情報は、見出しの情報に追加する形にします。 |
enum Cause
この運行情報の原因。
値
値 |
---|
UNKNOWN_CAUSE |
OTHER_CAUSE |
TECHNICAL_PROBLEM |
STRIKE |
DEMONSTRATION |
ACCIDENT |
HOLIDAY |
WEATHER |
MAINTENANCE |
CONSTRUCTION |
POLICE_ACTIVITY |
MEDICAL_EMERGENCY |
enum Effect
該当するエンティティに対してこの問題が及ぼす影響。
値
値 |
---|
NO_SERVICE |
REDUCED_SERVICE |
SIGNIFICANT_DELAYS |
DETOUR |
ADDITIONAL_SERVICE |
MODIFIED_SERVICE |
OTHER_EFFECT |
UNKNOWN_EFFECT |
STOP_MOVED |
message TimeRange
時間間隔。この間隔は、時間 t
の時点で、t
が start
時間と同じまたはそれより遅く、end
時間より早い場合に有効であると見なされます。
フィールド
フィールド名 | タイプ | 必須 | カーディナリティ | 説明 |
---|---|---|---|---|
start |
uint64 |
条件付き必須 | 1 | 開始時間。POSIX 時間(1970 年 1 月 1 日 00:00:00 UTC からの経過秒数)で表します。指定されていない場合、時間間隔は負の無限大から開始します。TimeRange が指定されている場合、start か end を指定する必要があります。両方のフィールドを空にすることはできません。 |
end |
uint64 |
条件付き必須 | 1 | 終了時間。POSIX 時間(1970 年 1 月 1 日 00:00:00 UTC からの経過秒数)で表します。指定されていない場合、時間間隔は正の無限大で終了します。TimeRange が指定されている場合、start か end を指定する必要があります。両方のフィールドを空にすることはできません。 |
message Position
車両の地理的な現在地。
フィールド
フィールド名 | タイプ | 必須 | カーディナリティ | 説明 |
---|---|---|---|---|
latitude |
float |
必須 | 1 | WGS 84 測地系で表した北緯。 |
longitude |
float |
必須 | 1 | WGS 84 測地系で表した東経。 |
bearing |
float |
任意 | 1 | 真北から時計回りの角度で表した方角。つまり 0 は北、90 は東を意味します。これはコンパス方位でも、次の停車地や中間地点に向いた方向でもかまいません。以前の位置情報(クライアント側から以前のデータを基にして計算される)のシーケンスから導く値にはしないでください。 |
odometer |
double |
任意 | 1 | メートル単位で表した走行距離計の値。 |
speed |
float |
任意 | 1 | 車両で計測された瞬間速度(メートル毎秒)。 |
message TripDescriptor
GTFS の 1 つのルート インスタンスを識別する記述子。
ほとんどの場合は、trip_id
のみで特定のルート インスタンスを指定することができます。ただし、以下のようなケースでは、1 つのルート インスタンスに解決するために追加情報が必要になります。
- ルートが
frequencies.txt
で定義されている場合は、trip_id
に加えてstart_date
とstart_time
が必要になります。 - ルートが 24 時間以上続く場合、または大幅な遅れが生じたために翌日に予定されているルートと運行時間が重なる場合は、
start_date
とtrip_id
の両方が必要になります。 trip_id
フィールドを指定できない場合は、route_id
、direction_id
、start_date
、およびstart_time
の各フィールドを指定してください。
route_id
と trip_id
の両方を指定する場合、その route_id
は必ず GTFS の trips.txt
ファイルでルートに割り当てられている route_id
フィールドと一致しなければなりません。
trip_id
フィールドを単独で使用する場合、または他の TripDescriptor
フィールドと組み合わせて使用する場合でも、複数のルート インスタンスを指定することはできません。TripDescriptor
が 1 つのルート インスタンスではなく、ゼロまたは複数のインスタンスに解決される場合は、エラーと見なされます。TripDescriptor
がエラーとなっているエンティティは、利用者によって破棄される可能性があります。
たとえば、GTFS の frequencies.txt
でルートが exact_times=0
と定義されている場合、TripDescriptor
では trip_id
単独でルートを指定することはできません。特定の時間に出発する 1 つのルート インスタンスに解決するには、start_time
も指定する必要があります。
trip_id
が不明の場合は、TripUpdate
の駅シーケンス ID だけでなく、stop_id
フィールドも指定してください。また、発着の絶対時刻も指定する必要があります。
フィールド
フィールド名 | タイプ | 必須 | カーディナリティ | 説明 |
---|---|---|---|---|
trip_id |
string |
条件付き必須 | 1 | このセレクタが参照する GTFS フィードの trip_id 。trip_id は、ルートのタイプによっては必須となります。• 非運転時隔ベースのルート: trip_id フィールド単独で、ルートを一意に識別することができます。非運転時隔ベースのルートは、GTFS の frequencies.txt では定義されません。• 運転時隔ベースのルート: trip_id 、start_time 、start_date のフィールドはすべて必須です。運転時隔ベースのルートは、GTFS の frequencies.txt で定義されます。• 運行スケジュール ベースのルート: route_id 、direction_id 、start_time 、start_date のフィールドの組み合わせによってルートが一意に識別される場合は、trip_id フィールドを省略することができます。運行スケジュール ベースのルートは、GTFS の frequencies.txt では定義されません。 |
route_id |
string |
条件付き必須 | 1 | このセレクタが参照する GTFS フィードの route_id 。trip_id を省略する場合は、route_id 、direction_id 、start_time 、schedule_relationship=SCHEDULED をすべて設定して、ルート インスタンスを一意に識別しなければなりません。 |
direction_id |
uint32 |
条件付き必須 | 1 | GTFS フィードの trips.txt ファイルで定義される direction_id 。移動の進行方向を示します。trip_id を省略する場合は、direction_id を指定する必要があります。注意: このフィールドはまだ試験運用中であり、変更される可能性があります。このフィールドは将来、正式に採用される可能性があります。 |
start_time |
string |
条件付き必須 | 1 | このルート インスタンスの予定開始時間。フィールド タイプの Time は、フィールドの形式(「11:15:35」、「25:15:35」など)を定義します。start_time フィールドは、ルートのタイプによっては必須となります。• trip_id が非運転時隔ベースのルートに該当する場合: start_time フィールドは省略するか、GTFS フィードの stop_times.txt ファイルで定義されている departure_time と同じ値にする必要があります。• trip_id が運転時隔ベースのルートに該当する場合: start_time は常に必須となり、ルート更新情報と車両位置情報で指定する必要があります。運転時隔ベースのルートは、GTFS の frequencies.txt で定義されます。◦ 運転時隔ベースのルートが exact_times=1 の GTFS レコードに合致する場合: start_time フィールドは、対応する時間帯に指定されている frequencies.txt の start_time よりも headway_secs の倍数(ゼロ倍を含む)の秒数分遅くなければなりません。◦ 運転時隔ベースのルートが exact_times=0 の GTFS レコードに合致する場合: start_time は任意でかまいません。このフィールドの値は、ルートの最初の予定発車時刻であると解釈されます。いったん確立されると、運転時隔ベースの exact_times=0 のルートの start_time は、最初の発車時刻が変更されても不変であると見なされます。それ以降の時刻の変更は、代わりに StopTimeUpdate メッセージに反映させることができます。– trip_id を省略する場合: start_time を指定する必要があります。 |
start_date |
string |
条件付き必須 | 1 | このルート インスタンスの開始日。YYYYMMDD 形式で表します。start_date は、ルートのタイプによっては必須となります。• 運行スケジュール ベースのルート: start_date は、必ず指定する必要があります。このフィールドは、ルートに大幅な遅れが生じたために翌日に予定されているルートと運行時間が重なった場合などに、曖昧さを回避する目的で指定します。たとえば、毎日 8:00 と 20:00 に出発する電車が 12 時間遅れた場合などは、同じ時間に 2 つの異なるルートが発生することになります。注: このような事態が起こり得ない運行スケジュール ベースのルートであれば、このフィールドは任意となります。たとえば、1 時間おきに運行するサービスで、1 時間遅れの車両がもはや運行スケジュールに関連していないと考えられるケースなどがこれに当てはまります。 • 運転時隔ベースのルート: start_date は必ず指定する必要があります。GTFS の frequencies.txt ファイルでは、運行スケジュール ベースのルートは定義されませんが、運転時隔ベースのルートは定義されます。• trip_id を省略する場合: start_date を指定する必要があります。 |
schedule_relationship |
ScheduleRelationship |
任意 | 1 | このルートと静的な運行スケジュールとの関係。TripDescriptor が Alert EntitySelector で指定されている場合、schedule_relationship フィールドは、一致するルート インスタンスを識別する際に無視されます。 |
enum ScheduleRelationship
このルートと静的な運行スケジュールとの関係。ルートが臨時の運行スケジュールに従って進められ、GTFS に反映されていない場合は、SCHEDULED
ではなく ADDED
としてマークを付ける必要があります。
値
値 | 説明 |
---|---|
SCHEDULED |
GTFS の運行スケジュールに従って、またはそれと関連付けられるほど近い運行スケジュールで進行しているルート。 |
ADDED |
破損した車両を交換したり、急な乗客増加に対応したりするために、現行の運行スケジュールに追加された臨時のルート。 |
UNSCHEDULED |
関連付けられた運行スケジュールのない進行中のルート。この値は、exact_times = 0 の GTFS frequencies.txt で定義されるルートを識別するために使用されます。これは、GTFS frequencies.txt で定義されていないルートや、exact_times = 1 の GTFS frequencies.txt でのルートを記述するためには使用しないでください。 |
CANCELED |
運行スケジュールにあったが削除されたルート。 |
message VehicleDescriptor
ルートを運行している車両の識別情報。
フィールド
フィールド名 | タイプ | 必須 | カーディナリティ | 説明 |
---|---|---|---|---|
id |
string |
任意 | 1 | 車両の内部システム ID。車両ごとに一意でなければならず、車両がシステムを通して走行する際の追跡に使用されます。この ID はエンドユーザーに表示されないようにする必要があります。その目的には label フィールドを使用する必要があります。 |
label |
string |
任意 | 1 | ユーザーに表示されるラベル。乗客が車両を正しく識別するために表示するものです。 |
license_plate |
string |
任意 | 1 | 車両のナンバー プレート。 |
message EntitySelector
GTFS フィード内のエンティティのセレクタ。フィールドの値は、GTFS フィード内の適切なフィールドに対応させます。指定子を少なくとも 1 つ指定する必要があります。複数指定した場合、AND
論理演算子で結合されたものとして解釈されます。また、指定子の組み合わせは、GTFS フィード内の対応する情報と一致する必要があります。つまり、GTFS のエンティティにアラートを適用するには、指定された EntitySelector
フィールドのすべてに一致する必要があります。たとえば、フィールド route_id: "5"
と route_type: "3"
を含む EntitySelector
は、route_id: "5"
バスにのみ適用され、route_type: "3"
の他の経路には適用されません。route_id: "5"
と route_type: "3"
にアラートを適用する場合は、2 つの別々の EntitySelector
フィールド(1 つは route_id: "5"
を参照、もう 1 つは route_type: "3"
を参照)を指定する必要があります。
指定子を少なくとも 1 つ指定する必要があります。EntitySelector
のすべてのフィールドを空にすることはできません。
フィールド
フィールド名 | タイプ | 必須 | カーディナリティ | 説明 |
---|---|---|---|---|
agency_id |
string |
条件付き必須 | 1 | このセレクタが参照する GTFS フィードの agency_id 。 |
route_id |
string |
条件付き必須 | 1 | このセレクタが参照する GTFS の route_id 。direction_id を指定する場合は、route_id も指定する必要があります。 |
route_type |
int32 |
条件付き必須 | 1 | このセレクタが参照する GTFS の route_type 。 |
direction_id |
uint32 |
条件付き必須 | 1 | GTFS フィードの trips.txt ファイルで定義される direction_id 。経路(route_id で指定)の同じ方向のルートをすべて選択するのに使用されます。direction_id を指定する場合は、route_id も指定する必要があります。 |
trip |
TripDescriptor |
条件付き必須 | 1 | このセレクタが参照する GTFS のルート インスタンス。この TripDescriptor は、GTFS データで 1 つのルート インスタンスに解決される必要があります(たとえば、exact_times=0 ルートに trip_id のみを指定することはできません)。この TripDescriptor に ScheduleRelationship フィールドが入力されていると、GTFS のルートを識別しようとする際に、そのフィールドは無視されます。 |
stop_id |
string |
条件付き必須 | 1 | このセレクタが参照する GTFS フィードの stop_id 。 |
message TranslatedString
テキストまたは URL の言語別スニペットが含まれる多言語化されたメッセージ。メッセージから文字列が 1 つ選択されます。ユーザーが設定している UI の言語が翻訳の言語コードと一致する場合は、最初に一致する翻訳が選択されます。デフォルトの UI 言語(たとえば英語)が翻訳の言語コードと一致する場合は、最初に一致する最初の翻訳が選択されます。言語コードが指定されていない翻訳の場合は、その翻訳が選択されます。
フィールド
フィールド名 | タイプ | 必須 | カーディナリティ | 説明 |
---|---|---|---|---|
translation |
Translation |
必須 | 多 | 少なくとも 1 つの翻訳を指定する必要があります。 |
message Translation
特定の言語にマッピングされているローカライズされた文字列。
フィールド
フィールド名 | タイプ | 必須 | カーディナリティ | 説明 |
---|---|---|---|---|
text |
string |
必須 | 1 | メッセージを含む UTF-8 文字列。 |
language |
string |
条件付き必須 | 1 | BCP-47 言語コード。言語が不明な場合、またはフィードがまったく国際化されていない場合は省略できます。不特定の言語タグを指定できる翻訳は 1 つまでです。複数の翻訳がある場合は、その言語を指定する必要があります。 |