重要: TripUpdate フィードを使用してリアルタイムのルート情報を提供する場合は、TripDescriptor を使ってルートを選択する方法についての記事を参照してください。システムでルート全体の予測を生成できない場合は、シンプルな TripUpdate フィードを使用して、GTFS リアルタイム フィードの精度を確保してください。
ルートの時刻、プラットフォーム、駅 / 停留所を更新する
TripUpdates フィードを使って、到着時刻、プラットフォームの変更、停車状況の最新情報を表示できます。
到着時刻を更新するstop_time_update
メッセージで、特定のルートの駅 / 停留所の到着時刻または出発時刻の情報を提供できます。到着時刻を更新するには、TripUpdates フィードに、マッチした TripDescriptor、駅 / 停留所の正確な stop_time_update
情報、進行状況が測定された時点のタイムスタンプを設定します。
以下の基本的なガイドラインを遵守してください。
- TripUpdates フィードには、次回の
StopTimeUpdate
の最も利用可能な予測を含めます。 - 可能であれば、以前停車した駅 / 停留所を引き続きフィードに含めてください。
StopTimeUpdates
を使用してstop_id
またはstop_sequence
で駅 / 停留所を表し、車両がその駅 / 停留所に到着または出発した最終時刻を入力します。 - 関連車両の最新の測定結果を取得した時点の
TripUpdate.timestamp
を含めます(利用可能な場合)。
TripUpdate が作成できたら、GTFS リアルタイム TripUpdate フィードで提供されるリアルタイムの出発時刻と到着時刻に基づいて、経路再検索が行われます。
同じルートに TripUpdate と VehiclePosition の両方を指定すると、Google によりどちらのメッセージを使用するかが決定されます。
- TripUpdate メッセージ: 到着予定時刻は、
stop_time_update
情報に基づきます。 - VehiclePosition メッセージ: 予測アルゴリズムからの到着予定時刻の予測を含む位置情報に基づきます。
例
ルート T は、駅 S から今日の午後 7 時に出発する予定です。GTFS リアルタイム TripUpdate フィードは、ルートが駅 S で 5 分遅れていることを示しています。午後 7 時 3 分に駅 S からの接続を検索すると、ルート T が可能な接続の 1 つとして表示されます。これは、リアルタイムの TripUpdate により、スケジュールで決まっている出発時刻の後にルート T の出発時刻が更新されたためです。
コードの例:
trip_update {
trip {
trip_id: xxx
start_time: 12:34:56
}
stop_time_update {
stop_sequence: 0
stop_id: "child_stop_id"
arrival {
time: 1284457468
}
}
}
次の点を確実に行ってください。
trip_descriptor
のstart_time
と、静的フィードに定義されているdeparture_time
を同一にすること。- ルートへの参照を維持するために
start_time
を定義したら、固定状態にすること。 time
またはdelay
フィールドでstop_time_update
を使用して遅延を指定すること。
運転時隔ベースのスケジュールの場合、次のルートの到着時刻は常に緑で定刻として表示されます。
固定の運行スケジュールの場合、実際の遅延時間が表示されます。
駅 / 停留所の変更を示すには、交通機関で StopTimeUpdate
オブジェクトの stop_id
を更新します。stop_sequence
を指定し、更新された stop_id
を parent_station
にするか、parent_station
を新しい stop_id
と共有します。
コードの例:
trip_update {
trip {
trip_id: xxx
start_time: 12:34:56
}
stop_time_update {
stop_sequence: 0
stop_id: "child_stop_id"
arrival {
time: 1284457468
}
}
}
ユーザーがプラットフォーム情報を取得する方法:
StopTimeUpdate
オブジェクトの schedule_relationship
に SKIPPED
値を使用します。
- スキップ対象の駅 / 停留所が、ユーザーが検索したルートの乗降地にあたる場合、その駅 / 停留所を含むルートは検索結果から削除されます。
- スキップ対象の駅 / 停留所がルートの途中にあり、乗降されない場合、そのルートは検索結果から削除されません。
コードの例:
trip_update {
trip {
trip_id: xxx
start_time: 12:34:56
}
stop_time_update {
stop_sequence: 0
schedule_relationship: SKIPPED
}
}