重要: ルート運行中は、TripDescriptor を変更しないでください。TripDescriptor は 1 つのルートの選択に使用されます。
TripDescriptor サブメッセージを使用して、リアルタイムのルートと静的 GTFS プロトタイプを関連付けます。この記事では、schedule_relationship
が「SCHEDULED
」または「CANCELED
」のルートを選択する方法について説明します。
ルートを追加またはマッチングする
schedule_relationship
が「ADDED
」のルートをリアルタイムで追加するには、ルートをリアルタイムに追加するを参照してください。
リアルタイム データセットと静的データセット間でルートをマッチングするには、TripDescriptor に次のタプルを含める必要があります。
trip_id
start_time
start_date
trip_id
がない場合は、route_id
と direction_id
で代用します。正確にマッチングするには、start_time
と start_date
が必要です。非運転時隔ベースと運転時隔ベースの運行スケジュールに TripDescriptor を提供する
非運転時隔ベースの TripDescriptor
- 静的な運行スケジュールからルートを識別するには、
trip_id
とstart_date
の両方のフィールドを指定する必要があります。start_time
フィールドは省略可能です。指定する場合は、静的な運行スケジュールの特定の出発日のルート出発時刻のうち、いずれかと一致している必要があります。 trip_id
を指定できない場合は、<route_id
、direction_id
、start_date
> を指定する必要があります。route_id
とdirection_id
のマッチング方法を有効にするには、GTFS の静的フィードにdirection_ids
を含める必要があります。このマッチング方法はベスト エフォート型でサポートされており、変更される可能性があります。
コードの例:
trip_update {
trip {
trip_id: "non_frequency-expanded-trip"
start_date: "20160203"
}
}
trip_update {
trip {
route_id: "route1"
direction_id: 0
start_time: "10:10:00"
start_date: "20160203"
}
}
運転時隔ベースの TripDescriptor
運転時隔ベースのルートは frequencies.txt
でモデル化されています。このタイプのルートの場合、個別のルートの識別に特定の時間コンポーネントが必要になるため、start_time
フィールドは必須です。
- 静的な運行スケジュールからルートを識別するには、
trip_id
、start_date
、start_time
のタプルが必要です。情報が欠けている場合は、提供された情報の範囲内でマッチングが行われます。 trip_id
を指定できない場合は、route_id
、direction_id
、start_date
、start_time
を指定する必要があります。route_id
とdirection_id
のマッチング方法を有効にするには、GTFS の静的フィードに direction_ids を含める必要があります。このマッチング方法はベスト エフォート型でサポートされています。
start_time
を指定するときは、次の点に注意してください。
start_time
フィールドは、静的データセットの予定出発時刻と同じである必要があります。start_time
は、すべてのフィード バンドルで同じルートを表すすべての TripDescriptor で同一である必要があります。- 最初の駅 / 停留所の最初の出発時刻を調整するには、
start_time
ではなく、StopTimeUpdates
を使用してください。 start_time
は、最初の駅 / 停留所からの出発時刻に正確に合わせる必要はありませんが、ずれは最小限に抑える必要があります。
ヒント: trip_id
と start_time
が exact_time=1
以内の間隔の場合、start_time
が、headway_secs
の倍数分、出発時刻よりも遅くなる必要があります。
例
たとえば、trip_id=T
のルートを start_time=10:10:00
にすることを 2015 年 5 月 25 日の 10 時に決定し、この情報をリアルタイム フィードで 10 時 1 分に送信するとします。そして、10 時 5 分の段階で、このルートの出発が 10 時 10 分ではなく 10 時 13 分であることが判明します。最新のリアルタイム フィードでは、このルートはまだ「T, 2015-05-25, 10:10:00
」となっていますが、StopTimeUpdate
を使用すれば、最初の駅からの出発が 10:13:00
になることを通知できます。
start_time
を変更した場合は、2 種類のバス出発時刻(この例の場合は 10 時 10 分と 10 時 13 分)が宣言されてしまう可能性があります。
コードの例:
trip_update {
trip {
trip_id: “T”
start_date: "20150525"
start_time: "10:10:00"
}
stop_time_update {
stop_sequence: 1
departure {
delay: 180
}
}
}