使用来自GTFS数据的传单绘制路线

时间:2015-04-20 21:51:50

标签: mysql gtfs

如何使用stops从GTFS数据中提取stop_sequence及其route_id知道MySQL

我想要这个,因为我正在尝试使用Leaflet绘制路线,这需要以正确的顺序给出停靠坐标。

我只在stop_sequence文件中找到stop_times.txt信息,但这只适用于此路线上的一次旅行。

This answer仅说明与某条路线相关的止损位置但顺序不正确

1 个答案:

答案 0 :(得分:0)

我认为您已经在这里找到了自己的答案:停靠点仅按照特定的行程按顺序排序,其中一条路线通常有很多。这是为了适应具有多个分支或在特定时间改变其路径的路线,例如在高峰时段通过工业园区转移的路线。

您需要做的是首先确定您想要绘制的路线典型的行程,并记下行程ID。要获取特定路线上所有行程的列表,请运行类似

的查询
SELECT id, headsign, short_name, direction_id
    FROM trips
    WHERE route_id = <route_id>;

一旦您选择了一个旅行,按顺序获取它所访问的站点列表很简单:

SELECT code, name, lat, lon, arrival_time, departure_time
    FROM stops
    INNER JOIN stop_times ON stop_times.stop_id = stops.id
    WHERE trip_id = <trip_id>
    ORDER BY stop_sequence ASC;

(为了清楚起见,我在这里添加了一些额外的字段;听起来你真正需要的只是结果中包含的latlon字段。)

那么你如何确定一个典型的&#34;您想要策划的路线之旅?通常,旅程的标志信息表示其分支或目的地。例如,如果您需要更具体地确定在特定日期的特定时间之间运行的旅行,calendarscalendar_dates表中的信息可以帮助您缩小范围。