異なるGTFS &のフィードを使用して、このデータをSQLデータベースに保存します。静的GTFSとGTFS-RTのトリップ更新を一致させる方法
スタティックGTFSデータをGTFS-RTのトリップ更新とどのようにマッチングさせるべきですか?
特定のstop_idの停止時間を表示しようとしています。私は静的なGTFSから停止時間を得ることができますが、私はGTFS-RTのトリップ更新時間の更新でこれらの時間を "パッチ"したいと思います。
GTFS-RTが非常にゆるやかに指定されているように見えますが、ほとんどのフィールドが必須です。使用しているGTFS-RTフィードの1つで、トリップアップデートでtrip_idがあり、別のフィードにtrip_idがありません。
アップデート2017年4月11日
私は、以下のクエリを使用して、静的なGTFSにGTFS-RTの旅の更新を一致させることに成功しました。何らかの理由で、すべての旅行の更新に対してtrip_idを取得できませんでした。おそらく問題はデータそのものにあります。クエリに何か問題がありますか?
const trip = await knex('trips')
.select('trips.trip_id')
.innerJoin('routes', 'routes.route_id', 'trips.route_id')
.innerJoin('stop_times', 'stop_times.trip_id', 'trips.trip_id')
.whereIn('trips.service_id', *day active service ids*)
.andwhere('routes.route_id', tripUpdate.route_id)
.andWhere('stop_times.departure_time', tripUpdate.trip_start_time)
.andWhere('trips.direction_id', tripUpdate.direction_id)
.orderBy('stop_times.stop_sequence')
.first();
はい、それはゆるく定義された標準です。最近のGTFS-rt 2.0仕様はこれを明らかにしていますが、これはまだ許されています。どうして?短期間の混乱のためにサービス情報を提供できるユースケースがあります。これは、それを正常にするいくつかのフィードによって悪用されます。 フィードとGTFSのマッチングを行うロジックを記述する必要があります。しかし、あなたが話している餌を知らなくてもそれが可能かどうかは言い難いです。 –
どの[DBMS](https://en.wikipedia.org/wiki/DBMS)製品を使用していますか? Postgres?オラクル? "_SQL_"はクエリ言語であり、特定のデータベース製品の名前ではありません。 –
mariadbを使用しています。 – devha