Перейти к содержанию

Ссылка наGTFS Realtime

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

Версия 2.0 спецификации корма обсуждается и документируется на этом сайте. Допустимые версии - "2.0", "1.0".

Определения терминов

Требуется

В GTFS v2.0 и выше, колонка Required описывает, какие поля должны быть предоставлены производителем для того, чтобы транзитные данные были действительными и имели смысл для потребляющего приложения.

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

  • Required: Это поле должно быть предоставлено производителем GTFS feed.
  • Условно обязательное: Это поле требуется при определенных условиях, которые указаны в описании поля. Вне этих условий поле является необязательным.
  • Необязательное: Это поле является необязательным и не требуется для заполнения производителями. Однако, если данные доступны в базовых системах автоматического определения местоположения vehicle (например, timestamp VehiclePosition ), рекомендуется, чтобы производители по возможности предоставляли эти необязательные поля.

Обратите внимание, что семантические требования не были определены в GTFS версии 1.0, и поэтому фиды с gtfs_realtime_version равной 1 могут не соответствовать этим требованиям (подробнее см. предложение по семантическим требованиям).

Кардинальность

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

  • One - Для этого поля может быть предоставлен один элемент one. Это соответствует обязательной и необязательной кардинальности Protocol Buffer.
  • Много - Для этого поля может быть предоставлено много элементов (0, 1 или более). Это соответствует повторяющейся кардинальности Protocol Buffer.

Всегда обращайтесь к полям Required и Description, чтобы узнать, является ли поле обязательным, условно обязательным или необязательным. Для определения кардинальности Protocol Buffer обратитесь к файлу GTFS-realtime/proto/GTFS-realtime.proto">GTFS.proto.

Типы данных буфера протокола

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

  • message: сложный тип
  • enum: Список фиксированных значений

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

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

Индекс элемента

Элементы

message FeedMessage

Содержимое message фида. Каждое message в потоке получается как ответ на соответствующий HTTP GET запрос. Фид реального времени всегда определяется по отношению к существующему фиду GTFS. Все идентификаторы entity определяются по отношению к фиду GTFS.

Поля

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

message FeedHeader

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

Поля

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

enum Incrementality

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

  • FULL_DATASET: это обновление фида перезапишет всю предшествующую информацию реального времени для данного фида. Таким образом, ожидается, что это обновление предоставит FULL снимок всей известной информации реального времени.
  • DIFFERENTIAL: в настоящее время этот режим не поддерживается, и поведение фидов, использующих этот режим, не определено. В GTFS-realtime">списке рассылкиGTFS Realtime Realtime ведутся обсуждения по поводу полного определения поведения режима DIFFERENTIAL, и документация будет обновлена, когда эти обсуждения будут завершены.

Значения

Значение
FULL_DATASET
DIFFERENTIAL

message FeedEntity

Определение (или обновление) entity в транзитной ленте. Если entity не удаляется, должно быть заполнено ровно одно из полейtrip_update',vehicle',Alert' иShape'.

Поля

Имя поля Тип Требуется Кардинальность Описание
id string Требуется Один Уникальный идентификатор для этой entity. Идентификаторы используются только для обеспечения поддержки Incrementality. Фактические сущности, на которые ссылается фид, должны быть указаны явными селекторами (см. EntitySelector ниже для получения дополнительной INFO).
is_deleted bool Необязательно Один Должна ли эта entity быть удалена. Должно быть предоставлено только для фидов с Incrementality DIFFERENTIAL - это поле НЕ должно быть предоставлено для фидов с Incrementality FULL_DATASET.
trip_update TripUpdate Требуется условно Один Данные о задержках departure trip в реальном времени. Должно быть предоставлено хотя бы одно из полей trip_update, vehicle, Alert или Shape - все эти поля не могут быть EMPTY.
vehicle VehiclePosition Требуется условно Один Данные о Position vehicle в реальном времени. Должно быть указано хотя бы одно из полей trip_update, vehicle, Alert или Shape - все эти поля не могут быть EMPTY.
Alert Alert Требуется условно Один Данные о Alert в реальном времени. Должно быть указано хотя бы одно из полей trip_update, vehicle, Alert или Shape - все эти поля не могут быть EMPTY.
Shape Shape Требуется условно Один Данные о форме ADDED в реальном времени, например, для DETOUR. Должно быть указано хотя бы одно из полей trip_update, vehicle, Alert или Shape - все эти поля не могут быть EMPTY.

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

message TripUpdate

Обновление в реальном времени о прогрессе vehicle во время trip. Обратитесь также к общему обсуждению trip-updates">сущностей обновленияtrip.

В зависимости от значения ScheduleRelationship, TripUpdate может указывать:

  • trip, которая следует по расписанию.
  • trip, которая следует по маршруту, но не имеет фиксированного расписания.
  • trip, которая была ADDED или удалена относительно расписания.
  • Новая trip, которая является копией существующей trip в статической GTFS. Она будет выполняться в дату и time обслуживания, указанные в TripProperties.

Обновления могут быть для будущих, прогнозируемых событий arrival, или для прошлых событий, которые уже произошли. В большинстве случаев информация о прошлых событиях является измеренной величиной, поэтому рекомендуется, чтобы значение uncertainty было равно 0. Хотя могут быть случаи, когда это не так, поэтому допускается, чтобы значение uncertainty для прошлых событий было отличным от 0. Если uncertainty обновления не равна 0, то либо обновление является приблизительным прогнозом для незавершенного trip, либо измерение не является точным, либо обновление было прогнозом в прошлом, который не был проверен после того, как событие произошло.

Если vehicle обслуживает несколько поездок в пределах одного блока (более подробную информацию о поездках и блоках см. в файле GTFS trips.txt):

  • фид должен включать TripUpdate для trip, которая в данный момент обслуживается vehicle. Производителям рекомендуется включать TripUpdate для одной или нескольких поездок после текущей trip в блоке данного vehicle, если производитель уверен в качестве прогнозов для этих будущих trip. Включение нескольких TripUpdates для одного и того же vehicle позволяет избежать "всплытия" прогнозов для пассажиров при переходе от одной trip к другой, а также заранее предупредить пассажиров о задержках, которые влияют на последующие поездки (например, когда известная delay превышает запланированное время ожидания между поездками).
  • соответствующие сущности TripUpdate не обязаны быть ADDED в фид в том же порядке, в котором они SCHEDULED в блоке. Например, если есть поездки с trip_ids 1, 2 и 3, которые все принадлежат одному блоку, и vehicle совершает trip 1, затем trip 2, а затем trip 3, сущности trip_update могут появляться в любом порядке - например, допускается добавление trip 2, затем trip 1, а затем trip 3.

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

Поля

Имя поля Тип Требуется Кардинальность Описание
trip TripDescriptor Требуется Один trip, к которой относится это message. Для каждого фактического экземпляра trip может существовать не более одного entity TripUpdate. Если нет ни одной, это означает, что информация о прогнозе недоступна. Это означает, что не означает, что trip проходит в соответствии с расписанием.
vehicle VehicleDescriptor Необязательно Один Дополнительная информация о vehicle, обслуживающем данную trip.
stop_time_update StopTimeUpdate Требуется условно Многие Обновления времени остановки для данной trip (как будущих, т.е. прогнозируемых, так и в некоторых случаях прошлых, т.е. тех, которые уже произошли). Обновления должны быть отсортированы по stop_sequence и применяться для всех последующих остановок trip вплоть до следующей указанной stop_time_update. Для trip должно быть предоставлено хотя бы одно stop_time_update, если толькоschedule_relationship " trip.schedule_relationship " не является CANCELED или DUPLICATED - если trip CANCELED, обновления стоп_времени предоставлять не нужно. Если trip DUPLICATED, могут быть предоставлены обновления стоп_времени, чтобы указать информацию в реальном времени для новой trip.
timestamp uint64 Необязательно Один Самый последний момент, в который был измерен прогресс vehicle в реальном времени для оценки времени остановки в будущем. Когда предоставляются данные о времени остановки в прошлом, время arrival может быть более ранним, чем это значение. В time (т.е. количество секунд с 1 января 1970 года 00:00:00 UTC).
delay int32 Необязательно Один Текущее отклонение расписания для данной trip. delay должна указываться только тогда, когда прогноз дается относительно некоторого существующего расписания в GTFS.
delay (в секундах) может быть положительной (означает, что vehicle опаздывает) или отрицательной (означает, что vehicle опережает график). delay 0 означает, что vehicle прибывает точно по time.
Информация оdelay в StopTimeUpdates имеет приоритет над информацией о delay trip, так что delay trip распространяется только до следующей остановки в trip с указанным значением delay в StopTimeUpdate.
Провайдерам настоятельно рекомендуется предоставлять значение TripUpdate.timestamp, указывающее, когда значение delay было обновлено в последний раз, чтобы оценить свежесть данных.

Осторожно: это поле все еще экспериментальный, и подлежит изменению. Он может быть официально принят в будущем.
trip_properties TripProperties Необязательно Один Предоставляет обновленные свойства для trip.

Осторожно: это message экспериментальный, и подлежит изменению. Он может быть официально принят в будущем.

message StopTimeEvent

Информация о времени для одного прогнозируемого события ( arrival или departure). Временная информация состоит из delay и/или расчетного time, а также uncertainty.

  • delay должна использоваться, когда предсказание дается относительно некоторого существующего расписания в GTFS.
  • time должно быть указано независимо от того, существует ли прогнозируемое расписание или нет. Если указаны и time, и delay, то приоритет отдается time (хотя обычно time, если оно указано для SCHEDULED trip, должно быть равно SCHEDULED time в GTFS + delay).

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

Поля

Имя поля Тип Требуется Кардинальность Описание
delay int32 Требуется условно Один delay (в секундах) может быть положительной (означает, что vehicle опаздывает) или отрицательной (означает, что vehicle опережает график). delay, равная 0, означает, что vehicle прибыло точно по time. В StopTimeEvent должны быть указаны либо delay, либо time - оба поля не могут быть EMPTY.
time int64 Требуется условно Один Событие как абсолютное time. В time (т.е. количество секунд с 1 января 1970 года 00:00:00 UTC). В StopTimeEvent должна быть указана либо delay, либо time - оба поля не могут быть EMPTY.
uncertainty int32 Необязательно Один Если uncertainty опущена, она интерпретируется как неизвестная. Чтобы указать полностью определенное предсказание, задайте его uncertainty равной 0.

message StopTimeUpdate

Обновление в реальном времени событий arrival и/или departure для данной остановки в trip. См. также общее обсуждение обновления time остановки в документации по trip-updates">сущностям message-tripdescriptor">TripDescriptor и trip-updates">trip Updates.

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

Обновление связано с конкретной остановкой либо через stop_sequence, либо через stop_id, поэтому одно из этих полей обязательно должно быть установлено. Если один и тот же stop_id посещается более одного раза за trip, то stop_sequence должен быть указан во всех StopTimeUpdates для этого stop_id в этой trip.

Поля

Имя поля Тип Требуется Кардинальность Описание
stop_sequence uint32 Требуется условно Один Она должна быть такой же, как в файле stop_times.txt в соответствующем канале GTFS. В StopTimeUpdate должно быть указано либо stop_sequence, либо stop_id - оба поля не могут быть EMPTY. stop_sequence требуется для поездок, которые посещают один и тот же stop_id более одного раза (например, цикл), чтобы однозначно определить, для какой остановки делается прогноз. Если StopTimeProperties.assigned_stop_id заполнен, то stop_sequence должен быть заполнен.
stop_id string Требуется условно Один Должно быть таким же, как в файле stops.txt в соответствующем файле GTFS. В StopTimeUpdate должны быть указаны либо stop_sequence, либо stop_id - оба поля не могут быть EMPTY. Если StopTimeProperties.assigned_stop_id заполнено, предпочтительно опустить stop_id и использовать только stop_sequence. Если StopTimeProperties.assigned_stop_id и stop_id заполнены, stop_id должны совпадать assigned_stop_id.
arrival StopTimeEvent Требуется условно Один Если schedule_relationship - EMPTY или SCHEDULED, то в StopTimeUpdate должно быть указано либо arrival, либо departure - оба поля не могут быть EMPTY. arrival и departure могут быть EMPTY, если schedule_relationship - SKIPPED. Если schedule_relationship - NO_DATA, arrival и departure должны быть EMPTY.
departure StopTimeEvent Требуется условно Один Если schedule_relationship - EMPTY или SCHEDULED, то либо arrival, либо departure должно быть предоставлено в StopTimeUpdate - оба поля не могут быть EMPTY. arrival и departure могут быть оба EMPTY, когда schedule_relationship - SKIPPED. Если schedule_relationship - NO_DATA, arrival и departure должны быть EMPTY.
departure_occupancy_status OccupancyStatus Необязательно Один Прогнозируемое состояние заполненности пассажирами vehicle сразу после departure с данной остановки. Если предоставляется, должна быть предоставлена stop_sequence. Чтобы предоставить departure_occupancy_status без прогноза arrival или departure в реальном времени, заполните это поле и установите StopTimeUpdate.schedule_relationship = NO_DATA.

Осторожно: это поле все еще экспериментальный, и подлежит изменению. Он может быть официально принят в будущем.
schedule_relationship ScheduleRelationship Необязательно Один Взаимосвязь по умолчанию - SCHEDULED.
stop_time_properties StopTimeProperties Необязательно Один Обновления в реальном времени для определенных свойств, определенных в GTFS stop_times.txt

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

enum ScheduleRelationship

Связь между данным временем остановки и статическим расписанием.

Значения

Значение Комментарий
SCHEDULED vehicle движется в соответствии со своим статическим расписанием остановок, хотя и не обязательно в соответствии со временем, указанным в расписании. Это по умолчанию поведение. Должно быть указано хотя бы одно из arrival и departure. Поездки на основе частотыGTFS frequencies.txt с exact_times = 0) не должны иметь значение SCHEDULED и вместо него должны использовать UNSCHEDULED.
SKIPPED Остановка SKIPPED, т.е. vehicle не будет останавливаться на этой остановке. arrival и departure необязательны. При установке значения SKIPPED не распространяется на последующие остановки в той же trip (т.е. vehicle будет останавливаться на последующих остановках в trip, если эти остановки также не имеют значения stop_time_update с schedule_relationship: SKIPPED). delay от предыдущей остановки в trip есть распространяется на SKIPPED остановку. Другими словами, если stop_time_update с arrival или departure предсказание не установлено для остановки после SKIPPED остановки, предсказание до остановки SKIPPED остановки будет распространяться на остановку после SKIPPED остановки и последующих остановок в trip до тех пор, пока stop_time_update для последующей остановки.
НЕТ ДАННЫХ Для этой остановки данные не указаны. Это указывает на отсутствие информации о времени в реальном времени. При установке NO_DATA данные передаются на последующие остановки, поэтому это рекомендуемый способ указать, с какой остановки у вас нет информации о времени в реальном времени. При установке NO_DATA не следует сообщать ни о arrival, ни об departure.
UNSCHEDULED vehicle совершает trip на основе частотыGTFS frequencies.txt с exact_times = 0). Это значение не должно использоваться для поездок, не определенных в файле GTFS frequencies.txt, или поездок в файле GTFS frequencies.txt с exact_times = 1. Поездки, содержащие stop_time_updates с schedule_relationship: UNSCHEDULED должны также установить TripDescriptor schedule_relationship: UNSCHEDULED

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

message StopTimeProperties

Обновление в реальном времени для определенных свойств, определенных в файле GTFS stop_times.txt.

Внимание: это message все еще является экспериментальным и может быть изменено. Оно может быть официально принято в будущем.

Поля

Имя поля Тип Требуется Кардинальность Описание
assigned_stop_id string Необязательно Один Поддерживает назначение остановок в реальном времени. Относится к stop_id определенное в GTFS stops.txt.
Новое assigned_stop_id не должна приводить к тому, что end пользователь будет ощущать значительные различия в trip по сравнению с stop_id определенные в GTFS stop_times.txt. Другими словами, end пользователь не должен воспринимать эту новую остановку как новую. stop_id как "необычное изменение", если новая остановка была представлена в приложении без какого-либо дополнительного контекста. Например, это поле предполагается использовать для назначения платформы с помощью stop_id которая относится к той же станции, что и остановка, первоначально определенная в GTFS. stop_times.txt.
Чтобы назначить остановку без предоставления прогнозов arrival или departure в реальном времени, заполните это поле и установите значение StopTimeUpdate.schedule_relationship = NO_DATA.
Если это поле заполнено, StopTimeUpdate.stop_sequence должно быть заполнено и StopTimeUpdate.stop_id не должно быть заполнено. Назначение остановок должно быть отражено и в других полях GTFS(например, VehiclePosition.stop_id).

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

message TripProperties

Определяет обновленные свойства trip

Внимание: это message все еще является экспериментальным и может быть изменено. Оно может быть официально принято в будущем.
.

Поля

Имя поля Тип Требуется Кардинальность Описание
trip_id string Требуется условно Один Определяет идентификатор новой trip, которая является дубликатом существующей trip, определенной в (CSV) GTFS trips.txt, но будет start в другую дату и/или time обслуживания (определяется с помощью TripProperties.start_date и TripProperties.start_time). См. определение trips.trip_id в (CSV) GTFS. Его значение должно отличаться от значений, используемых в (CSV) GTFS. Это поле требуется, если schedule_relationship это DUPLICATED, иначе это поле не должно быть заполнено и будет проигнорировано потребителями.

Осторожно: это поле все еще экспериментальный, и подлежит изменению. Он может быть официально принят в будущем.
start_date string Требуется условно Один Дата обслуживания, на которую будет выполняться DUPLICATED trip. Должна быть указана в формате ГГГГ-ММДД. Это поле обязательно для заполнения, если schedule_relationship это DUPLICATED, иначе это поле не должно быть заполнено и будет проигнорировано потребителями.

Осторожно: это поле все еще экспериментальный, и подлежит изменению. Он может быть официально принят в будущем.
start_time string Требуется условно Один Определяет time start departure trip, когда она DUPLICATED. См. определение stop_times.departure_time в (CSV) GTFS. SCHEDULED время arrival и departure для DUPLICATED trip рассчитывается на основе смещения между исходной trip departure_time и этим полем. Например, если в trip GTFS есть остановка А с полем departure_time из 10:00:00 и остановка B с departure_time из 10:01:00и это поле заполнено значением 10:30:00то остановка B в DUPLICATED trip будет иметь значение SCHEDULED departure_time из 10:31:00. Прогнозирование в реальном времени delay значения применяются к этому рассчитанному time расписания для определения прогнозируемого time. Например, если departure delay из 30 предоставлено для остановки B, то прогнозируемое time departure составляет 10:31:30. Прогнозирование в реальном времени time Значения не имеют никакого смещения и указывают прогнозируемое time как предоставленное. Например, если departure time 10:31:30 для остановки B, то прогнозируемое time departure составляет 10:31:30.Это поле необходимо, если schedule_relationship есть DUPLICATED, иначе это поле не должно заполняться и будет игнорироваться потребителями.

Осторожно: это поле все еще экспериментальный, и подлежит изменению. Он может быть официально принят в будущем.
shape_id string Необязательно Один Указывает Shape маршрута движения vehicle для этой trip, если она отличается от исходной. Относится к Shape, определенной в (CSV) GTFS, или к новой entity Shape в потоке данных в реальном времени. См. определение trips.shape_id в (CSV) GTFS.

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

message VehiclePosition

Информация о позиционировании в реальном времени для данного vehicle.

Поля

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

Осторожно: это поле все еще экспериментальный, и подлежит изменению. Он может быть официально принят в будущем.
occupancy_percentage uint32 Необязательно Один Процентное значение, указывающее на степень занятости пассажиров в vehicle. Значение 100 должно представлять общее максимальное количество пассажиров, на которое рассчитано vehicle, включая сидячих и стоячих пассажиров, и которое допускается действующими правилами эксплуатации. Значение может превышать 100, если пассажиров больше, чем максимальная расчетная вместимость. Точность показателя occupancy_percentage должна быть достаточно низкой, чтобы нельзя было отследить посадку или выход отдельных пассажиров из vehicle. Если в поле multi_carriage_details заполнено значение per-carriage occupancy_percentage, то это поле должно описывать все vehicle с учетом всех вагонов, принимающих пассажиров.

Осторожно: это поле все еще экспериментальный, и подлежит изменению. Он может быть официально принят в будущем.
multi_carriage_details CarriageDetails Необязательно Многие Сведения о нескольких вагонах данного vehicle. Первое вхождение представляет первый вагон vehicle, учитывая текущее направление движения. Количество вхождений поля multi_carriage_details представляет собой количество вагонов vehicle. Оно также включает несамоходные вагоны, такие как двигатели, вагоны MAINTENANCE и т.д..., поскольку они предоставляют ценную информацию пассажирам о том, где стоять на платформе.

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

enum VehicleStopStatus

Значения

Значение Комментарий
INCOMING_AT vehicle вот-вот прибудет на остановку (на табло остановки обычно мигает символ vehicle ).
STOPPED_AT vehicle стоит на остановке.
IN_TRANSIT_TO vehicle сошло с предыдущей остановки и находится в пути.

enum CongestionLevel

УровеньCONGESTION, который влияет на данное vehicle.

Значения

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

enum OccupancyStatus

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

Отдельные производители могут не публиковать все значения OccupancyStatus. Поэтому потребители не должны предполагать, что значения OccupancyStatus следуют линейной шкале. Потребители должны представлять значения OccupancyStatus как состояние, указанное и предназначенное производителем. Аналогично, производители должны использовать значения OccupancyStatus, которые соответствуют фактическому состоянию заполненности vehicle.

Для описания уровней заполненности пассажиров в линейной шкале, см. occupancy_percentage.

Внимание: это поле все еще является экспериментальным и может быть изменено. Оно может быть официально принято в будущем.

Значения

Значение Комментарий
EMPTY _ vehicle считается EMPTY по большинству показателей, на его борту мало или нет пассажиров, но оно все еще принимает пассажиров._
MANY_SEATS_AVAILABLE В vehicle или вагоне имеется большое количество свободных мест. Количество свободных мест из общего числа доступных, чтобы считаться достаточно большим для попадания в эту категорию, определяется по усмотрению производителя.
FEW_SEATS_AVAILABLE В vehicle или вагоне имеется небольшое количество свободных мест. Количество свободных мест из общего числа доступных, чтобы считаться достаточно малым для попадания в эту категорию, определяется по усмотрению производителя.
STANDING_ROOM_ONLY В настоящее время vehicle или вагон может вместить только стоящих пассажиров.
CRUSHED_STANDING_ROOM_ONLY _ vehicle или вагон в настоящее время может вместить только стоящих пассажиров и имеет ограниченное пространство для них._
FULL _ vehicle считается FULL по большинству показателей, но, возможно, все еще позволяет пассажирам садиться._
NOT_ACCEPTING_PASSENGERS _ vehicle или повозка не принимает пассажиров. vehicle или повозка обычно принимает пассажиров на посадку._
NO_DATA_AVAILABLE В vehicle или вагоне нет данных о занятости пассажиров в данный time.
NOT_BOARDABLE _ vehicle или вагон не пригодны для посадки и никогда не принимают пассажиров. Полезно для специальных транспортных средств или вагонов (двигатель, вагон MAINTENANCE и т.д...)._

message CarriageDetails

Специфические сведения о вагоне, используемые для транспортных средств, состоящих из нескольких вагонов.

Внимание: это message все еще является экспериментальным и может быть изменено. В будущем оно может быть официально принято.

Поля

Имя поля Тип Требуется Кардинальность Описание
id string Необязательно Один Идентификация вагона. Должна быть уникальной для каждого vehicle.

Осторожно: это поле все еще экспериментальный, и подлежит изменению. Он может быть официально принят в будущем.
label string Необязательно Один видимой пользователем label, которая может быть показана пассажиру, чтобы помочь идентифицировать вагон. Пример: "7712", "Вагон АВС-32" и т.д..
Осторожно: это поле все еще экспериментальный, и подлежит изменению. Он может быть официально принят в будущем.
occupancy_status OccupancyStatus Необязательно Один Статус занятости для данного вагона в данном vehicle. По умолчанию установлено значение NO_DATA_AVAILABLE.

Осторожно: это поле все еще экспериментальный, и подлежит изменению. Он может быть официально принят в будущем.
occupancy_percentage int32 Необязательно Один Процент занятости для данного вагона, в данном vehicle. Следуют тем же правилам, что и "VehiclePosition.occupancy_percentage". Используйте -1 в случае отсутствия данных для данного вагона.

Осторожно: это поле все еще экспериментальный, и подлежит изменению. Он может быть официально принят в будущем.
carriage_sequence uint32 Требуется Один Определяет порядок следования данной повозки по отношению к другим повозкам в списке CarriageStatus vehicle. Первый вагон в направлении движения должен иметь значение 1. Второе значение соответствует второму вагону в направлении движения и должно иметь значение 2, и так далее. Например, первый вагон в направлении движения имеет значение 1. Если второй вагон в направлении движения имеет значение 3, потребители отбрасывают данные для всех вагонов (т.е. поле multi_carriage_details ). Вагоны без данных должны быть представлены действительным номером carriage_sequence, а поля без данных должны быть опущены (альтернативно, эти поля также могут быть включены и установлены в значения "нет данных").

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

Alert

Alert, указывающее на какой-то инцидент в сети общественного транспорта.

Поля

Имя поля Тип Требуется Кардинальность Описание
active_period TimeRange Необязательно Многие time, в течение которого Alert должно быть показано пользователю. Если он отсутствует, Alert будет показываться до тех пор, пока оно появляется в ленте. Если указано несколько диапазонов, Alert будет показано во время всех из них.
informed_entity EntitySelector Требуется Многие Сущности, пользователей которых мы должны уведомить об этом Alert. Должно быть указано хотя бы одно informed_entity.
Cause Cause Необязательно Один
Effect Effect Необязательно Один
url TranslatedString Необязательно Один url, предоставляющий дополнительную информацию об Alert.
header_text TranslatedString Требуется Один header для Alert. Эта string обычного текста будет выделена, например, жирным шрифтом.
description_text TranslatedString Требуется Один Описание для Alert. Эта string обычного текста будет отформатирована как тело Alert (или показана по явному запросу пользователя "расширить"). Информация в описании должна дополнять информацию header.
tts_header_text TranslatedString Необязательно Один text, содержащий header Alert, который будет использоваться в системах text. Это поле является версией header_text для text. Оно должно содержать ту же информацию, что и header_text, но отформатированную таким образом, чтобы ее можно было прочитать с помощью преобразования text(например, убрать сокращения, прописать цифры и т.д.).
tts_description_text TranslatedString Необязательно Один text, содержащий описание Alert для использования в системах text. Это поле является версией description_text для text. Оно должно содержать ту же информацию, что и description_text, но отформатированную таким образом, чтобы ее можно было прочитать с помощью text(например, убрать сокращения, прописать цифры и т.д.).
severity_level SeverityLevel Необязательно Один Уровень серьезности Alert.
image TranslatedImage Необязательно Один TranslatedImage, которое будет отображаться вместе с text Alert. Используется для визуального объяснения Effect Alert в случае DETOUR, закрытия станции и т.д. image должно улучшать понимание Alert и не должно быть единственным местом размещения важной информации. Не рекомендуется использовать следующие типы изображений: image, содержащие в основном text, маркетинговые или фирменные изображения, которые не добавляют никакой дополнительной информации.

Осторожно: это поле все еще экспериментальный, и подлежит изменению. Он может быть официально принят в будущем.
image_alternative_text TranslatedString Необязательно Один text, описывающий внешний вид связанного image в image поле (например, в случае, если image не может быть отображено или пользователь не может видеть image по причинам доступности). См. HTML спецификацию для text alt image .

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

Cause_enum_

Cause этого Alert.

Значения

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

Effect_enum_

Effect этой проблемы на затронутый entity.

Значения

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

enum SeverityLevel

Уровень серьезности Alert.

Внимание: это поле все еще является экспериментальным и может быть изменено. Оно может быть официально принято в будущем.

Значения

Значение
UNKNOWN_SEVERITY
INFO
WARNING
SEVERE

message TimeRange

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

Поля

Имя поля Тип Требуется Кардинальность Описание
start uint64 Условно обязательный Один timestart, в time (т.е. количество секунд с 1 января 1970 года 00:00:00 UTC). Если отсутствует, интервал начинается с минус бесконечности. Если указан TimeRange, необходимо указать либо start, либо end - оба поля не могут быть EMPTY.
end uint64 Условно обязательный Один timeend, в time (т.е. количество секунд с 1 января 1970 года 00:00:00 UTC). Если отсутствует, интервал заканчивается на плюс бесконечности. Если указан TimeRange, необходимо указать либо start, либо end - оба поля не могут быть EMPTY.

Position_message_

Географическое Position vehicle.

Поля

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

message TripDescriptor

Дескриптор, который идентифицирует один экземпляр trip GTFS.

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

  • Для поездок, определенных в файле frequencies.txt, в дополнение к trip_id необходимы start_date и start_time
  • Если trip длится более 24 часов или задерживается настолько, что может столкнуться с SCHEDULED trip на следующий день, то в дополнение к trip_id требуется start_date.
  • Если поле trip_id не может быть предоставлено, то необходимо предоставить route_id, direction_id, start_date и start_time

Во всех случаях, если route_id предоставляется в дополнение к trip_id, то route_id должен быть тем же самым route_id, который присвоен данной trip в файле GTFS trips.txt.

Поле trip_id не может само по себе или в комбинации с другими полями TripDescriptor использоваться для идентификации нескольких экземпляров trip. Например, TripDescriptor никогда не должен сам по себе указывать trip_id для поездок в GTFS frequencies.txt exact_times=0, потому что start_time также необходимо для определения одного экземпляра trip, начинающегося в определенное time дня. Если TripDescriptor не разрешается в один экземпляр trip (т.е. разрешается в ноль или несколько экземпляров trip ), это считается ошибкой, и entity, содержащий ошибочный TripDescriptor, может быть отброшен потребителями.

Обратите внимание, что если trip_id неизвестен, то идентификаторов последовательности станций в TripUpdate недостаточно, необходимо также предоставить stop_ids. Кроме того, должно быть указано абсолютное время arrival.

TripDescriptor.route_id не может быть использован внутри Alert EntitySelector для указания Alert по всему маршруту, которое затрагивает все поездки по маршруту - вместо этого используйте EntitySelector.route_id.

Поля

Имя поля Тип Требуется Кардинальность Описание
trip_id string Условно обязательный Один trip_id из фида GTFS, на который ссылается данный селектор. Для поездок, не основанных на частоте (поездки, не определенные в файле GTFS frequencies.txt), этого поля достаточно для однозначной идентификации trip. Для поездок на основе частоты, определенных в файле GTFS frequencies.txt, trip_id, start_time и start_date являются обязательными. Для поездок SCHEDULED(поездки, не определенные в файле GTFS frequencies.txt), trip_id может быть опущен, только если trip может быть однозначно идентифицирована комбинацией route_id, direction_id, start_time и start_date, и все эти поля предоставлены. Когда schedule_relationship DUPLICATED в TripUpdate, trip_id идентифицирует trip из статической GTFS, которая будет DUPLICATED. Когда schedule_relationship DUPLICATED в VehiclePosition, trip_id идентифицирует новую дублирующую trip и должен содержать значение для соответствующего TripUpdate.TripProperties.trip_id.
route_id string Условно обязательный Один route_id из GTFS, на который ссылается этот селектор. Если trip_id опущен, для идентификации экземпляра trip должны быть установлены route_id, direction_id, start_time и schedule_relationship=SCHEDULED. TripDescriptor.route_id не следует использовать в EntitySelector Alert для указания Alert по всему маршруту, которое влияет на все поездки по маршруту - вместо этого используйте EntitySelector.route_id.
direction_id uint32 Условно требуемый Один direction_id из файла trips.txt фида GTFS, указывающий направление движения для поездок, к которым относится этот селектор. Если trip_id опущен, необходимо указать direction_id.

Предостережение: эта область все еще экспериментальныйи может быть изменен. В будущем он может быть официально принят.
start_time string Условно обязательные Один Первоначально SCHEDULED time start данного экземпляра trip. Если trip_id соответствует нечастотной trip, это поле должно быть либо опущено, либо равно значению в канале GTFS. Когда trip_id соответствует trip на основе частоты, определенной в файле GTFS frequencies.txt, start_time является обязательным и должно быть указано для обновления trip и позиций vehicle. Если trip соответствует exact_times=1 записи GTFS, то start_time должно быть на некоторое кратное (включая ноль) количество headway_secs позже, чем frequencies.txt start_time для соответствующего периода time. Если trip соответствует exact_times=0, то start_time может быть произвольным, и первоначально ожидается, что это будет первое departure trip. После установления, start_time trip, основанной на частоте exact_times=0, должно считаться неизменным, даже если time первого departure изменится - это изменение time может быть отражено в StopTimeUpdate. Если trip_id опущен, необходимо указать start_time. Формат и семантика поля такие же, как в GTFSfrequencies.txt, например, 11:15:35 или 25:15:35.
start_date string Условно обязательные Один Дата start данного экземпляра trip в формате YYYYMMDD. Для SCHEDULED поездок (поездок, не определенных в файле GTFS frequencies.txt), это поле должно быть предоставлено для разграничения поездок, которые опаздывают настолько, что сталкиваются с SCHEDULED trip на следующий день. Например, для поезда, который отправляется в 8:00 и 20:00 каждый день и опаздывает на 12 часов, будет два разных рейса в одно и то же time. Это поле может быть предоставлено, но не является обязательным для расписаний, в которых такие столкновения невозможны - например, служба, работающая по почасовому расписанию, где vehicle, опоздавшее на один час, уже не считается связанным с расписанием. Это поле обязательно для поездок на основе частоты, определенных в файле GTFS frequencies.txt. Если trip_id опущен, должна быть указана start_date.
schedule_relationship ScheduleRelationship Необязательно Один Связь между данной trip и статическим расписанием. Если TripDescriptor предоставлен в Alert EntitySelector. schedule_relationship поле игнорируется потребителями при идентификации соответствующего экземпляра trip.

enum ScheduleRelationship

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

Значения

Значение Комментарий
SCHEDULED trip, которая выполняется в соответствии со своим GTFS Schedule, или достаточно близка к SCHEDULED trip, чтобы быть связанной с ней.
ADDED Дополнительная trip, которая была ADDED в дополнение к действующему расписанию, например, для замены сломанного vehicle или для реагирования на внезапную загрузку пассажиров. ПРИМЕЧАНИЕ: В настоящее время поведение не определено для кормов, использующих этот режим. Есть обсуждения на GitHub GTFS (1) (2) (3) вокруг полного уточнения или отмены ADDED поездок, и документация будет обновлена, когда эти обсуждения будут завершены.
UNSCHEDULED trip, которая выполняется без связанного с ней расписания - это значение используется для идентификации поездок, определенных в файле GTFS frequencies.txt с exact_times = 0. Его не следует использовать для описания поездок, не определенных в файле GTFS frequencies.txt, или поездок в файле GTFS frequencies.txt с exact_times = 1. Поездки с schedule_relationship: UNSCHEDULED должны также устанавливать все StopTimeUpdates schedule_relationship: UNSCHEDULED
CANCELED trip, которая существовала в расписании, но была удалена.
DUPLICATED Новая trip, аналогичная существующей trip SCHEDULED, за исключением даты и time start обслуживания. Используется с TripUpdate.TripProperties.trip_id, TripUpdate.TripProperties.start_date, и TripUpdate.TripProperties.start_time для копирования существующей trip из статической GTFS, но с другой датой и/или time start обслуживания. Дублирование trip разрешено, если услуга, связанная с исходной trip, в (CSV) GTFS (в calendar.txt или calendar_dates.txt) действует в течение следующих 30 дней. trip, которая будет DUPLICATED, идентифицируется через TripUpdate.TripDescriptor.trip_id.

Это перечисление не изменяет существующую trip, на которую ссылается параметр TripUpdate.TripDescriptor.trip_id - если производитель хочет отменить исходную trip, он должен опубликовать отдельное сообщение TripUpdate со значением CANCELED. Поездки, определенные в GTFS frequencies.txt с exact_times который является EMPTY или равен 0 не могут быть DUPLICATED. Сайт VehiclePosition.TripDescriptor.trip_id для новой trip должен содержать соответствующее значение из параметра TripUpdate.TripProperties.trip_id и VehiclePosition.TripDescriptor.ScheduleRelationship также должно быть установлено на DUPLICATED.

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

message VehicleDescriptor

Идентификационная информация для vehicle, выполняющего trip.

Поля

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

message EntitySelector

Селектор для entity в фиде GTFS. Значения полей должны соответствовать соответствующим полям в фиде GTFS. Должен быть указан хотя бы один спецификатор. Если задано несколько, они должны интерпретироваться как объединенные логическим оператором AND. Кроме того, комбинация спецификаторов должна соответствовать соответствующей информации в канале GTFS. Другими словами, чтобы Alert было применено к entity в GTFS, оно должно соответствовать всем предоставленным полям EntitySelector. Например, EntitySelector, включающий поля route_id: "5" и route_type: "3", применяется только к автобусу route_id: "5" - он не применяется к любым другим маршрутам route_type: "3". Если производитель хочет, чтобы Alert распространялось на route_id: "5", а также к route_type: "3", он должен предоставить два отдельных EntitySelectors, один ссылающийся на route_id: "5" и другой, ссылающийся на route_type: "3".

Должен быть указан хотя бы один спецификатор - все поля в EntitySelector не могут быть EMPTY.

Поля

Имя поля Тип Требуется Кардинальность Описание
agency_id string Условно обязательные Один agency_id из фида GTFS, на который ссылается данный селектор.
route_id string Условно обязательные Один route_id из GTFS, на который ссылается данный селектор. Если указан direction_id, route_id также должен быть указан.
route_type int32 Условно обязательные Один route_type из GTFS, на которую ссылается этот селектор.
direction_id uint32 Условно обязательные Один direction_id из файла trips.txt, используемого для выбора всех поездок в одном направлении для маршрута, указанного route_id. Если указан direction_id, необходимо также указать route_id.

Осторожно: это поле все еще экспериментальный, и подлежит изменению. Он может быть официально принят в будущем.
trip TripDescriptor Условно обязательные Один Экземпляр trip из GTFS, на который ссылается данный селектор. Этот TripDescriptor должен ссылаться на один экземпляр trip в данных GTFS (например, производитель не может предоставить только trip_id для поездок exact_times=0). Если поле ScheduleRelationship заполнено в этом TripDescriptor, оно будет проигнорировано потребителями при попытке идентифицировать trip GTFS.
stop_id string Условно обязательные Один stop_id из потока GTFS, на который ссылается данный селектор.

message TranslatedString

Интернационализированное message, содержащее языковые версии фрагмента text или url. Будет выбрана одна из строк из message. Разрешение происходит следующим образом: Если language пользовательского интерфейса совпадает с кодом language Translation, выбирается первый подходящий Translation. Если language пользовательского интерфейса по умолчанию (например, английский) совпадает с кодом language Translation, выбирается первый подходящий Translation. Если какой-то Translation имеет неопределенный language код, выбирается этот Translation.

Поля

Имя поля Тип Требуется Кардинальность Описание
Translation Translation Требуется Много Должен быть предоставлен как минимум один Translation.

Translation_message_

Локализованная string, сопоставленная с language.

Имя поля Тип Требуется Кардинальность Описание
text string Требуется Один string UTF-8, содержащая message.
language string Условно обязательные Один Код language BCP-47. Может быть опущен, если language неизвестен или если интернационализация для сообщения вообще не выполняется. Только один Translation может иметь тег неуказанного language - если Translation больше одного, language должен быть указан.

message TranslatedImage

Интернационализированное message, содержащее языковые версии image. Одно из изображений из message будет выбрано. Разрешение происходит следующим образом: Если language пользовательского интерфейса совпадает с language кодом Translation, выбирается первый подходящий Translation. Если language пользовательского интерфейса по умолчанию (например, английский) совпадает с кодом language Translation, выбирается первый подходящий Translation. Если какой-то Translation имеет неопределенный language код, выбирается этот Translation.

Внимание: это message все еще является экспериментальным и может быть изменено. В будущем оно может быть официально принято.

Поля

Имя поля Тип Требуется Кардинальность Описание
localized_image LocalizedImage Требуется Многие Должно быть предоставлено как минимум одно локализованное image.

message LocalizedImage

url локализованного image, сопоставленный с language.

Имя поля Тип Требуется Кардинальность Описание
url string Требуется Один string, содержащая url на image. Размер image, на которое дается ссылка, не должен превышать 2 МБ. Если image изменяется настолько существенно, что требуется обновление на стороне потребителя, производитель должен обновить url до нового.

url должен быть полностью квалифицированным url, включающим http:// или https://, и любые специальные символы в url должны быть правильно приведены. См. url для описание того, как создавать полностью квалифицированные значения url.
media_type string Требуется Один IANA media type для указания типа отображаемого image. Тип должен start с "image/"
language string Требуется условно Один Код language BCP-47. Может быть опущен, если language неизвестен или если интернационализация для фида не проводится вообще. Только один Translation может иметь тег неопределенного language - если Translation больше одного, language должен быть указан.

Shape_message_

Описывает физический путь, который проходит vehicle, когда Shape не является частью (CSV) GTFS, например, для специального DETOUR. Формы принадлежат к трипам и состоят из закодированной полилинии для более эффективной передачи. Фигуры не обязательно должны точно перехватывать расположение остановок, но все остановки в trip должны лежать в пределах небольшого расстояния от Shape для этой trip, т.е. вблизи сегментов прямых линий, соединяющих точки Shape.

Внимание: это message все еще является экспериментальным и может быть изменено. Оно может быть официально принято в будущем.
.

Поля

Имя поля Тип Требуется Кардинальность Описание
shape_id string Требуется Один Идентификатор Shape. Должен отличаться от любого shape_id определенного в (CSV) GTFS.

Осторожно: это поле все еще экспериментальный, и подлежит изменению. Он может быть официально принят в будущем.
encoded_polyline string Требуется Один Кодированное полилинейное представление Shape. Эта полилиния должна содержать не менее двух точек. Для получения дополнительной информации о кодированных полилиниях см. https://developers.google.com/maps/documentation/utilities/polylinealgorithm

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