如何使用stops
从GTFS数据中提取stop_sequence
及其route_id
知道MySQL
。
我想要这个,因为我正在尝试使用Leaflet
绘制路线,这需要以正确的顺序给出停靠坐标。
我只在stop_sequence
文件中找到stop_times.txt
信息,但这只适用于此路线上的一次旅行。
This answer仅说明与某条路线相关的止损位置但顺序不正确
答案 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;
(为了清楚起见,我在这里添加了一些额外的字段;听起来你真正需要的只是结果中包含的lat
和lon
字段。)
那么你如何确定一个典型的&#34;您想要策划的路线之旅?通常,旅程的标志信息表示其分支或目的地。例如,如果您需要更具体地确定在特定日期的特定时间之间运行的旅行,calendars
和calendar_dates
表中的信息可以帮助您缩小范围。