Google Транспорт и GTFS Schedule: руководства и различия

На этой странице описаны основные различия между официальной спецификацией GTFS Schedule и ее реализацией в Google Транспорте. Их можно разделить на следующие типы:

  • Игнорируемые поля официальной спецификации. Эти поля входят в официальную спецификацию GTFS. Google Транспорт обрабатывает эти данные без ошибок, но не использует их.

  • Другая интерпретация. Эти поля включают части официальной спецификации GTFS, которые в Google Транспорте интерпретируются не так, как в определениях GTFS.

  • Экспериментальная поддержка. Это экспериментальные поля в реализации Google Транспорта. Чтобы реализовать новое экспериментальное поле, обратитесь к команде Google Транспорта.

  • Расширения, поддерживаемые в Google Транспорте. Эти расширения не входят в официальную спецификацию GTFS. К этой категории относятся как общедоступные расширения, так и расширения из Google Транспорта. Любой партнер может отправить эту информацию в Транспорт через свой фид.

GTFS Static

В этом разделе описаны основные различия между официальной спецификацией GTFS и ее реализацией в Google Транспорте для фида GTFS Static.

Игнорируемые поля официальной спецификации

Некоторые поля официальной спецификации, которые игнорируются в Google Транспорте, являются экспериментальными. Подробная информация приведена на сайте gtfs.org.

В таблице 1 перечислены файлы GTFS Static, которые Google Транспорт не поддерживает. Также Транспорт не поддерживает ни одно из полей, определенных в этих файлах.

Таблица 1. Неподдерживаемые файлы GTFS Static
areas.txt
fare_leg_rules.txt
fare_products.txt
fare_transfer_rules.txt
levels.txt
stop_areas.txt

В таблице 2 приведены все поля, которые определены в GTFS Static и которые Google Транспорт игнорирует.

Таблица 2. Игнорируемые поля GTFS Static
Название файла Игнорируемое поле, определенное в GTFS Тип поля
fare_attributes.txt payment_method Перечисление
feed_info.txt default_lang Код языка
feed_info.txt feed_publisher_name Текст
pathways.txt max_slope Число с плавающей запятой
routes.txt continuous_drop_off Перечисление
routes.txt continuous_pickup Перечисление
routes.txt network_id Идентификатор
routes.txt route_desc Текст
routes.txt route_sort_order Неотрицательное целое число
stops.txt level_id Идентификатор
stops.txt stop_desc Текст
stops.txt stop_url URL
stops.txt tts_stop_name Текст
trips.txt bikes_allowed Перечисление

Другая интерпретация

Некоторые поля, определенные в GTFS Static, принимаются Google Транспортом, но интерпретируются не так, как в официальной спецификации.

В таблице 3 перечислены поля GTFS Static, которые в Google Транспорте реализуются не так, как описано в официальной спецификации.

Таблица 3. Поля GTFS Static, которые реализуются иначе
Название файла Поле, определенное в GTFS Тип поля Обязательно в Google Транспорте? Сведения о реализации в Google Транспорте
fare_attributes.txt transfers Перечисление Обязательно

Расширение Google Транспорта.

В общедоступной спецификации GTFS значения ограничены диапазоном от 0 до 2. В Google Транспорте допускаются значения от 0 до 5.

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

pathways.txt pathway_mode Перечисление Необязательно Если поле pathway_mode указано, но не заполнено, Google Транспорт принимает его как неизвестное.
stop_times.txt arrival_time Время Условно обязательно Часы ограничены значениями в диапазоне от 00 до 99. Этого более чем достаточно для трехдневной поездки.
transfers.txt transfer_type Перечисление Обязательно

Значения 4 и 5 не поддерживаются и игнорируются.

Google Транспорт поддерживает значения 0, 1, 2 и 3.

trips.txt block_id Идентификатор Необязательно Подробная информация приведена в примере пересадки без смены транспортного средства.

Экспериментальная поддержка

Если вам нужна помощь в реализации новых экспериментальных полей в этой категории, свяжитесь с командой Google Транспорта.

Расширения, поддерживаемые Google Транспортом

В таблице 4 представлена информация о расширениях Google Транспорта. Эти поля не входят в официальную спецификацию GTFS.

Таблица 4. Поддерживаемые расширения GTFS Static
Название файла Поле Тип поля Обязательно в Google Транспорте? Сведения о реализации в Google Транспорте
fare_attributes.txt ic_price Число с плавающей запятой Необязательно

Это расширение Google Транспорта доступно только партнерам в Японии.

Значение поля ic_price – это сумма со скидкой, которая подлежит уплате по этому тарифу при наличии смарт-карты. Если скидка для этого тарифа не предоставляется или смарт-карта не поддерживается, в поле ic_price должно быть значение -1.

fare_rules.txt contains_route_id Идентификатор Необязательно

Расширение Google Транспорта.

Этот тариф применяется только к поездкам по набору маршрутов, определенному значением route_id во всех строках для этой комбинации столбцов fare_id, origin_id и destination_id.

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

routes.txt checkin_duration Целое число Необязательно

Расширение Google Транспорта.

В поле checkin_duration указывается, за какой промежуток времени (в секундах) до отправления по графику пассажиру следует прибыть, чтобы успеть зарегистрироваться на рейс и сесть в транспортное средство.

Если пассажир пересаживается на этот рейс, то время пересадки переопределяет значение поля checkin_duration.

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

routes.txt route_type Перечисление Обязательно

Расширение Google Транспорта.

Информацию о том, как в Google Транспорте расширяются принятые GTFS варианты значений route_type, можно найти в статье Расширенные типы маршрутов для GTFS.

stop_times.txt stop_direction_name Текст Необязательно

Расширение Google Транспорта.

Поле stop_direction_name определяет направление рейса для пассажиров. Направление сохраняется как значение direction_name в информации об отправлении с этой остановки.

Если поле stop_direction_name пустое, то вместо него используется поле trip_direction_name, поддерживаемое в Google Транспорте. Если значения нет ни в поле trip_direction_name, ни в поле stop_direction_name, то импортер данных об общественном транспорте оставляет их пустыми. В этом случае партнеры могут использовать значение stop_headsign или trip_headsign. К значениям поля stop_direction_name применяется нормализация регистра.

stops.txt signposted_as Текст Необязательно

Расширение Google Транспорта.

В поле signposted_as содержится точный текст, написанный на вывеске платформы. Примеры: "Южный вокзал", "Центральный район".

Поле GTFS platform_code и поддерживаемое в Google Транспорте поле signposted_as можно задавать одновременно.

Основные различия между полями platform_code и signposted_as перечислены ниже.

  • Длина. Поле platform_code обычно содержит число или букву, например 2 или C.
  • Язык. Для поля platform_code язык не задается, а значения поля signposted_as могут переводиться на другие языки.
  • Стабильность. Значение поля platform_code меняется значительно реже, чем у поля signposted_as.
stops.txt vehicle_type Целое число Необязательно

Расширение Google Транспорта.

В поле vehicle_type указывается тип транспортных средств, которые останавливаются на остановке. Это поле поддерживает типы маршрутов Hierarchical Vehicle Type (HVT). Значения HVT соответствуют европейскому стандарту TPEG (Transport Protocol Experts Group).

agency.txt ticketing_deep_link_id Идентификатор Необязательно

Расширение Google Транспорта для продажи билетов.

В файле agency.txt поле ticketing_deep_link_id представляет собой ссылку на контент, которая используется для продажи билетов на рейсы этого агентства.

routes.txt ticketing_deep_link_id Идентификатор Необязательно

Расширение Google Транспорта для продажи билетов.

В файле routes.txt поле ticketing_deep_link_id представляет собой ссылку на контент, которая используется для продажи билетов на рейсы этого маршрута.

stop_times.txt ticketing_stop_time_id Идентификатор Необязательно

Расширение Google Транспорта для продажи билетов.

Если в файле stop_times.txt есть поле ticketing_stop_time_id, то его значение переопределяет идентификатор времени остановки для продажи билетов с помощью ссылок на контент.

stop_times.txt ticketing_type Перечисление Необязательно

Расширение Google Транспорта для продажи билетов.

В поле ticketing_type указывается тип продажи билетов, который применяется к этому времени остановки.

Google Транспорт принимает следующие значения:

  • Empty (то есть значение не указано). Значение по умолчанию, заданное для рейса.
  • 0. Доступно, только если у агентства или маршрута есть включенная ссылка на контент для продажи билетов.
  • 1. Недоступно.
ticketing_deep_links.txt android_intent_uri URI Необязательно

Расширение Google Транспорта для продажи билетов.

Поле android_intent_uri содержит URI объекта Intent, который используется для ссылки на контент в приложении Android.

ticketing_deep_links.txt ios_universal_link_url URL Необязательно

Расширение Google Транспорта для продажи билетов.

Поле ios_universal_link_url содержит URL универсальной ссылки, который используется для ссылки на контент в приложении iOS.

ticketing_deep_links.txt ticketing_deep_link_id Идентификатор Обязательно

Расширение Google Транспорта для продажи билетов.

Поле ticketing_deep_link_id содержит идентификатор ссылки на контент.

ticketing_deep_links.txt web_url URL Необязательно

Расширение Google Транспорта для продажи билетов.

Поле web_url содержит URI объекта Intent, который используется для ссылки на контент на сайте.

ticketing_identifiers.txt agency_id Идентификатор Обязательно

Расширение Google Транспорта для продажи билетов.

Чтобы указать агентство, обслуживающее остановку, для которой определено поле по умолчанию ticketing_stop_id, в поле agency_id указывается идентификатор из файла agency.txt GTFS.

ticketing_identifiers.txt stop_id Идентификатор Обязательно

Расширение Google Транспорта для продажи билетов.

Чтобы указать остановку, для которой определено поле по умолчанию ticketing_stop_id, в поле stop_id указывается идентификатор из файла stops.txt GTFS.

ticketing_identifiers.txt ticketing_stop_id Идентификатор Обязательно

Расширение Google Транспорта для продажи билетов.

Поле ticketing_stop_id содержит идентификатор продажи билетов, который применяется к остановке. При необходимости идентификатор может определяться агентством.

trips.txt exceptional Перечисление Необязательно

Пометка нетипичных рейсов, которые не соответствуют обычному расписанию или маршруту в связи с какими-либо мероприятиями или запланированными действиями (например, ремонтом дороги и т. п.).

Google Транспорт принимает следующие значения:

  • 0. Обычные рейсы.
  • 1. Нетипичные рейсы. Например, рейсы, добавленные в связи с событиями или мероприятиями, или маршруты, не совпадающие с обычными из-за запланированных действий.
trips.txt ticketing_trip_id Идентификатор Необязательно

Расширение Google Транспорта для продажи билетов.

Если есть поле ticketing_trip_id, то его значение перезаписывает значение поля trip_id и определяет рейс, билеты на который продаются с помощью ссылок на контент.

trips.txt ticketing_type Перечисление Необязательно

Расширение Google Транспорта для продажи билетов.

Поле ticketing_type определяет тип продажи билетов, который применяется к этому рейсу.

Google Транспорт принимает следующие значения:

  • 0. По умолчанию. Доступно, только если у агентства или маршрута есть включенная ссылка на контент для продажи билетов.
  • 1. Недоступно.
translations.txt lang Код языка Необязательно

Расширение Google Транспорта.

Поле lang не входит в официальную спецификацию GTFS, но Google Транспорт использует его значение, если оно указано.

Используйте поле lang, чтобы указать перевод фразы. Его значение не должно быть пустым или und (неопределенный язык).

translations.txt trans_id Идентификатор Необязательно

Расширение Google Транспорта.

Поле trans_id не входит в официальную спецификацию GTFS, но Google Транспорт использует его значение, если оно указано.

Используйте поле trans_id, чтобы указать токен идентификатора переведенной фразы. Каждая строка таблицы translations.txt означает, что для языка lang фраза с идентификатором trans_id переводится как значение поля translation.

trips.txt original_trip_id Идентификатор Необязательно

Расширение Google Транспорта.

Если в файле trips.txt есть поле original_trip_id, его значение перезаписывает значение trip_id для других систем. Примером может служить сопоставление в реальном времени.

trips.txt trip_direction_name Текст Необязательно

Расширение Google Транспорта.

Поле trip_direction_name определяет направление рейса для пассажиров. Значение этого поля сохраняется как значение direction_name каждого рейса.

Если значение stop_direction_name в таблице stop_times меняется во время рейса, оно может переопределить значение trip_direction_name.

К значениям поля trip_direction_name применяется нормализация регистра.

trips.txt vehicle_category_id Идентификатор Необязательно

Расширение Google Транспорта.

В файле trips.txt поле vehicle_category_id определяет транспортное средство, назначенное на рейс. Если в файле trips.txt есть это поле, его значение переопределяет значение vehicle_category_id в файле routes.txt.