- HTTP-запрос
- Тело запроса
- Тело ответа
- PolylineQuality
- ПолилинияКодирование
- Единицы
- СсылкаМаршрут
- Дополнительные вычисления
- Маршрут
- Метка маршрута
- МаршрутЭтап
- Полилиния
- МаршрутLegStep
- Инструкция по навигации
- Маневр
- RouteLegStepTravelAdvisory
- RouteLegTravelAdvisory
- Область просмотра
- Результаты геокодирования
- GeocodedWaypoint
Возвращает основной маршрут вместе с необязательными альтернативными маршрутами с заданным набором конечных и промежуточных путевых точек.
ПРИМЕЧАНИЕ. Этот метод требует, чтобы вы указали маску поля ответа во входных данных. Вы можете указать маску поля ответа, используя параметр URL-адреса $fields
или fields
или используя заголовок HTTP/gRPC X-Goog-FieldMask
(см. доступные параметры и заголовки URL-адреса . Значение представляет собой список путей к полям, разделенных запятыми. См. подробная документация о том, как создавать пути к полям .
Например, в этом методе:
- Маска поля всех доступных полей (для ручной проверки):
X-Goog-FieldMask: *
- Маска поля длительности, расстояния и полилинии на уровне маршрута (пример производственной настройки):
X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.polyline.encodedPolyline
Google не рекомендует использовать маску поля ответа с подстановочным знаком ( *
) или указывать маску поля на верхнем уровне ( routes
), потому что:
- Выбор только тех полей, которые вам нужны, помогает нашему серверу экономить вычислительные циклы, позволяя нам возвращать вам результат с меньшей задержкой.
- Выбор только тех полей, которые вам нужны в рабочем задании, обеспечивает стабильную производительность задержки. Возможно, в будущем мы добавим больше полей ответа, и эти новые поля могут потребовать дополнительного времени вычислений. Если вы выберете все поля или если вы выберете все поля на верхнем уровне, вы можете столкнуться с ухудшением производительности, поскольку любое новое поле, которое мы добавляем, будет автоматически включено в ответ.
- Выбор только тех полей, которые вам нужны, приводит к меньшему размеру ответа и, следовательно, к более высокой пропускной способности сети.
HTTP-запрос
POST https://routes.googleapis.com/directions/v2:computeRoutes
URL-адрес использует синтаксис транскодирования gRPC .
Тело запроса
Тело запроса содержит данные со следующей структурой:
Представление JSON |
---|
{ "origin": { object ( |
Поля | |
---|---|
origin | Необходимый. Исходная путевая точка. |
destination | Необходимый. Пункт назначения. |
intermediates[] | Необязательный. Набор путевых точек на маршруте (исключая конечные точки), на которых можно остановиться или проехать. Поддерживается до 25 промежуточных путевых точек. |
travelMode | Необязательный. Определяет вид транспорта. |
routingPreference | Необязательный. Указывает, как вычислить маршрут. Сервер пытается использовать выбранный параметр маршрутизации для расчета маршрута. Если предпочтение маршрутизации приводит к ошибке или слишком большой задержке, возвращается ошибка. Вы можете указать эту опцию, только если для |
polylineQuality | Необязательный. Определяет ваши предпочтения в отношении качества полилинии. |
polylineEncoding | Необязательный. Задает предпочтительную кодировку полилинии. |
departureTime | Необязательный. Время отправления. Если вы не зададите это значение, то оно будет по умолчанию равно времени, когда вы сделали запрос. Если вы установите это значение на время, которое уже произошло, то запрос завершится ошибкой. Временная метка в формате RFC3339 UTC "Zulu" с разрешением в наносекунды и до девяти дробных цифр. Примеры: |
computeAlternativeRoutes | Необязательный. Указывает, следует ли рассчитывать альтернативные маршруты в дополнение к маршруту. Для запросов с промежуточными путевыми точками альтернативные маршруты не возвращаются. |
routeModifiers | Необязательный. Набор условий, которые влияют на способ расчета маршрутов. |
languageCode | Необязательный. Код языка BCP-47, например «en-US» или «sr-Latn». Для получения дополнительной информации см. http://www.unicode.org/reports/tr35/#Unicode_locale_identifier . Список поддерживаемых языков см. в разделе Языковая поддержка . Если вы не укажете это значение, язык интерфейса выводится из расположения запроса маршрута. |
regionCode | Необязательный. Код региона, указанный как двухсимвольное значение ccTLD («домен верхнего уровня»). Для получения дополнительной информации см. https://en.wikipedia.org/wiki/List_of_Internet_top-level_domains#Country_code_top-level_domains . |
units | Необязательный. Указывает единицы измерения для отображаемых полей. Это включает в себя поле |
requestedReferenceRoutes[] | Необязательный. Указывает, какие эталонные маршруты следует рассчитать как часть запроса в дополнение к маршруту по умолчанию. Эталонный маршрут — это маршрут с целью расчета маршрута, отличной от маршрута по умолчанию. Например, при расчете эталонного маршрута |
extraComputations[] | Необязательный. Список дополнительных вычислений, которые могут быть использованы для выполнения запроса. Примечание. Эти дополнительные вычисления могут возвращать дополнительные поля в ответе. Эти дополнительные поля также должны быть указаны в маске поля, которая будет возвращена в ответе. |
Тело ответа
В случае успеха тело ответа содержит данные со следующей структурой:
v2.compute перенаправляет ответное сообщение.
Представление JSON |
---|
{ "routes": [ { object ( |
Поля | |
---|---|
routes[] | Содержит массив вычисленных маршрутов (до трех), если вы укажете calculate_alternatives_routes, и содержит только один маршрут, если вы этого не сделаете. Когда этот массив содержит несколько записей, наиболее рекомендуемым маршрутом является первая. Если массив пуст, значит маршрут не найден. |
fallbackInfo | В некоторых случаях, когда сервер не может вычислить результаты маршрута со всеми параметрами ввода, он может вернуться к использованию другого способа вычисления. При использовании резервного режима это поле содержит подробную информацию о резервном ответе. В противном случае это поле не установлено. |
geocodingResults | Содержит информацию ответа геокодирования для путевых точек, указанных как адреса. |
PolylineQuality
Набор значений, определяющих качество полилинии.
перечисления | |
---|---|
POLYLINE_QUALITY_UNSPECIFIED | Не заданы предпочтения качества полилиний. По умолчанию OVERVIEW . |
HIGH_QUALITY | Указывает высококачественную полилинию, которая состоит из большего количества точек, чем OVERVIEW , за счет увеличения размера ответа. Используйте это значение, когда вам нужна большая точность. |
OVERVIEW | Определяет обзорную полилинию, состоящую из небольшого количества точек. Используйте это значение при отображении обзора маршрута. Использование этого параметра имеет меньшую задержку запроса по сравнению с использованием параметра HIGH_QUALITY . |
ПолилинияКодирование
Указывает предпочтительный тип возвращаемой полилинии.
перечисления | |
---|---|
POLYLINE_ENCODING_UNSPECIFIED | Не указан предпочтительный тип полилинии. По умолчанию ENCODED_POLYLINE . |
ENCODED_POLYLINE | Указывает полилинию, закодированную с использованием алгоритма кодирования полилинии . |
GEO_JSON_LINESTRING | Задает полилинию, используя формат GeoJSON LineString. |
Единицы
Набор значений, определяющих единицу измерения, используемую при отображении.
перечисления | |
---|---|
UNITS_UNSPECIFIED | Единицы измерения не указаны. По умолчанию используется единица измерения, полученная из запроса. |
METRIC | Метрические единицы измерения. |
IMPERIAL | Имперские (английские) единицы измерения. |
СсылкаМаршрут
Поддерживаемый эталонный маршрут в ComputeRoutesRequest.
перечисления | |
---|---|
REFERENCE_ROUTE_UNSPECIFIED | Не используется. Запросы, содержащие это значение, не выполняются. |
FUEL_EFFICIENT | Топливоэффективный маршрут. Маршруты, отмеченные этим значением, определены как оптимизированные по таким параметрам, как расход топлива. |
Дополнительные вычисления
Дополнительные вычисления для выполнения при выполнении запроса.
перечисления | |
---|---|
EXTRA_COMPUTATION_UNSPECIFIED | Не используется. Запросы, содержащие это значение, не будут выполнены. |
TOLLS | Информация о платных проездах по маршруту(ам). |
FUEL_CONSUMPTION | Расчетный расход топлива по маршруту(ам). |
TRAFFIC_ON_POLYLINE | Полилинии с учетом трафика для маршрута(ов). |
Маршрут
Инкапсулирует маршрут, состоящий из ряда соединенных сегментов дороги, соединяющих начальную, конечную и промежуточную путевые точки.
Представление JSON |
---|
{ "routeLabels": [ enum ( |
Поля | |
---|---|
routeLabels[] | Метки для |
legs[] | Набор участков (сегментов пути между путевыми точками), составляющих маршрут. Каждый этап соответствует поездке между двумя |
distanceMeters | Протяженность маршрута, в метрах. |
duration | Время, необходимое для прохождения маршрута. Если вы установите для Длительность в секундах, содержащая до девяти дробных цифр, заканчивающаяся на « |
staticDuration | Продолжительность движения по маршруту без учета условий движения. Длительность в секундах, содержащая до девяти дробных цифр, заканчивающаяся на « |
polyline | Общая полилиния маршрута. Эта полилиния будет объединенной полилинией всех |
description | Описание маршрута. |
warnings[] | Массив предупреждений для отображения при отображении маршрута. |
viewport | Ограничивающая рамка области просмотра полилинии. |
travelAdvisory | Дополнительная информация о маршруте. |
routeToken | Безопасный для Интернета токен маршрута в кодировке base64, который можно передать в NavigationSDK, что позволяет пакету Navigation SDK реконструировать маршрут во время навигации и в случае перемаршрутизации учитывать исходное намерение при вызове Routes v2.computeRoutes. Клиенты должны рассматривать этот токен как непрозрачный большой двоичный объект. ПРИМЕЧАНИЕ. |
Метка маршрута
Метки для Route
, которые полезны для определения конкретных свойств маршрута для сравнения с другими.
перечисления | |
---|---|
ROUTE_LABEL_UNSPECIFIED | По умолчанию - не используется. |
DEFAULT_ROUTE | «Лучший» маршрут по умолчанию, возвращенный для расчета маршрута. |
DEFAULT_ROUTE_ALTERNATE | Альтернатива «лучшему» маршруту по умолчанию. Маршруты, подобные этому, будут возвращены, если указан параметр computeAlternativeRoutes . |
FUEL_EFFICIENT | Топливоэффективный маршрут. Маршруты, помеченные этим значением, оптимизированы для таких параметров Eco, как расход топлива. |
МаршрутЭтап
Инкапсулирует сегмент между via
путевыми точками.
Представление JSON |
---|
{ "distanceMeters": integer, "duration": string, "staticDuration": string, "polyline": { object ( |
Поля | |
---|---|
distanceMeters | Протяженность участка маршрута, в метрах. |
duration | Продолжительность времени, необходимого для прохождения ноги. Если для Длительность в секундах, содержащая до девяти дробных цифр, заканчивающаяся на « |
staticDuration | Продолжительность проезда по этапу, рассчитанная без учета условий движения. Длительность в секундах, содержащая до девяти дробных цифр, заканчивающаяся на « |
polyline | Общая полилиния для этого участка. Это включает в себя полилинию каждого |
startLocation | Место начала этого этапа. Это может отличаться от предоставленного |
endLocation | Конечное место этой ноги. Это может отличаться от указанного |
steps[] | Массив шагов, обозначающих сегменты в пределах этой ветви. Каждый шаг представляет собой одну инструкцию навигации. |
travelAdvisory | Инкапсулирует дополнительную информацию, о которой должен быть проинформирован пользователь, например, возможное ограничение зоны движения и т. д. на участке маршрута. |
Полилиния
Инкапсулирует закодированную полилинию.
Представление JSON |
---|
{ // Union field |
Поля | |
---|---|
Поле объединения polyline_type . Инкапсулирует тип полилинии. По умолчанию используется encoded_polyline. polyline_type может быть только одним из следующих: | |
encodedPolyline | Строковое кодирование полилинии с использованием алгоритма кодирования полилинии |
geoJsonLinestring | Задает полилинию, используя формат GeoJSON LineString. |
МаршрутLegStep
Инкапсулирует сегмент RouteLeg
. Шаг соответствует одной инструкции навигации. Участки маршрута состоят из ступенек.
Представление JSON |
---|
{ "distanceMeters": integer, "staticDuration": string, "polyline": { object ( |
Поля | |
---|---|
distanceMeters | Расстояние прохождения этого шага в метрах. В некоторых случаях это поле может не иметь значения. |
staticDuration | Продолжительность проезда через этот этап без учета условий движения. В некоторых случаях это поле может не иметь значения. Длительность в секундах, содержащая до девяти дробных цифр, заканчивающаяся на « |
polyline | Полилиния, связанная с этим шагом. |
startLocation | Место начала этого шага. |
endLocation | Место окончания этого шага. |
navigationInstruction | Инструкции по навигации. |
travelAdvisory | Инкапсулирует дополнительную информацию, о которой должен быть проинформирован пользователь, например, возможное ограничение зоны движения на шаге ноги. |
Маневр
Набор значений, определяющих действие навигации для текущего шага (например, повернуть налево, объединиться, прямо и т. д.).
перечисления | |
---|---|
MANEUVER_UNSPECIFIED | Не используется. |
TURN_SLIGHT_LEFT | Поверните немного влево. |
TURN_SHARP_LEFT | Резко повернуть налево. |
UTURN_LEFT | Сделайте левый разворот. |
TURN_LEFT | Поверните налево. |
TURN_SLIGHT_RIGHT | Поверните немного вправо. |
TURN_SHARP_RIGHT | Резко поверните направо. |
UTURN_RIGHT | Сделайте правый разворот. |
TURN_RIGHT | Поверните направо. |
STRAIGHT | Езжайте прямо. |
RAMP_LEFT | Возьмите левый пандус. |
RAMP_RIGHT | Возьмите правый пандус. |
MERGE | Слиться с трафиком. |
FORK_LEFT | Возьмите левую развилку. |
FORK_RIGHT | Возьмите правую вилку. |
FERRY | Сядьте на паром. |
FERRY_TRAIN | Сядьте на поезд, ведущий на паром. |
ROUNDABOUT_LEFT | Поверните налево на кольцевой развязке. |
ROUNDABOUT_RIGHT | Поверните направо на кольцевой развязке. |
RouteLegStepTravelAdvisory
Инкапсулирует дополнительную информацию, о которой должен быть проинформирован пользователь, например, возможное ограничение зоны движения на шаге ноги.
Представление JSON |
---|
{
"speedReadingIntervals": [
{
object ( |
Поля | |
---|---|
speedReadingIntervals[] | ПРИМЕЧАНИЕ. В настоящее время это поле не заполнено. |
RouteLegTravelAdvisory
Инкапсулирует дополнительную информацию, о которой должен быть проинформирован пользователь, например, возможное ограничение зоны движения и т. д. на участке маршрута.
Представление JSON |
---|
{ "tollInfo": { object ( |
Поля | |
---|---|
tollInfo | Инкапсулирует информацию о платных дорогах на конкретном участке RouteLeg. Это поле заполняется только в том случае, если мы ожидаем, что на RouteLeg есть дорожные сборы. Если это поле установлено, но подполе предполагаемая цена не заполнено, мы ожидаем, что дорога содержит плату за проезд, но мы не знаем расчетной цены. Если это поле не существует, то на RouteLeg плата не взимается. |
speedReadingIntervals[] | Интервалы скорочтения с подробным описанием плотности трафика. Применимо в случае настроек маршрутизации Пример:
|
Область просмотра
Окно просмотра широта-долгота, представленное двумя диагонально противоположными low
и high
точками. Окно просмотра считается замкнутой областью, т.е. включает в себя свою границу. Границы широты должны находиться в диапазоне от -90 до 90 градусов включительно, а границы долготы должны находиться в диапазоне от -180 до 180 градусов включительно. Различные случаи включают в себя:
Если
low
=high
, окно просмотра состоит из этой единственной точки.Если
low.longitude
>high.longitude
, диапазон долготы инвертируется (окно просмотра пересекает линию долготы 180 градусов).Если
low.longitude
= -180 градусов иhigh.longitude
= 180 градусов, в окне просмотра отображаются все значения долготы.Если
low.longitude
= 180 градусов иhigh.longitude
= -180 градусов, диапазон долгот пуст.Если
low.latitude
>high.latitude
, диапазон широт пуст.
И low
, и high
должны быть заполнены, и представленное поле не может быть пустым (как указано в определениях выше). Пустое окно просмотра приведет к ошибке.
Например, это окно просмотра полностью охватывает Нью-Йорк:
{ "низкий": { "широта": 40,477398, "долгота": -74,259087}, "высокий": { "широта": 40,91618, "долгота": -73,70018 } }
Представление JSON |
---|
{ "low": { object ( |
Поля | |
---|---|
low | Необходимый. Нижняя точка окна просмотра. |
high | Необходимый. Верхняя точка смотрового окна. |
Результаты геокодирования
Содержит GeocodedWaypoints
для начальной, конечной и промежуточных путевых точек. Заполняется только для адресных путевых точек.
Представление JSON |
---|
{ "origin": { object ( |
Поля | |
---|---|
origin | Исходная геокодированная путевая точка. |
destination | Геокодированная путевая точка назначения. |
intermediates[] | Список промежуточных геокодированных путевых точек, каждая из которых содержит поле индекса, соответствующее отсчитываемому от нуля положению путевой точки в том порядке, в котором они были указаны в запросе. |
GeocodedWaypoint
Подробная информация о местах, используемых в качестве путевых точек. Заполняется только для адресных путевых точек. Включает сведения о результатах геокодирования для целей определения того, к какому адресу был геокодирован.
Представление JSON |
---|
{
"geocoderStatus": {
object ( |
Поля | |
---|---|
geocoderStatus | Указывает код состояния, полученный в результате операции геокодирования. |
type[] | Тип(ы) результата в виде нуля или более тегов типа. Поддерживаемые типы: https://developers.google.com/maps/documentation/geocoding/requests-geocoding#Types . |
partialMatch | Указывает, что геокодер не вернул точное соответствие исходному запросу, хотя смог сопоставить часть запрошенного адреса. Вы можете проверить первоначальный запрос на наличие опечаток и/или неполного адреса. |
placeId | Идентификатор места для этого результата. |
intermediateWaypointRequestIndex | Индекс соответствующей промежуточной путевой точки в запросе. Заполняется только в том случае, если соответствующая путевая точка является промежуточной путевой точкой. |