1

如何使用. stops_ _stop_sequenceroute_idMySQL

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

我只stop_sequence在文件中找到了信息stop_times.txt,但它只对这条路线上的一次旅行是正确的。

此答案仅说明与特定路线相关的停靠点,但顺序不正确

4

1 回答 1

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字段。)

那么,如何确定要绘制的路线的“典型”行程呢?通常,旅行的标志信息表明其分支或目的地。如果您需要更具体(例如,确定在特定日期的特定小时之间运行的行程),表格中的信息calendars可以calendar_dates帮助您缩小范围。

于 2015-04-20T22:41:16.497 回答