2015-07-30 3 views
0

Так что я заметил это только в своем приложении, но когда я получаю список маршрутов, которые обслуживают остановку, я получаю несколько trip_headsigns для определенного маршрута, но все они выполняют один и тот же маршрут, когда я получаю все остановки и форму маршрута , Я что-то упустил? Или кто-нибудь может объяснить почему? Вот как я получаю маршруты для конкретной остановки:Несколько маршрутов для маршрута?

SELECT DISTINCT t.trip_headsign, r.route_short_name,r.route_long_name 
    FROM stop_times st INNER JOIN trips t 
    ON t.trip_id = st.trip_id 
    INNER JOIN routes r 
    ON r.route_id = t.route_id 
    WHERE st.stop_id = <stop_id> 

Вот как я получаю все остановки для конкретного маршрута, возвращаемого запросом

 SELECT DISTINCT t.trip_id, s.stop_code, s.stop_name, s.stop_lat, s.stop_lon, t.shape_id, st.arrival_time 
     FROM trips as t INNER JOIN stop_times as st 
     ON st.trip_id = t.trip_id 
     INNER JOIN stops as s ON s.stop_id = st.stop_id 
     WHERE t.route_id = <route_id> 
     AND t.service_id = "Weekdays" 
     AND t.direction_id = <direction_id> 

Но, как я уже сказал, я получаю несколько trip_headsigns как запрос возвращается из первого, но когда я запускаю второй запрос, я получаю тот же маршрут для всех этих trip_headsigns. Любая помощь/комментарии/идеи приветствуются!

ответ

2

Часто транзитный маршрут имеет несколько ответвлений, которые работают на разных участках одного пути по сети. В качестве примера в реальном мире York Region Transit работает route 85 (PDF-ссылка) с двумя ветвями 85 и 85C. Оба действуют по одному и тому же коридору между востоком и западом, но варьируются в пределах расстояния, которое они покрывают: самая западная часть маршрута обслуживается только ветвью 85.

Чтобы убедиться, что гонщики могут попасть на нужную шину, headign на каждой шине вдоль этого маршрута указывает, какая ветка она следит за ее поездкой: Всадники, ожидающие остановки на запад, могут увидеть автобус, отображающий либо «85 Napa Долина "или" 85C Islington ", и выберите, чтобы идти дальше или нет, основываясь на том, как далеко они должны идти.

Я ожидаю, что это то, что вы видите в своих данных: Несколько ветвей того же маршрута, которые покрывают разные части одного и того же основного пути. Обратите внимание, что 85 и 85C YRT имеют один и тот же путь (т. Е. Форму) через сеть; эффективно, 85C заканчивает свои поездки раньше. Но поскольку они всего лишь вариации на одном и том же базовом маршруте, для них целесообразно моделировать в GTFS как один маршрут с поездками, которые различаются по их головарду и расстоянию, которое они совершают.

+0

Эй, Саймон! Еще раз спасибо за ответ! Итак, чтобы отслеживать, есть ли способ дифференцировать вариации маршрута с использованием данных gtfs? – Masterofawesome

+0

С помощью headign будет единственным простым и надежным способом, о котором я знаю. В конце концов, сами гонщики различают разные ветви. Вы могли бы попытаться быть умными и проанализировать пройденное расстояние или количество остановленных остановок, но я думаю, что это будет намного больше проблем, чем того стоит. –

+0

Благодарим вас за помощь! Я согласен, что было бы намного больше неприятностей, чем это стоит – Masterofawesome