GTFS リアルタイム リファレンス

交通機関は GTFS リアルタイム フィードを利用して、運行の障害(駅の閉鎖、運転の見合わせ、大幅な遅れなど)、車両の現在地、予定到着時刻に関するリアルタイムの情報を利用客に提供することができます。

このサイトでは、バージョン 2.0 のフィード仕様についての説明をドキュメント化しています。

用語の定義

必須

GTFS リアルタイム v2.0 以降における「必須」列には、乗換案内データが有効であり、このデータを利用するアプリケーションにとって意味をなすものであるようにするために作成者が提供しなければならないフィールドが定義されています。

以下の説明において「必須」フィールドには、次の値が使われます。

  • 必須: 指定する必要のあるフィールドです。
  • 条件付き必須: 特定の条件下で必須となります。条件については、フィールドかファイルの「詳細」欄に記載されています。この条件外では、フィールドは省略することができます。
  • 省略可能: 省略可能で、指定する必要はありません。ただし、基盤となる車両位置特定システム(VehiclePosition timestamp など)でデータが利用可能である場合は、省略可能なフィールドでも、できる限り指定することをおすすめします。

セマンティック要件は GTFS リアルタイム バージョン 1.0 では定義されていないため、gtfs_realtime_version1 のフィードはこれらの要件を満たしていない可能性があります(詳しくは、セマンティック要件のための提案をご覧ください)。

基数

基数」は、特定のフィールドに指定できる要素の数を表します。次の値が使用されます。

必須」欄と「説明」欄を必ず参照し、フィールドが「必須」「条件付き必須」または「任意」のうちどれであるかを確認してください。Protocol Buffer の基数については gtfs-realtime.proto を参照してください。

Protocol Buffer のデータタイプ

フィード要素の説明には、次のプロトコル バッファ データタイプが使用されます。

  • 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 からの経過秒数)で表します。リアルタイムの情報を生成するシステムと消費するシステムの間の時間のずれを避けるため、タイムスタンプはタイムサーバーから取得することを強くおすすめします。数秒の時間差は許容されるため、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 条件付きで必須 複数 旅程の停車時刻(将来の停車時刻、また場合によっては過去の停車時刻の両方)の更新情報。この情報は 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 旅程の現在の予定時刻からのずれ。遅延は、GTFS 上の既存のスケジュールを基準として予測が行われる場合にのみ指定します。
delay(秒単位)は、正(車両が遅れていることを意味する)または負(車両が定刻より早く運行していることを意味する)の値のどちらかで、遅延が 0 の場合、車両が定刻どおり運行していることを意味します。
StopTimeUpdate の遅延情報は、旅程レベルの遅延情報に優先します。これは、旅程レベルの遅延が、StopTimeUpdate 遅延値が指定された次の停車地までのみ伝搬されるようにするためです。
データの最新性を評価するため、遅延値が最後に更新された時間を示す TripUpdate.timestamp 値を提供することを強くおすすめします。
注意: このフィールドはまだ試験運用中であり、変更される可能性があります。このフィールドは将来、正式に採用される可能性があります。

message StopTimeEvent

予測された単一のイベント(到着または出発)の時間情報。時間情報は、遅延または推定時刻(あるいはその両方)、不確実度で構成されます。

  • delay(遅延)は、GTFS 上の既存のスケジュールを基準として予測が行われる場合に使用します。
  • time(推定時刻)は、予測される時刻があるかどうかにかかわらず提供されるものです。time と delay の両方が指定されている場合、time が優先されます(時刻表がある旅程であれば time の値は通常、GTFS での時刻表の時間に delay を加えた値と等しくなるはずです)。

不確実度は、時間と遅延の両方に等しく適用されます。不確実度は、実際の遅延時間で予想される誤差を大まかに指定します(正確な統計的意味はまだ定義されていません)。コンピュータによる時間制御の下で運転されている列車の場合など、不確実度を 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 を省略すると、「不明」として解釈されます。確実な予測であることを表す場合は、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 現在の停車地の stop_sequence インデックス。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 乗車できない状態。

message Alert

公共交通機関になんらかの事態が発生したことを示す運行情報。

フィールド

フィールド名 タイプ 必須 基数 説明
active_period TimeRange 任意 複数 このアラートをユーザーに表示する時間。指定されていない場合は、そのアラートがフィードに表示されている間表示されます。複数の期間が指定されている場合、そのすべての期間に表示されます。
informed_entity EntitySelector 必須 複数 このアラートを通知する必要があるユーザーが使用しているエンティティ。informed_entity は少なくとも 1 つ指定する必要があります。
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 uint64 条件付きで必須 1 開始時間。POSIX 時間(1970 年 1 月 1 日 00:00:00 UTC からの経過秒数)で表します。指定されていない場合、時間間隔は負の無限大から開始します。TimeRange が指定されている場合、開始時間か終了時間のいずれかを指定する必要があります。両方のフィールドを空にすることはできません。
end uint64 条件付きで必須 1 終了時間。POSIX 時間(1970 年 1 月 1 日 00:00:00 UTC からの経過秒数)で表します。指定されていない場合、時間間隔は正の無限大で終了します。TimeRange が指定されている場合、開始時間か終了時間のいずれかを指定する必要があります。両方のフィールドを空にすることはできません。

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 フィールドは、対応する時間帯に指定されている frequency.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 つ指定する必要があります。指定子が複数ある場合は、それらすべての指定子に対して照合が行われます。

フィールド

フィールド名 タイプ 必須 基数 説明
agency_id string 条件付きで必須 1 指定子を少なくとも 1 つ指定する必要があります。EntitySelector のすべてのフィールドを空にすることはできません。
route_id string 条件付きで必須 1 指定子を少なくとも 1 つ指定する必要があります。EntitySelector のすべてのフィールドを空にすることはできません。
route_type int32 条件付きで必須 1 指定子を少なくとも 1 つ指定する必要があります。EntitySelector のすべてのフィールドを空にすることはできません。
trip TripDescriptor 条件付きで必須 1 指定子を少なくとも 1 つ指定する必要があります。EntitySelector のすべてのフィールドを空にすることはできません。
stop_id string 条件付きで必須 1 指定子を少なくとも 1 つ指定する必要があります。EntitySelector のすべてのフィールドを空にすることはできません。

message TranslatedString

テキストまたは URL の言語別スニペットが含まれる多言語化されたメッセージ。メッセージから文字列が 1 つ選択されます。ユーザーが設定している UI の言語が翻訳の言語コードと一致する場合は、最初に一致する翻訳が選択されます。デフォルトの UI 言語(たとえば英語)が翻訳の言語コードと一致する場合は、最初に一致する最初の翻訳が選択されます。言語コードが指定されていない翻訳の場合は、その翻訳が選択されます。

フィールド

フィールド名 タイプ 必須 基数 説明
translation Translation 必須 複数 少なくとも 1 つの翻訳を指定する必要があります。

message Translation

特定の言語にマッピングされているローカライズされた文字列。

フィールド

フィールド名 タイプ 必須 基数 説明
text string 必須 1 メッセージを含む UTF-8 文字列。
language string 条件付きで必須 1 BCP-47 言語コード。言語が不明な場合、またはフィードがまったく国際化されていない場合は省略できます。不特定の言語タグを指定できる翻訳は 1 つまでです。複数の翻訳がある場合は、その言語を指定する必要があります。