Маршрут общественного транспорта содержит инструкции по навигации с использованием доступных в регионе видов общественного транспорта. К таким видам транспорта могут относиться автобусы, метро, поезда и другие виды транспорта. Маршрут общественного транспорта обычно также включает инструкции по пешему маршруту до остановок общественного транспорта, от них и между ними. Поскольку маршрут общественного транспорта обычно предполагает использование нескольких видов транспорта, способ запроса маршрута и некоторые части ответа различаются.
Чем транзитные маршруты отличаются от других маршрутов
Маршруты общественного транспорта, запрашиваемые с помощью параметра travelMode TRANSIT , отличаются от маршрутов с другими вариантами режима передвижения. Вы не можете запросить все те же объекты и варианты, а ответ возвращает другие поля по сравнению с другими маршрутами.
В API маршрутов шаги представляют собой одну навигационную инструкцию для всех типов поездок. Таким образом, каждая навигационная инструкция — это шаг. Ответ на запрос маршрута общественного транспорта очень похож на ответы на маршруты для других видов транспорта, но с несколькими ключевыми отличиями:
| Запрос различий | Различия в ответах |
|---|---|
| Промежуточные точки маршрута указывать нельзя. | Включает сведения о транзите. |
| Невозможно получить экологически чистые маршруты | Включает метаданные для каждого режима передвижения, содержащие сводку шагов для этого режима передвижения, в stepsOverview (чтобы запросить эти метаданные, используйте маску поля stepsOverview ). |
| Невозможно указать, как и следует ли включать данные о дорожном движении. | |
| Невозможно указать особенности маршрута, которые следует избегать. | |
Можно указать только transitPreferences . Подробности см. в разделе TransitPreference . |
Чтобы получить транзитный маршрут
- Укажите пункт отправления и пункт назначения.
- Установите
travelModeнаTRANSIT. - Добавьте соответствующие маски полей, чтобы получить нужный ответ. См. раздел Запрос необходимых полей маршрута транзита .
- При необходимости задайте дополнительные параметры. См. раздел «Задание параметров для маршрута общественного транспорта».
Запросите необходимые вам поля транзитного маршрута
Запросите необходимые поля маршрута общественного транспорта с помощью масок полей. В следующей таблице приведены некоторые варианты ответов для маршрута общественного транспорта и маски полей для их запроса.
| Чтобы запросить эту информацию | Используйте эту маску поля |
|---|---|
| Все детали маршрута. | * |
| Подробная информация о транзитных участках маршрута. | legs |
| Расчетная стоимость проезда на каждом этапе маршрута и локальная расчетная стоимость проезда. | travelAdvisory |
| Локализованный текст для продолжительности и расстояния | localizedValues |
Установить параметры транзитного маршрута
Вот соответствующие параметры транзитных маршрутов:
| Чтобы сделать это | Используйте этот параметр | Примечания |
|---|---|---|
| Выберите режим транзита | travelMode: "TRANSIT" | Обязательно. Узнать больше . |
| Установите время прибытия или отправления | arrivalTime: new Date(yyyy-mm-ddThh:mm:ssZ)ИЛИ departureTime: new Date(yyyy-mm-ddThh:mm:ssZ) | Необязательно. Можно указать либо время прибытия, либо время отправления. Если ни одно из времени не указано, в качестве времени departureTime по умолчанию используется текущее время выполнения ( now ). Время прибытия и отправления можно задать только в пределах следующего временного интервала, используя текущее время выполнения ( now ) в качестве точки отсчёта:
Date .Примечание: Расписание общественного транспорта часто меняется, доступные маршруты общественного транспорта могут со временем меняться, и нет гарантии предоставления последовательных результатов для прогнозов на большой срок. |
| Включить альтернативные маршруты | computeAlternativeRoutes: true | Необязательно. Установите значение true, чтобы computeRoutes вычислял до 3 дополнительных маршрутов (при их наличии). Подробнее |
| Укажите предпочтения по типу транзита | transitPreference: {allowedTransitModes: ["BUS", "SUBWAY", "TRAIN", "LIGHT_RAIL", "RAIL"]}Примечание: если вы укажете предпочтительный способ передвижения, обратные маршруты могут по-прежнему использовать другие виды общественного транспорта, или даже только другие виды общественного транспорта, в зависимости от эффективности маршрута и доступности предпочтительного вида транспорта. | Необязательно. Укажите предпочтительные виды транспорта. Узнать больше |
| Укажите предпочтения по маршруту транзита | transitPreference: {routingPreference: "LESS_WALKING|FEWER_TRANSFERS"} | Необязательно. Укажите предпочтения по маршрутизации общественного транспорта. Подробнее |
Пример запроса
В следующем примере показано, как запросить транзитный маршрут:
const request = { origin: 'Hunters Point San Francisco, CA 94124', destination: '201 Marine Dr, San Francisco, CA 94129', travelMode: 'TRANSIT', departureTime: new Date(), transitPreference: { allowedTransitModes: ['BUS', 'SUBWAY', 'TRAIN', 'LIGHT_RAIL', 'RAIL'], routingPreference: 'FEWER_TRANSFERS', // Alternatively, 'LESS_WALKING'. }, fields: ['path', 'legs', 'travelAdvisory', 'localizedValues'], };