GTFS Schedule 描述了计划的交通服务。GTFS Realtime,通常称为 GTFS-RT,传递有关服务的实时更新信息。GBFS 描述共享出行服务,特别是根据发布的流展示其站点和可用车辆。根据您的应用需求选择相应的数据格式。
这些格式用于组织数据;但并不保证其在所有地方的可用性,亦不保证每个数据流的质量。
用 GTFS 表示计划的服务
一个 GTFS Schedule 数据集包含表格文件,描述了运营商、站点、路线、运行以及车次等内容。日历文件指出适用的日期。文件之间通过标识符关联。 GTFS Schedule 参考资料.
它可用于回答“这个站点在哪里?”或“该服务有哪些预计经过时间?”等问题。使用时需解析日历和文件间的关联。
仅读取站点列表不足以重建车次通行;反之,站点位置有时可单独使用,无需时刻表。
用 GTFS-RT 实时更新服务信息
GTFS Realtime 可以提供车次更新、车辆位置和警报。车次更新涉及通行时间和服务变更。数据流使用 Protocol Buffers(一种结构化序列化格式)。 GTFS Realtime 入门.
发布者可仅发布部分类别,并非全部。存在车辆位置流不保证所有站点都有估计信息。
在界面中,应区分计划通行和实时估计。我们的指南 理论时刻与实时数据 从用户视角解释了这种差别。
GBFS 用于共享出行
GBFS 通过 JSON 流描述共享出行服务。根据系统和版本,可能包含站点、状态、车辆及其他服务特性。文档区分了站点信息与可用状态。 GBFS 文档.
在应用中应区分相对稳定的位置与快速变化的状态。处理时保留格式版本和相关时间戳。
可用性流非预约或解锁 API,仅辅助发现服务,租赁操作由相关服务提供。
根据使用场景进行比较
| 需求 | 需考虑的格式 |
|---|---|
| 描述计划中的站点与线路 | GTFS Schedule |
| 解析预定通行和服务日期 | GTFS Schedule |
| 更新通行信息或接收服务动态 | GTFS-RT,取决于发布的数据流 |
| 定位共享出行站点或车辆 | GBFS,取决于发布的数据 |
设计示例:地图展示有轨电车站点和共享单车站。用结构数据表示位置,用实时状态展示单车可用性。两层数据缓存和更新需求不同。
预估各数据源限制
检查版本、可选字段、覆盖范围及使用权限。标识符仅在其上下文中有效:不同发布者可能用相同字符串代表不同实体。
还需预设缺失或过期的数据。不可用数据流返回空列表不应被误解为空服务。避免未知信息默认为零。
直接使用数据流或借助 API
直接集成需您负责收集、验证和解释数据源。API 可提供统一接口,但仍需了解其覆盖范围、警告和条款。
关于 ROOTE 初步用例,请参阅 如何使用 API 搜索附近站点. 从接口需求出发,核实实际可用字段。
阅读片段并选择架构
在GTFS时刻表中,stop_times.txt的一个片段将一次运行、一站和一次预定经过连接起来。以下的简化示例具有教学意义:它并非完整GTFS数据集,且其标识符需与trips.txt、stops.txt及日历关联使用。
对于GTFS实时,请查找有用的实体:TripUpdate可更新一次经过,VehiclePosition描述车辆位置,Alert则传递服务信息。车辆位置并非自动代表预计到达时间。传输格式为Protocol Buffers;用于诊断的JSON表示不是标准二进制流。
在GBFS中,station_information描述站点信息,而station_status描述其发布状态。某些计数器名称及可用文件会随着版本变化。下列JSON片段展示了GBFS 2.3及其num_bikes_available和num_docks_available字段;在复用示例前请核实版本。
地点地图可从结构化数据开始。下一班次显示则需要相应的更新及明确规划的回退机制。可用单车界面必须管理计数器、租赁条件及时间有效性。这三类界面并不自动共享统一缓存策略。
# Extrait pédagogique de stop_times.txt
trip_id,arrival_time,departure_time,stop_id,stop_sequence
trip_demo,08:10:00,08:10:00,stop_demo,1
# Extrait pédagogique de station_status en GBFS 2.3
{
"station_id": "station_demo",
"num_bikes_available": 3,
"num_docks_available": 7,
"is_installed": true,
"is_renting": true,
"is_returning": true,
"last_reported": 1720000000
}
常见问题
GTFS 是否自动包含实时数据?
否。GTFS Schedule 表示计划服务,实时信息由其他流如 GTFS-RT 提供。
GBFS 可用来解锁单车吗?
它描述服务及公开数据,租赁过程由运营商提供的功能完成。
标准格式是否保证完整覆盖?
否。格式定义结构,覆盖范围和发布信息依数据源而定。