コンテンツにスキップ

重複した移行

移行ガイド - ADDED から DUPLICATED の旅行への移行

GTFS リアルタイムの trip.schedule_relationshipDUPLICATEDは、サービス開始dateを除いて既存のスケジュールされた旅行と同じ新しい旅行を表します。

この移行ガイドでは、重複した旅行を表すためにADDED列挙を使用していた既存のプロデューサーとコンシューマーがDUPLICATED列挙に移行する方法を定義します。目標は、移行中にプロデューサーとコンシューマーの混乱を最小限に抑えることです。

重複した旅行を記述するためにADDED列挙を 使用していない プロデューサーまたはコンシューマーの場合、アクションは必要ありません。ADDED エンティティを生成/消費することなく、 ADDED DUPLICATED旅行を生成/消費できます。

DUPLICATED 列挙の完全な履歴については、GitHub のDUPLICATED DUPLICATED提案 を参照してください。

同じフィードでの ADDED エンティティと DUPLICATED エンティティの使用

プロデューサー

重複した旅行にADDED列挙を使用しているプロデューサーの場合、既存のコンシューマーの混乱を避けるため、これらの旅行に対してADDEDエンティティを生成し続けながら、同じ旅行に対してDUPLICATEDエンティティも追加することをおすすめします。

ただし、ユーザーが誤って同じ旅行を 2 回追加するのを防ぐために、同じ旅行を参照するエンティティは同じtrip_idを使用してリンクされている必要があります。2 つのエンティティは、次の 2 つの方法のいずれかでリンクできます。

1.両方のエンティティの trip.trip_id が同じである必要があります。または 2. ADDED旅行の trip.trip_id は、 DUPLICATED旅行の trip_properties.trip_id と同じである必要があります。

以下は、GTFS d 1trip.trip_id で複製する最初のオプション (1) の例です。ADDEDおよびDUPLICATEDエンティティのtrip_id の一致:

entity {
 id: "ei0"
 trip_update {
    trip: {
       trip_id: "1"//<-- 静的 GTFS からのtrip_idをコピー
      schedule_relationship: ADDED
      start_date: "20200821"//<-- 新しい旅行date
      start_time: "11:30:00"//<-- 新しい旅行時刻
    }
    stop_time_update {
...
    }
 }
}

entity {
 id: "ei10"
 trip_update {
    trip: {
       trip_id: "1"//<-- 静的 GTFS からのtrip_idをコピー
      schedule_relationship: DUPLICATED
    }
    trip_properties {
       trip_id: "NewTripId987"//<-- この旅行に固有の新しいtrip_id : "20200821"//<-- 新しい旅行date
      start_time: "11:30:00"//<-- 新しい旅行時刻
    }
    stop_time_update {
...
    }
 }
}

以下は、GTFS d 1を複製する 2 番目のオプション (2) の例です。ADDED旅行のtrip.trip_idは、 ADDED DUPLICATED旅行の s. と一致します。 trip_id`:

entity {
 id: "ei0"
 trip_update {
    trip: {
       trip_id: "NewTripId987"//<-- このtrip_idに固有の新しい trip_id
      schedule_relationship: ADDED
      start_date: "20200821"//<-- 新しい旅行date
      start_time: "11:30:00"//<-- 新しい旅行時刻
    }
    stop_time_update {
...
    }
 }
}

entity {
 id: "ei10"
 trip_update {
    trip: {
       trip_id: "1"//<-- コピーする静的 GTFS のtrip_id : DUPLICATED
    }
    trip_properties {
       trip_id: "NewTripId987"//<-- ADDED の旅行と一致します。 trip_id 
      start_date: "20200821"//<-- 新しい旅行date
      start_time: "11:30:00"//<-- 新しい旅行時刻
    }
    stop_time_update {
...
    }
 }
}

重複した旅行に対するADDEDの使用は設定された期限までに廃止されるため、代わりにDUPLICATED の旅行を使用するように既存の消費者に通知することをお勧めします (開発者のメーリング リストなどを通じて) ADDEDDUPLICATEDの旅行エンティティを一致させるために使用されている上記の戦略についても言及し、この移行ガイドへのリンクを含める必要があります。期限が過ぎると、フィードからADDED ADDEDエンティティを削除し、重複した旅行のDUPLICATEDエンティティのみを公開できます。

コンシューマー

前述のように、プロデューサーは、エンティティ間の ID を一致させるために上記の 2 つのオプションのいずれかを使用して、最初に各重複旅行の 2 つのエンティティを公開することにより、 ADDED列挙から DUPLICATED`列挙に移行します。

したがって、コンシューマーがDUPLICATED旅行のサポートを実装する場合、コンシューマーが次の点に注意することが重要です。

  1. DUPLICATED旅行 trip.trip_id
  2. DUPLICATED旅行 trip_properties.trip_idを持つADDED旅行を無視します。