Руководство по GTFS Realtime

С помощью фида GTFS Realtime транспортные агентства могут в режиме реального времени сообщать клиентам о нарушениях в работе транспорта (закрытых станциях, перекрытых путях сообщения, задержках и т. п.), о местоположении транспортных средств и ожидаемом времени их прибытия.

На этом сайте описывается спецификации фида версии 2.0.

Используемые термины

Столбец и поле "Обязательно?"

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

В поле Обязательно? используются следующие значения:

  • Обязательно. Это поле в фиде GTFS Realtime должно быть заполнено.
  • Условно обязательно. Это поле должно быть заполнено при определенных условиях, перечисленных в поле Описание. Если эти условия не соблюдены, поле можно не заполнять.
  • Необязательно. Это поле фида можно не заполнять. Однако если данные доступны в базовых системах автоматической геолокации транспортных средств (например, параметр timestamp переменной VehiclePosition), то рекомендуется по возможности заполнять такие поля.

Обратите внимание, что в GTFS Realtime версии 1.0 не были заданы требования к семантике, поэтому фиды, в которых значение параметра gtfs_realtime_version равно 1, могут не соответствовать этим требованиям. Подробнее…

Количество

Количество – сколько элементов можно указать в поле. Возможные значения этого параметра:

Всегда ссылайтесь на поля Required (Тип) и Description (Описание), чтобы указать, какие поля обязательны, условно обязательны или необязательны. Подробная информация приведена здесь: gtfs-realtime.proto.

Типы данных Protocol Buffer

Для описания элементов фида используются следующие типы данных Protocol Buffer:

  • message – комплексный тип;
  • enum – список фиксированных значений.

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

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

Индекс элементов

Элементы

message FeedMessage

Содержание сообщения фида. Каждое сообщение, полученное в потоке, является ответом на соответствующий HTTP-запрос методом GET. Фид GTFS Realtime и все идентификаторы его элементов всегда определяются относительно существующего фида GTFS Static.

Поля

Название поля Тип Обязательно? Количество Описание
header FeedHeader Обязательно Один Метаданные фида и его сообщения.
entity FeedEntity Условно обязательно Несколько Содержание фида. Если в системе общественного транспорта доступна информация в режиме реального времени, укажите ее здесь. Если это поле не заполнено, значит сведений, полученных в режиме реального времени, нет.

message FeedHeader

Метаданные фида, включенные в сообщения фида.

Поля

Название поля Тип Обязательно? Количество Описание
gtfs_realtime_version string Обязательно Один Версия спецификации фида. Текущая версия – 2.0.
incrementality Incrementality Обязательно Один
timestamp uint64 Обязательно Один Временная метка, которая идентифицирует момент создания этого фида (по времени сервера). Используется POSIX-время (т. е. количество секунд с 1 января 1970 г. 00:00:00 (UTC)). Чтобы согласовать время в системах, передающих и получающих информацию в реальном времени, настоятельно рекомендуется получать временную метку с сервера. Можно использовать серверы уровня Stratum 3 и даже ниже, поскольку разница во времени в пределах нескольких секунд вполне допустима.

enum Incrementality

Определяет, является ли текущее обновление инкрементальным.

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

Значения

Значение
FULL_DATASET
DIFFERENTIAL

message FeedEntity

Определение (или обновление) элемента в фиде. Если элемент не удаляется, то должно быть заполнено только одно поле: trip_update, vehicle или alert.

Поля

Название поля Тип Обязательно? Количество Описание
id string Обязательно Один Уникальный (в пределах фида) идентификатор этого элемента. Идентификаторы используются только для обеспечения инкрементальности. Фактические элементы фида должны быть указаны явным образом с помощью селекторов (см. EntitySelector ниже).
is_deleted bool Необязательно Один Показывает, должен ли этот элемент быть удален. Обязателен только для фидов, в которых параметр Incrementality имеет значение DIFFERENTIAL. Если задано значение FULL_DATASET, этот параметр указывать НЕ следует.
trip_update TripUpdate Условно обязательно Один Информация о задержках отправления в реальном времени. Хотя бы одно из полей trip_update, vehicle или alert должно быть заполнено – все три поля не могут быть пустыми.
vehicle VehiclePosition Условно обязательно Один Информация о местоположении транспортного средства, полученная в режиме реального времени. Хотя бы одно из полей trip_update, vehicle или alert должно быть заполнено – все три поля не могут быть пустыми.
alert Alert Условно обязательно Один Информация об оповещении в режиме реального времени. Хотя бы одно из полей trip_update, vehicle или alert должно быть заполнено – все три поля не могут быть пустыми.

message TripUpdate

Уточнения в режиме реального времени о продвижении транспортного средства по маршруту. Дополнительную информацию об уточнениях можно найти здесь.

В зависимости от значения ScheduleRelationship переменная TripUpdate может обозначать:

  • рейс, который идет по графику;
  • рейс, который проходит по маршруту, но не имеет строгого расписания;
  • рейс, который был добавлен или удален в соответствии с расписанием.

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

Обратите внимание, что уточнение может содержать информацию о рейсе, который уже завершился. В этом случае достаточно уточнения по последней остановке рейса. Если время прибытия на конечную остановку уже прошло, это означает, что рейс уже завершен (также можно указать сведения о предыдущих остановках, хотя это и несущественно). Этот вариант подходит для случаев, когда по расписанию рейс ещё должен выполняться, но фактически уже завершился. Если удалить уточнения для такого рейса, будет считаться, что он ещё выполняется. Учтите, что отправитель фида может удалять старые фиды (хотя это не обязательно).

Поля

Название поля Тип Обязательно? Количество Описание
trip TripDescriptor Обязательно Один Рейс, к которому относится это сообщение. Для каждого рейса можно использовать не более одного элемента TripUpdate. Если таких элементов нет, значит и расчетных данных нет. Это не означает, что рейс идет по расписанию.
vehicle VehicleDescriptor Необязательно Один Дополнительная информация о транспортном средстве, выполняющем рейс.
stop_time_update StopTimeUpdate Условно обязательно Несколько Уточнения времени остановок – как предстоящих, так и пройденных. Уточнения должны быть отсортированы по последовательности остановок (stop_sequence) и применяются ко всем последующим остановкам рейса до очередного обновления stop_time_update. Хотя бы один параметр stop_time_update должен быть указан для всех рейсов, кроме отмененных (т. е. тех, где в поле schedule_relationship задано значение CANCELED).
timestamp uint64 Необязательно Один Время, когда был выполнен замер следования транспортного средства. Используется POSIX-время (т. е. количество секунд с 1 января 1970 г. 00:00:00 (UTC)).
delay int32 Необязательно Один Задержка – текущее отклонение рейса от расписания. Этот параметр необходим только в том случае, если ожидаемое время исчисляется относительно расписания, указанного в фиде GTFS.
Задержка (в секундах) может быть положительной (опоздание) или отрицательной (раньше времени). Задержка 0 означает движение точно по расписанию.
Информация о задержке в полях StopTimeUpdate имеет более высокий приоритет, чем аналогичная информация на уровне рейса. Поэтому данные для рейса подставляются только там, где для остановок на пути следования не указана задержка StopTimeUpdate.
Настоятельно рекомендуется, чтобы отправители фидов заполняли поле TripUpdate.timestamp – в нем указывается, когда последний раз обновлялась информация о задержке. Это позволяет оценить актуальность данных.
Внимание! Это поле пока используется как экспериментальное. В дальнейшем оно может быть изменено и добавлено в спецификацию.

message StopTimeEvent

Информация о времени одного ожидаемого события (прибытия или отправления). В этом сообщении указывается задержка и/или расчетное время, а также погрешность.

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

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

Поля

Название поля Тип Обязательно? Количество Описание
delay int32 Условно обязательно Один Задержка (в секундах) может быть положительной (опоздание) или отрицательной (раньше времени). Задержка 0 означает движение точно по расписанию. В сообщении StopTimeEvent должен быть указан параметр delay или time – оба поля не могут быть пустыми.
time int64 Условно обязательно Один Абсолютное время. Используется POSIX-время (т. е. количество секунд с 1 января 1970 г. 00:00:00 (UTC)). В сообщении StopTimeEvent должен быть указан параметр delay или time – оба поля не могут быть пустыми.
uncertainty int32 Необязательно Один Погрешность. Если это поле пустое, погрешность неизвестна. Если прогноз абсолютно надежен, этот параметр равен 0.

message StopTimeUpdate

Уточненная информация о прибытии на остановку или отправлении с нее. Дополнительную информацию по этому вопросу можно найти в разделах TripDescriptor и Уточнения рейсов.

Уточнения могут относиться как к прошлым, так и к будущим событиям. Отправитель фида может сбрасывать уточнения о прошедших событиях. Остановка, к которой относится обновление, указывается в параметре stop_sequence или stop_id, поэтому одно из этих полей обязательно должно быть заполнено. Параметр stop_id должен ссылаться на stop_id в GTFS. Если один и тот же stop_id включен в рейс несколько раз, для него необходимо указывать последовательность остановок (stop_sequence) во всех обновлениях StopTimeUpdates для этого рейса.

Поля

Название поля Тип Обязательно? Количество Описание
stop_sequence uint32 Условно обязательно Один Должен совпадать с одноименным параметром в файле stop_times.txt в соответствующем фиде GTFS. В сообщении StopTimeUpdate должен быть представлен параметр stop_sequence или stop_id – оба поля не могут быть пустыми. Значение stop_sequence обязательно для рейсов, которые проходят через остановку с идентификатором stop_id несколько раз (например, в замкнутом маршруте), чтобы устранить неоднозначность.
stop_id string Условно обязательно Один Должен совпадать с одноименным параметром в файле stops.txt в соответствующем фиде GTFS. В сообщении StopTimeUpdate должен быть представлен параметр stop_sequence или stop_id – оба поля не могут быть пустыми.
arrival StopTimeEvent Условно обязательно Один Если поле schedule_relationship пустое или содержит значение SCHEDULED, то один из параметров arrival и departure должен быть указан в сообщении StopTimeUpdate – оба поля не могут быть пустыми (кроме случаев, когда в поле schedule_relationship указано значение SKIPPED). Если в поле schedule_relationship указано значение NO_DATA, то поля arrival и departure должны быть пустыми.
departure StopTimeEvent Условно обязательно Один Если поле schedule_relationship пустое или содержит значение SCHEDULED, то один из параметров arrival и departure должен быть указан в сообщении StopTimeUpdate – оба поля не могут быть пустыми (кроме случаев, когда в поле schedule_relationship указано значение SKIPPED). Если в поле schedule_relationship указано значение NO_DATA, то поля arrival и departure должны быть пустыми.
schedule_relationship ScheduleRelationship Необязательно Один Значение по умолчанию – SCHEDULED.

enum ScheduleRelationship

Показывает, как параметр StopTime связан с расписанием, указанным в статическом фиде GTFS.

Значения

Значение Примечание
SCHEDULED Последовательность остановок при движении транспортного средства соответствует расписанию, указанному в статическом фиде GTFS. При этом время прибытия и отправления может отличаться от указанного в расписании. Такой подход используется по умолчанию. По меньшей мере один такой параметр указывается для времени прибытия и отправления.
SKIPPED Пропуск остановки, т. е. транспортное средство не будет останавливаться в этом пункте. Прибытие и отправление можно не указывать.
NO_DATA Данных об этой остановке нет. Это означает, что уточняющая информация не предоставлена. Если в поле указано значение NO_DATA, такое же значение устанавливается и для последующих остановок. Поэтому такой метод рекомендуется использовать, чтобы указать, начиная с какой остановки у вас отсутствуют уточнения. В этом случае не указывается ни прибытие, ни отправление.

message VehiclePosition

Уточняющая информация о местоположении транспортного средства.

Поля

Название поля Тип Обязательно? Количество Описание
trip TripDescriptor Необязательно Один Рейс, который выполняется на этом транспортном средстве. Может быть пустым или частично заполненным, если не удается сопоставить транспортное средство с рейсом.
vehicle VehicleDescriptor Необязательно Один Дополнительная информация о транспортном средстве, выполняющем рейс. В каждой записи должен использоваться уникальный идентификатор транспортного средства.
position Position Необязательно Один Положение транспортного средства в данный момент.
current_stop_sequence uint32 Необязательно Один Индекс текущей остановки в последовательности остановок. Значение current_stop_sequence определяется значением current_status. Если поле current_status не заполнено, предполагается, что транспортное средство находится в пути (IN_TRANSIT_TO).
stop_id string Необязательно Один Остановка, на которой находится транспортное средство. Значение должно быть таким же, как в файле stops.txt соответствующего фида GTFS.
current_status VehicleStopStatus Необязательно Один Точный статус транспортного средства относительно текущей остановки. Игнорируется, если параметр current_stop_sequence отсутствует.
timestamp uint64 Необязательно Один Время, когда определялось местоположение транспортного средства. Используется POSIX-время (т. е. количество секунд с 1 января 1970 г. 00:00:00 (UTC)).
congestion_level CongestionLevel Необязательно Один
occupancy_status OccupancyStatus Необязательно Один Заполненность транспортного средства.
Внимание! Это поле пока используется как экспериментальное. В дальнейшем оно может быть изменено и добавлено в спецификацию.

enum VehicleStopStatus

Значения

Значение Примечание
INCOMING_AT Транспортное средство прибывает на остановку (обычно на табло строка с информацией о таком транспортном средстве начинает мигать).
STOPPED_AT Транспортное средство находится на остановке.
IN_TRANSIT_TO Транспортное средство отправилось с предыдущей остановки и находится в пути.

enum CongestionLevel

Уровень загруженности дорог на пути следования транспортного средства.

Значения

Значение
UNKNOWN_CONGESTION_LEVEL
RUNNING_SMOOTHLY
STOP_AND_GO
CONGESTION
SEVERE_CONGESTION

enum OccupancyStatus

Заполненность транспортного средства.

Внимание! Это поле пока используется как экспериментальное. В дальнейшем оно может быть изменено и добавлено в спецификацию.

Значения

Значение Примечание
EMPTY Транспортное средство считается пустым: на борту мало или вообще нет пассажиров. Посадка возможна.
MANY_SEATS_AVAILABLE В транспортном средстве много свободных мест. Какой процент свободных мест от общего количества подходит для этой категории, определяется по усмотрению отправителя фида.
FEW_SEATS_AVAILABLE В транспортном средстве мало свободных мест. Какой процент свободных мест от общего количества подходит для этой категории, определяется по усмотрению отправителя фида.
STANDING_ROOM_ONLY В транспортном средстве есть только стоячие места.
CRUSHED_STANDING_ROOM_ONLY В транспортном средстве есть только стоячие места, и их очень мало.
FULL Транспортное средство заполнено, но посадка возможна.
NOT_ACCEPTING_PASSENGERS Посадка в транспортное средство прекращена.

message Alert

Оповещение об инциденте в сети общественного транспорта.

Поля

Название поля Тип Обязательно? Количество Описание
active_period TimeRange Необязательно Несколько Временной диапазон, в течение которого оповещение должно показываться пользователю. Если это поле пустое, то оповещение продолжит отображаться до тех пор, пока оно не будет удалено из фида. Можно указать несколько диапазонов.
informed_entity EntitySelector Обязательно Несколько Элементы, в которых пользователи будут видеть это оповещение. По меньшей мере одно поле informed_entity должно быть заполнено.
cause Cause Необязательно Один
effect Effect Необязательно Один
url TranslatedString Необязательно Один URL, по которому можно найти дополнительную информацию об оповещении.
header_text TranslatedString Обязательно Один Заголовок оповещения. Эта текстовая строка должна быть выделена, например полужирным шрифтом.
description_text TranslatedString Обязательно Один Описание оповещения. Эта текстовая строка должна быть отформатирована так же, как основной текст оповещения (или отображаться после раскрытия пользователем). Описание должно дополнять информацию, которая содержится в заголовке.

enum Cause

Причина оповещения.

Значения

Значение
UNKNOWN_CAUSE
OTHER_CAUSE
TECHNICAL_PROBLEM
STRIKE
DEMONSTRATION
ACCIDENT
HOLIDAY
WEATHER
MAINTENANCE
CONSTRUCTION
POLICE_ACTIVITY
MEDICAL_EMERGENCY

enum Effect

Как влияет эта проблема на данный элемент.

Значения

Значение
NO_SERVICE
REDUCED_SERVICE
SIGNIFICANT_DELAYS
DETOUR
ADDITIONAL_SERVICE
MODIFIED_SERVICE
OTHER_EFFECT
UNKNOWN_EFFECT
STOP_MOVED

message TimeRange

Временной интервал. Интервал считается активным в момент времени t, если t больше или равно времени начала и меньше времени окончания.

Поля

Название поля Тип Обязательно? Количество Описание
start uint64 Условно обязательно Один Время начала в исчислении POSIX (количество секунд с 1 января 1970 г. 00:00:00 (UTC)). Если оно не указано, интервал начинается с минус бесконечности. Если сообщение TimeRange есть в фиде, то необходимо указать время начала или окончания – оба поля не могут быть пустыми.
end uint64 Условно обязательно Один Время окончания в исчислении POSIX (количество секунд с 1 января 1970 г. 00:00:00 (UTC)). Если оно не указано, интервал заканчивается плюс бесконечностью. Если сообщение TimeRange есть в фиде, то необходимо указать время начала или окончания – оба поля не могут быть пустыми.

message Position

Географическое местоположение транспортного средства.

Поля

Название поля Тип Обязательно? Количество Описание
latitude float Обязательно Один В градусах северной широты, в системе координат WGS-84.
longitude float Обязательно Один В градусах восточной долготы, в системе координат WGS-84.
bearing float Необязательно Один Направление в градусах по часовой стрелке от географического севера: 0 – север, 90 – восток и т. д. Это может быть направление по компасу либо направление к следующей остановке или промежуточному местоположению. Значение никак не связано с предыдущими местоположениями, которые можно вывести по ранее полученным данным.
odometer double Необязательно Один Значение одометра в метрах.
speed float Необязательно Один Мгновенная скорость, согласно приборам транспортного средства, в метрах в секунду.

message TripDescriptor

Дескриптор, который идентифицирует рейс в фиде GTFS или все рейсы по маршруту. Чтобы указать один рейс, нужно указать trip_id (и start_time, если необходимо). Если параметр route_id также задан, то он должен совпадать с идентификатором маршрута этого рейса. Если нужно указать все рейсы по данному маршруту, необходимо задать только route_id. Обратите внимание, что если параметр trip_id неизвестен, то идентификаторов последовательности остановок в TripUpdate недостаточно – нужно также задать параметры stop_id. Кроме того, необходимо указать абсолютное время прибытия и отправления.

Поля

Название поля Тип Обязательно? Количество Описание
trip_id string Условно обязательно Один Параметр trip_id из фида GTFS, на который указывает этот селектор. Для нерегулярных рейсов (тех, которые не определены в файле frequency.txt фида GTFS) этого поля достаточно, чтобы однозначно идентифицировать рейс. Для регулярных рейсов, определенных в файле frequency.txt, необходимо указать все три параметра: trip_id, start_time и start_date. Для рейсов, которые выполняются по расписанию (т. е. не определены в файле frequency.txt), параметр trip_id может быть опущен только в том случае, если рейс можно однозначно идентифицировать по сочетанию параметров route_id, direction_id, start_time и start_date и все эти поля заполнены.
route_id string Условно обязательно Один Параметр route_id из фида GTFS, на который указывает этот селектор. Если параметр trip_id опущен, необходимо указать route_id.
direction_id uint32 Условно обязательно Один Параметр direction_id из файла trips.txt в фиде GTFS определяет направление движения для рейсов, на которые указывает этот селектор. Если параметр trip_id опущен, необходимо указать direction_id.
Внимание! Это поле пока используется как экспериментальное. В дальнейшем оно может быть изменено и добавлено в спецификацию.
start_time string Условно обязательно Один Время отправления, изначально указанное в расписании рейса. Если trip_id обозначает рейс, который выполняется нерегулярно, то либо это поле должно быть опущено, либо его значение должно совпадать с указанным в фиде GTFS. Если trip_id обозначает регулярный рейс, определенный в файле frequency.txt фида GTFS, то поле start_time должно быть заполнено в сообщениях TripUpdate и VehiclePosition. Если для рейса в фиде GTFS указано значение exact_times=1, то значение start_time должно равняться сумме значения start_time в файле frequencies.txt и значения headway_secs, умноженного на целый коэффициент (который может быть равен и нулю). Если для рейса указано значение exact_times=0, тогда значение параметра start_time может быть произвольным и обычно соответствует времени начала рейса. После того как параметр start_time для регулярного рейса (exact_times=0) установлен, он не должен меняться, даже если меняется время отправления в рейс (в таком случае можно использовать сообщение StopTimeUpdate). Если параметр trip_id опущен, то поле start_time должно быть заполнено. Формат и семантика поля аналогичны используемым для параметра start_time в файле frequency.txt фида GTFS, например 11:15:35 или 25:15:35.
start_date string Условно обязательно Один Дата начала рейса в формате ГГГГММДД. Для рейсов, выполняемых по расписанию (т. е. тех, которые не определены в файле frequency.txt фида GTFS), это поле необходимо указывать, чтобы избежать путаницы на случай, если рейс задерживается и отправление переносится на следующие сутки. Например, если поезд, который отправляется каждый день в 8:00 и 20:00, задержался на 12 часов, то время разных рейсов совпадет. Это поле можно заполнять, но оно не является обязательным, если такие накладки исключены (например, рейсы выполняются ежечасно, но транспортное средство, опоздавшее на час, удаляется из расписания). Это поле обязательно для регулярных рейсов, перечисленных в файле frequencies.txt фида GTFS. Если параметр trip_id опущен, необходимо указать start_date.
schedule_relationship ScheduleRelationship Необязательно Один

enum ScheduleRelationship

Связь между рейсом и расписанием в статическом фиде GTFS. Если рейс выполняется по временному расписанию, не отраженному в GTFS, то он должен иметь пометку ADDED, а не SCHEDULED.

Значения

Значение Примечание
SCHEDULED Рейс, который выполняется в соответствии с расписанием GTFS или с незначительными отклонениями.
ADDED Дополнительный рейс, добавленный в расписание, например в случае возросшего пассажиропотока или замены вышедшего из строя транспортного средства.
UNSCHEDULED Рейс, выполняемый вне расписания. Эта пометка используется для идентификации рейсов, перечисленных в файле frequencies.txt GTFS, для которых установлено значение exact_times=0. Ее не следует использовать для описания рейсов, которых нет в файле frequency.txt или для которых установлено значение exact_times=1.
CANCELED Рейс, удаленный из расписания.

message VehicleDescriptor

Информация, позволяющая идентифицировать транспортное средство, выполняющее рейс.

Поля

Название поля Тип Обязательно? Количество Описание
id string Необязательно Один Идентификатор транспортного средства, используемый внутри агентства. Должен быть уникальным. Используется для отслеживания транспортного средства по мере его прохождения через систему. Идентификатор не должен быть виден конечному пользователю – для этого есть поле label.
label string Необязательно Один Видимое пользователям название, которое помогает найти нужное транспортное средство.
license_plate string Необязательно Один Номерной знак транспортного средства.

message EntitySelector

Селектор для элементов в фиде GTFS. Значения полей должны совпадать со значениями соответствующих полей в фиде GTFS. Должен быть указан хотя бы один спецификатор. Если их указано несколько, то сопоставление должно применяться ко всем заданным спецификаторам.

Поля

Название поля Тип Обязательно? Количество Описание
agency_id string Условно обязательно Один Необходимо указать хотя бы один спецификатор – все поля в сообщении EntitySelector не могут быть пустыми.
route_id string Условно обязательно Один Необходимо указать хотя бы один спецификатор – все поля в сообщении EntitySelector не могут быть пустыми.
route_type int32 Условно обязательно Один Необходимо указать хотя бы один спецификатор – все поля в сообщении EntitySelector не могут быть пустыми.
trip TripDescriptor Условно обязательно Один Необходимо указать хотя бы один спецификатор – все поля в сообщении EntitySelector не могут быть пустыми.
stop_id string Условно обязательно Один Необходимо указать хотя бы один спецификатор – все поля в сообщении EntitySelector не могут быть пустыми.

message TranslatedString

Сообщение, в котором содержатся URL для разных языков или переведенные версии текста. Из него будет выбрана одна строка. Процедура выбора определяется следующим образом: если язык интерфейса соответствует языковому коду перевода, то выбирается первый подходящий перевод. Если язык интерфейса по умолчанию соответствует языковому коду перевода, то выбирается первый подходящий вариант перевода. Если языковой код не указан для одного из вариантов перевода, то будет выбран этот вариант.

Поля

Название поля Тип Обязательно? Количество Описание
translation Translation Обязательно Несколько Необходимо предоставить хотя бы один перевод.

message Translation

Локализованная строка с языковым кодом.

Поля

Название поля Тип Обязательно? Количество Описание
text string Обязательно Один Строка с текстом в кодировке UTF-8.
language string Условно обязательно Один Код языка по стандарту BCP 47. Может быть опущен, если язык неизвестен или фид не локализован. Допустимо использовать не более одного варианта перевода без языкового кода.