如何对类似的 GTFS 行程进行分组
How to group similar GTFS trips
我需要将 GTFS 行程分组为人类可以理解的 "route variants"。由于一条路线可以根据 day/time 等 运行 不同的行程
是否有任何首选方式来对相似的旅行进行分组?行程 shape_id 看起来很有希望,但是是否可以保证所有类似的行程都具有相同的 shape_id?
我的 GTFS 数据是导入我的 sql 数据库,数据库结构与 GTFS txt 文件相同。
更新
我不是在寻找 sql 查询示例,而是在寻找高级示例如何将相似的旅行分组以方便用户使用 "route variants"。
许多路线规划应用程序(如 Moovit)使用 GTFS 数据作为来源,它们向用户显示不同的路线变体。
没有官方方法可以做到这一点。最好的方法可能是按每次行程中停靠点的有序列表进行分组,有时称为行程的 "stopping pattern"。 Mapzen 在概念层面 here 讨论了这个想法。
在实践中,我创建了给定行程(从 stop_times
开始)的所有站点的串联字符串,并按其分组以定义类似的行程。例如,如果给定行程的停靠点是 A
、B
、C
、D
和 E
,则创建字符串 A-B-C-D-E
或A_B_C_D_E
和该字符串的团体旅行。此功能不是 SQL 规范的一部分,尽管 MySQL 将其实现为 GROUP_CONCAT
并且 PostgreSQL 使用数组和 array_to_string
。您可能还想将 route_id
和 shape_id
添加到分组中,以处理一些特殊情况。
我需要将 GTFS 行程分组为人类可以理解的 "route variants"。由于一条路线可以根据 day/time 等 运行 不同的行程
是否有任何首选方式来对相似的旅行进行分组?行程 shape_id 看起来很有希望,但是是否可以保证所有类似的行程都具有相同的 shape_id?
我的 GTFS 数据是导入我的 sql 数据库,数据库结构与 GTFS txt 文件相同。
更新 我不是在寻找 sql 查询示例,而是在寻找高级示例如何将相似的旅行分组以方便用户使用 "route variants"。
许多路线规划应用程序(如 Moovit)使用 GTFS 数据作为来源,它们向用户显示不同的路线变体。
没有官方方法可以做到这一点。最好的方法可能是按每次行程中停靠点的有序列表进行分组,有时称为行程的 "stopping pattern"。 Mapzen 在概念层面 here 讨论了这个想法。
在实践中,我创建了给定行程(从 stop_times
开始)的所有站点的串联字符串,并按其分组以定义类似的行程。例如,如果给定行程的停靠点是 A
、B
、C
、D
和 E
,则创建字符串 A-B-C-D-E
或A_B_C_D_E
和该字符串的团体旅行。此功能不是 SQL 规范的一部分,尽管 MySQL 将其实现为 GROUP_CONCAT
并且 PostgreSQL 使用数组和 array_to_string
。您可能还想将 route_id
和 shape_id
添加到分组中,以处理一些特殊情况。