Главная/Гиды/Разработчики
Разработчики

GTFS, GTFS-RT и GBFS: в чем различия?

Сравните GTFS, GTFS-RT и GBFS для выбора данных мобильности: запланированное расписание, актуальная информация, станции и транспорт общего пользования.

By ROOTE·7 минут чтения
GTFS, GTFS-RT и GBFS: в чем различия?
Каждое путешествие начинается рядом.

Главное за несколько секунд

GTFS Schedule описывает запланированное транспортное предложение. GTFS Realtime, часто называемый GTFS-RT, передаёт актуальную информацию о сервисе. GBFS описывает сервисы разделяемой мобильности, включая их станции и доступные транспортные средства согласно опубликованным потокам данных. Выберите формат исходя из задачи, которую должно решить ваше приложение.

GTFS Schedule описывает запланированное транспортное предложение. GTFS Realtime, часто называемый GTFS-RT, передаёт актуальную информацию о сервисе. GBFS описывает сервисы разделяемой мобильности, включая их станции и доступные транспортные средства согласно опубликованным потокам данных. Выберите формат исходя из задачи, которую должно решить ваше приложение.

Эти форматы структурируют данные; они не гарантируют ни их доступности повсеместно, ни качество каждого потока.

GTFS для представления запланированного предложения

Набор GTFS Schedule включает табличные файлы, которые описывают, в частности, операторов, остановки, маршруты, рейсы и их проходы. Календарь указывает соответствующие дни. Файлы связаны идентификаторами. Справочник GTFS Schedule.

Он позволяет ответить на вопросы, например, «где находится эта остановка?» или «какой проход запланирован для этого сервиса?». Чтобы использовать расписание, нужно интерпретировать календарь и взаимосвязи файлов.

Просто прочитать список остановок недостаточно для восстановления расписания проходов. Напротив, позиция остановки может быть полезна без отображения расписания.

GTFS-RT для обновления информации о сервисе

GTFS Realtime может предоставлять обновления рейсов, позиции транспортных средств и предупреждения. Обновления рейсов касаются, в частности, проходов и изменений сервиса. Потоки используют Protocol Buffers — формат структурированной сериализации. Введение в GTFS Realtime.

Поставщик может публиковать отдельные категории без предоставления остальных. Наличие потока позиций не гарантирует оценок для всех остановок.

Для интерфейса выделите запланированный проход и обновлённую оценку. Наш гид теоретические расписания и реальное время объясняет эту разницу с точки зрения пользователя.

GBFS для разделяемой мобильности

GBFS использует JSON-потоки для описания сервиса разделяемой мобильности. В зависимости от системы и версии они могут содержать информацию о станциях, их состоянии, транспортных средствах и других характеристиках сервиса. Документация чётко различает информацию о станциях и состояние доступности. Документация GBFS.

В вашем приложении разделяйте относительно стабильные местоположения и быстро изменяющиеся состояния. Сохраняйте версию формата и актуальную отметку времени при обработке.

Поток доступности — это не API для бронирования или разблокировки. Он помогает найти предложение; операция аренды осуществляется соответствующим сервисом.

Сравнение по случаю использования

Потребность Формат для рассмотрения
Описание запланированных остановок и маршрутов GTFS Schedule
Интерпретация запланированных проходов и дней обслуживания GTFS Schedule
Обновление проходов или получение информации о сервисе GTFS-RT, в зависимости от опубликованных потоков
Поиск станций или транспортных средств общий мобильности GBFS, в зависимости от опубликованных данных

Пример проектирования: карта отображает остановки трамвая и станции велосипедов. Используются структурные данные для мест и актуализированные состояния для доступности велосипедов. У обоих слоёв разные требования к кешированию и обновлению.

Учитывайте ограничения каждого источника

Проверяйте версии, необязательные поля, охват и права использования. Идентификатор имеет смысл только в своём контексте: два поставщика могут использовать одинаковые строки для разных объектов.

Также учитывайте отсутствующие или устаревшие данные. Пустой список из недоступного потока не должен восприниматься как отсутствие сервиса. Избегайте молчаливой замены неизвестной информации на нуль.

Использование потоков данных напрямую или через API

Прямая интеграция возлагает на вас ответственность за сбор, валидацию и интерпретацию источников. API может предложить общий контракт, но вы всегда должны читать его охват, предупреждения и условия.

Для первого сценария ROOTE смотрите как искать остановки поблизости с помощью API. Начните с потребности вашего интерфейса, затем проверьте реальные доступные поля.

Для разработчиковROOTE Mobility API

Мобильность вокруг точки.
Прямо в вашем приложении.

  • Поиск
    вокруг позиции
  • Доступ к
    данным о мобильности
  • Интегрировать в
    ваше приложение

Перейдите от карты к данным: ищите мобильность и сервисы рядом с помощью API ROOTE.

Чтение фрагментов и выбор архитектуры

В GTFS Schedule фрагмент файла stop_times.txt связывает рейс, остановку и запланированное время прохода. Приведённый ниже упрощённый пример является учебным: он не представляет собой полный набор данных GTFS, а его идентификаторы должны быть связаны с файлами trips.txt, stops.txt и календарями.

В GTFS Realtime ищите полезную сущность: TripUpdate может обновить время прохода, VehiclePosition описывает позицию транспортного средства, а Alert передаёт информацию о сервисе. Позиция транспортного средства не является автоматически оценкой прибытия. Передаваемый формат — Protocol Buffers; JSON-представление для диагностики не является реальным бинарным потоком.

В GBFS файл station_information описывает станции, тогда как station_status содержит данные об их текущем состоянии. Названия некоторых счётчиков и доступных файлов меняются в зависимости от версии. Ниже приведён JSON-фрагмент, иллюстрирующий GBFS 2.3 и поля num_bikes_available и num_docks_available; перед использованием примера проверьте версию.

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

# Extrait pédagogique de stop_times.txt
trip_id,arrival_time,departure_time,stop_id,stop_sequence
trip_demo,08:10:00,08:10:00,stop_demo,1

# Extrait pédagogique de station_status en GBFS 2.3
{
  "station_id": "station_demo",
  "num_bikes_available": 3,
  "num_docks_available": 7,
  "is_installed": true,
  "is_renting": true,
  "is_returning": true,
  "last_reported": 1720000000
}

Форматирование доступности велосипедов и актуальности данных

Выбор API или MCP для вашего продукта

Часто задаваемые вопросы

Включает ли GTFS автоматическую поддержку реального времени?

Нет. GTFS Schedule представляет запланированное предложение; актуальная информация предоставляется другими потоками, в частности GTFS-RT.

Можно ли с помощью GBFS разблокировать велосипед?

Он описывает сервис и его публичные данные. Аренда осуществляется через возможности оператора.

Гарантирует ли стандартный формат полный охват?

Нет. Формат задаёт структуру; охват и публикуемая информация зависят от источников.

А не посмотреть ли вокруг себя?

Исследуйте свой район с ROOTE и найдите доступную информацию для подготовки поездки.

Исследовать карту ROOTE ↗