You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

本地OTP v1服务器GTFS数据有效期及更新查询技术问询

如何检查OTP v1服务器的GTFS数据过期状态

通过GraphQL查询OTP v1服务器

  • OTP v1的GraphQL API可以直接查询GTFS数据的有效期,用来判断是否需要更新或线路是否过期:
    • 查询整个GTFS feed的全局有效期,对比当前日期就能知道整体数据是否过期:
      {
        feedInfo {
          startDate
          endDate
        }
      }
      
    • 查询特定线路(比如55路)的有效时间范围,需要关联线路、班次和服务周期:
      {
        routes(name: "55") {
          trips {
            service {
              startDate
              endDate
            }
          }
        }
      }
      
      返回结果里会包含该线路所有班次对应的服务起止日期,你可以检查是否有班次的结束日期早于当前日期,以此判断线路是否存在过期数据。
    • 注意:不同版本的OTP v1可能略有schema差异,如果上述字段无法返回数据,可以尝试查询feed相关的其他字段,比如feedId对应的时间范围。

从本地.gtfs.zip文件查看有效期

如果GraphQL查询无法满足需求,直接从本地GTFS压缩包提取信息:

  • 解压后优先找feed_info.txt文件,里面的feed_start_date和feed_end_date字段(格式为YYYYMMDD)直接定义了整个GTFS数据的有效时间范围。
  • 若没有feed_info.txt,就需要查看calendar.txt和calendar_dates.txt:
    • calendar.txt中每个service_id对应一条服务周期记录,包含start_date和end_date;
    • calendar_dates.txt记录了服务的例外日期(临时调整),结合这两个文件可以统计出所有服务的实际有效时间。
  • 查特定线路的有效期:先在routes.txt找到目标线路的route_id,再到trips.txt找到该线路关联的所有service_id,最后在calendar.txt中查询这些service_id的起止日期,就能得到该线路的有效时间范围。

内容的提问来源于stack exchange,提问作者bliako

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 14:49:53