如何使用 stop_times.txt 正确获取公交车站当天的停车时间

问题描述 投票:0回答:1

在 GTFS 中,我尝试利用 stop_times.txt 查找当前时间和当天到达车站的下一辆可用巴士。但是,没有字段指示某个 stop_time 是一天中的时间:

行程 ID、到达时间、出发时间、经停 ID、经停顺序、经停航标、上车类型、下车类型、行程距离形状

对于某一特定的巴士到达,一个巴士站有很多接近的 stop_times,这是没有意义的。唯一合乎逻辑的结论是它们适用于一周中的某一天,但没有任何迹象表明这一点。

这导致我得到当前时间左右到达的每辆巴士的重复或极其接近的停车时间..

duplicates gtfs
1个回答
0
投票

了解如何过滤掉当天不适合的停止时间。

每个停靠点都有一对多的停靠时间。每个停止时间都与一次行程相关联。每个行程都附有一个服务ID。每个服务 ID 都有一个日历行 (calendar.txt) 和一个 calendar_dates 行 (calendar_dates.txt)

我必须检查停止时间(与服务间接相关)是否在与日历行相关的一周的当天运行,对于超过 24 小时标记的时间,还要检查第二天是否运行。

此外,如果它不在日历周行上运行,则可以针对 calendar_dates 进行额外检查,该检查对于在特定日期运行的行程有例外。如果这些检查中的任何一个通过,那么我们就会将该停止时间包含在即将到来的时间中。

然后对列表进行排序和重新排列,以在一天中的当前时间附近开始。

使用实时位置数据,然后将行程 ID 与新到达者列表关联到车辆 ID(如果它们不为空)。

仍然需要执行额外的检查来检查某些行程的实时更新以及服务警报,但这就是要点。

TL;DR 使用calendar和calendar_dates来检查每个stop_time是否发生在当前和第二天,以适当地获得过滤列表。然后根据当前最接近时间进行排序。

© www.soinside.com 2019 - 2024. All rights reserved.