2017-03-29 32 views
1

我需要将GTFS旅行分组到人类可理解的“路线变体”。因为一条路线可以根据日期/时间等运行不同的行程。如何分组类似的GTFS旅行

是否有任何首选方式将相似旅行分组?行程shape_id看起来很有希望,但是有没有保证所有类似行程都具有相同的shape_id?

我的GTFS数据导入到我的sql数据库中,数据库结构与GTFS txt文件相同。

UPDATE 我不是在寻找的SQL查询例子,即时寻找高水平的例子,如何将类似的旅行人性化“路线的变体”。

许多路线规划应用程序(如Moovit)使用GTFS数据作为来源,并向用户显示不同的路线变体。

+0

向我们展示db架构,示例数据和预期输出。 \t请阅读[**如何提问**](http://stackoverflow.com/help/how-to-ask) \t \t这里是一个伟大的地方[** START **] (http://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/)来了解如何提高您的问题质量并获得更好的答案。 –

+0

编辑原始问题 – devha

+0

我知道'avl',我知道'路由选择',不知道'GTFS'或'Moovit'.I不会做研究,以了解这些是什么。所以你需要定义什么是'友好的路线变体'。这意味着提供一个样本数据和desrire输出。 –

回答

2

没有官方的方法来做到这一点。最好的方法可能是按照每次旅行的有序列表进行分组,有时称为旅行的“停止模式”。这个想法在Mapzen的概念层面here中讨论。

实际上,我已经在给定的行程(从stop_times)创建了所有停靠点的连接字符串,并按照这些分组来定义类似的行程。例如,如果给定行程中的停止点是AB,C,DE,则创建字符串A-B-C-D-EA_B_C_D_E,并对该字符串进行组旅行。该功能不是SQL规范的一部分,尽管MySQL将它实现为GROUP_CONCAT,PostgreSQL使用数组和array_to_string。您也可以将route_idshape_id添加到分组中,以处理一些转角情况。

+0

谢谢!那正是我想要的。 – devha

相关问题