Нарисуйте маршруты с листовкой из данных GTFS

Как извлечь stops И их stop_sequence зная route_id из данных GTFS с использованием MySQL,

Я хочу этого, потому что я пытаюсь нарисовать маршруты, используя Leaflet который требует дать координаты остановок в правильном порядке.

Я только нашел stop_sequence информация в stop_times.txt файл, но он подходит только для одной поездки по этому маршруту.

Этот ответ только говорит о том, какие остановки связаны с определенным маршрутом, но не в хорошем порядке.

1 ответ

I think you've arrived at your own answer here: Stops are ordered in sequence only along a specific trip, of which a route normally has many. This is meant to accommodate routes that have multiple branches or that change their path at certain times, such as a route that makes a diversion through an industrial park during rush hour.

Что вам нужно сделать, это сначала идентифицировать поездку, которая является типичной для маршрута, который вы собираетесь прокладывать, и запишите его идентификатор поездки. Чтобы получить список всех поездок по определенному маршруту, выполните запрос, например:

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 поля включены в результаты.)

Итак, как вы определяете "типичную" поездку для маршрута, который вы хотите построить? Часто информация о головном знаке для поездки указывает на ее филиал или пункт назначения. Если вам нужно быть более конкретным - например, идентифицировать поездки, которые выполняются между определенными часами в определенные дни - информацию в calendars а также calendar_dates столы могут помочь вам сузить их.

Другие вопросы по тегам