我需要将GTFS旅行分组到人类可以理解的路线变体"。因为一条路线可以根据日期/时间等运行不同的行程。
是否有首选方式对类似的旅行进行分组? Trip shape_id看起来很有希望,但是有没有保证所有类似的旅行都有相同的shape_id?
我的GTFS数据导入了我的sql数据库,数据库结构与GTFS txt文件相同。
更新 我不看sql查询示例,我正在寻找高级示例如何将类似的旅行分组到用户友好的"路线变体"。
许多路线规划应用程序(如Moovit)使用GTFS数据作为来源,它们向用户显示不同的路线变体。
答案 0 :(得分:2)
没有正式的方法可以做到这一点。最好的方法可能是按每次行程的有序停靠列表分组,有时称为行程的“停止模式”。这个想法在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
添加到分组中,以处理某些极端情况。