Перейти к основному содержимому

Построение маршрута

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

/directions — точка вызова сервиса построения маршрутов с возможностью расчёта нескольких альтернативных маршрутов за один запрос и поддержкой пробок.

Запрос

Запрос передается в формате JSON в HTTP body. JSON запроса состоит из обязательных и не обязательных полей. В URL-адресе запроса должны быть заданы обязательные параметры.

Ниже представлен простой пример JSON-запроса.

{
"locations":[
{
"lat":43.133200,
"lon":131.911300
},
{
"lat":50.266000,
"lon":127.535600
}
],
"costing":"auto",
"costing_options":{
"auto":{
"use_border_crossing":0
}
},
"directions_options":{
"units":"kilometers"
},
"id":"my_route"
}

В этом запросе строится маршрут между Владивостоком и Благовещенском. Он строится так, чтобы избежать маршрута через Китай, добавляя штраф за пересечение международных границ. Полученный маршрут отображается в километрах.

Обязательные URL-параметры запроса

Имя параметраФорматОписаниеПример

api_key

hex-string

Доступ к сервисам.

fa749bace6d8a3b1....

Обязательные JSON-поля в HTTP body запроса

Имя поляФорматОписаниеПример

locations

list

Список точек для построения маршрута в массиве JSON. Маршрут между точками строится в порядке, который задан в запросе.

Каждая точка задается параметрами, описание которых приведено ниже.

"locations":
[
{
"lat":55.796932,
"lon":37.537849,
"heading":150
},
{
"lat":55.865625,
"lon":37.462290,
"type":"via"
},
{
"lat":55.962139,
"lon":37.406377
}
]

lat

float

Широта точки маршрута в градусах. Используется 6 знаков после запятой.

"lat":55.796932

lon

float

Долгота точки маршрута в градусах. Используется 6 знаков после запятой.

"lon":37.537849

Дополнительные JSON-поля в HTTP body запроса

Имя поляФорматОписаниеПример

type

string

Тип точки маршрута. Является опциональным полем запроса и влияет на два параметра: возможность разворота в данной точке и создание отдельной ветки ведения в списке legs:

break (по умолчанию) — развороты разрешены, для этой точки будет создана отдельная ветка ведения в списке legs;

through— развороты запрещены, для этой точки не будет создана отдельная ветка ведения в списке legs;

via— развороты разрешены, для этой точки не будет создана отдельная ветка ведения в списке legs;

break_through — развороты запрещены, для этой точки будет создана отдельная ветка ведения в списке legs;

к сведению

Типы для первой и последней точек маршрута игнорируются и всегда считаются равным break.

"type":"break"
"type":"via"

heading

float

Предпочтительное направление движения при старте (является опциональным параметром запроса).

Направление указывается в градусах с севера по часовой стрелке, где север — 0°, восток — 90°, юг — 180°, запад — 270°.

"heading":150

costing

string

Тип транспорта для построения маршрута:

auto (по умолчанию) — автомобильный;

truck— грузовой;

pedestrian— пешеходный;

bicycle — велосипедный;

taxi — такси и другой транспорт, допущенный к использованию полос общественного транспорта.

"costing":"pedestrian"

costing_options

dict

Список параметров расчёта маршрута. Для различных типов транспорта используются различные опции и ограничения.

При использовании параметров расчёта маршрута необходимо указать тип транспорта, для которого будут браться параметры:

auto (по умолчанию) — автомобильный;

truck — грузовой;

pedestrian — пешеходный;

bicycle — велосипедный;

taxi — такси и другой транспорт, допущенный к использованию полос общественного транспорта.

"costing_options":
{
"auto":
{
"use_border_crossing":0,
"use_tolls":0
}
}

units

string

Единица измерения расстояния в ответе:

kilometers(по умолчанию) — километры;

miles — мили.

"units":"miles"

language

string

Язык ответа:

ru-RU (по умолчанию) — русский;

en-US— английский.

"language":"en—US"

id

string

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

"id":"route_to_airport"

directions_type

none;

maneuvers;

instructions.

Включить описание маневров.

Возможные значения:

none (по умолчанию) — исключить описание манёвров из ответа;

maneuvers — включить описание манёвров в ответ.

instructions — добавить в описание маневров инструкции на соответствующем языке.

"directions_type": "instructions"

avoid_locations

list

Набор местоположений, которые необходимо избегать при построении маршрута. Задаётся в виде массива точек с указанием широты и долготы.

"avoid_locations":
[
{
"lat":55.871899,
"lon":37.457765
},
{
"lat":55.884556,
"lon":37.441633
},
{
"lat":55.923995,
"lon":37.395115
}
]

date_time

list

Дата и время в точке отправления или назначения для определения более точных результатов построения маршрута.

Определяется двумя параметрами:

type— тип даты и времени:

   • 0 (по умолчанию) — текущая дата и время в точке отправления, значение value игнорируется;

   • 1 — дата и время отправления;

   • 2 — дата и время прибытия.

value— значение требуемых даты и времени указываются в формате ISO 8601 (ГГГГ-ММ-ДДTчч:мм) в местном часовом поясе отправления или прибытия в зависимости от параметра type.

"date_time":
{
"type":2,
"value":"2020—12—33T21:00"
}

alternates

integer

Максимальное количество альтернативных маршрутов в дополнение к основному (возвращается при их наличии).

Определяется значением от 0 до 4, где:

0 (по умолчанию) — будет построен один маршрут, без расчёта альтернативных;

4 — будет рассчитано пять маршрутов.

примечание

Дробные значения не допускаются.

"alternates":3

alternates_multi_points

boolean

Атрибут для возможного включения построения альтернативных маршрутов при наличии в запросе промежуточных точке. По умолчанию — false.

"alternates_multi_points":true

completeness

string

Атрибут для возможного расширения ответа.

Возможные значения:

minimal(по умолчанию) — возврат минимальной информации (только маневры, без ребер);

enriched — возврат информации обо всех ребрах, входящих в маршрут.

"completeness":"enriched"

costing_options

auto
Имя поляФорматОписаниеПример

use_unpaved

float

Значение, указывающее на готовность использовать грунтовые дороги при построении маршрута. Определяется значением от 0 до 1, где:

0 — не использовать грунтовые дороги;

1 — использовать грунтовые дороги.

к сведению

Допускаются дробные значения.

Значение по умолчанию: 0.5.

"use_unpaved":0.5

use_highways

float

Значение, указывающее на готовность использовать автомагистрали при построении маршрута. Определяется значением от 0 до 1, где:

0 — не использовать автомагистрали;

1 (по умолчанию) — использовать автомагистрали;

к сведению

Допускаются дробные значения.

"use_highways":0

use_tolls

float

Значение, указывающее на готовность использовать платные дороги при построении маршрута. Определяется значением от 0 до 1, где:

0 — не использовать платные дороги;

1 — использовать платные дороги;

к сведению

Допускаются дробные значения.

Значение по умолчанию: 0.5.

"use_tolls":0

use_ferry

float

Значение, указывающее на готовность использовать паромные переправы при построении маршрута. Определяется значением от 0 до 1, где:

0— не использовать паромные переправы;

1 — использовать паромные переправы.

к сведению

Допускаются дробные значения.

Значение по умолчанию: 0.5.

"use_ferry":0.1

use_border_crossing

float

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

Определяется значением от 0 до 1, где:

0 — не использовать использовать дороги пересекающие границы других государств;

1 (по умолчанию) — использовать использовать дороги пересекающие границы других государств.

к сведению

Допускаются дробные значения.

"use_border_crossing":0

traffic

boolean

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

Возможные значения:

false (по умолчанию) — не учитывать пробки и дорожные события;

true — учитывать пробки и дорожные события.

"traffic":true
truck
Имя поляФорматОписаниеПример

weight

float

Указание массы автомобиля в тоннах, для построения маршрута с учётом допустимых весовых нагрузок на дорожную сеть.

Значение по умолчанию: 21.77 тонн.

Номер дорожного знака по ГОСТ: 3.11.

"weight":10

height

float

Высота грузовика в метрах.

Значение по умолчанию: 4.11 м.

Номер дорожного знака по ГОСТ: 3.13.

"height":4.0

width

float

Ширина грузовика в метрах.

Значение по умолчанию: 9.07 м.

Номер дорожного знака по ГОСТ: 3.14.

"width":11.1

length

float

Длина грузовика в метрах.

Значение по умолчанию: 21.64 м.

Номер дорожного знака по ГОСТ: 3.15.

"length":19.4

axle_load

float

Нагрузка на ось в тоннах.

Значение по умолчанию: 9.07 тонн.

Номер дорожного знака по ГОСТ: 3.12.

"axle_load":10.3

hazmat

boolean

Флаг, определяющий везет ли грузовик опасные материалы.

Значение по умолчанию: false.

Номер дорожного знака по ГОСТ: 3.32.

"hazmat":true

use_unpaved

float

Значение, указывающее на готовность использовать грунтовые дороги при построении маршрута.

Определяется значением от 0 до 1, где:

0 — не использовать грунтовые дороги;

1 — использовать грунтовые дороги;

подсказка

Допускаются дробные значения.

Значение по умолчанию: 0.5.

"use_unpaved":0.5

use_highways

float

Значение, указывающее на готовность использовать автомагистрали при построении маршрута.

Определяется значением от 0 до 1, где:

0 — не использовать автомагистрали;

1 (по умолчанию) — использовать автомагистрали.

подсказка

Допускаются дробные значения.

"use_highways":0

use_tolls

float

Значение, указывающее на готовность использовать платные дороги при построении маршрута.

Определяется значением от 0 до 1, где:

0 — не использовать платные дороги;

1 — использовать платные дороги.

подсказка

Допускаются дробные значения.

Значение по умолчанию: 0.5.

"use_tolls":0

use_ferry

float

Значение, указывающее на готовность использовать паромные переправы при построении маршрута.

Определяется значением от 0 до 1, где:

0 — не использовать паромные переправы;

1 — использовать паромные переправы.

подсказка

Допускаются дробные значения.

Значение по умолчанию: 0.5ю

"use_ferry":0.1

use_border_crossing

float

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

Определяется значением от 0 до 1, где:

0 — не использовать использовать дороги пересекающие границы других государств;

1 (по умолчанию) — использовать использовать дороги пересекающие границы других государств.

::: tip

Допускаются дробные значения.

:::

"use_border_crossing":0

traffic

boolean

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

Возможные значения:

false (по умолчанию) — не учитывать пробки и дорожные события;

true — учитывать пробки и дорожные события.

"traffic":true
pedestrian
Имя поляФорматОписаниеПример

walking_speed

float

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

Значение по умолчанию: 5.1 км/ч.

"walking_speed":3

use_ferry

float

Значение, указывающее на готовность использовать паромные переправы при построении маршрута.

Определяется значением от 0 до 1, где:

0 — не использовать паромные переправы;

1 — использовать паромные переправы.

подсказка

Допускаются дробные значения.

Значение по умолчанию: 0.5.

"use_ferry":0.1

use_unpaved

float

Значение, указывающее на готовность использовать грунтовые дороги при построении маршрута.

Определяется значением от 0 до 1, где:

0 — не использовать грунтовые дороги;

1 — использовать грунтовые дороги.

подсказка

Допускаются дробные значения.

Значение по умолчанию: 0.5.

"use_unpaved":0.5

use_roads

float

Значение, указывающее на готовность использовать автомобильные дороги при построении маршрута.

Определяется значением от 0 до 1, где:

0 — не использовать автомобильные дороги;

1 — использовать автомобильные дороги.

подсказка

Допускаются дробные значения.

Значение по умолчанию: 0.5.

"use_road":0

use_border_crossing

float

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

Определяется значением от 0 до 1, где:

0 — не использовать использовать дороги пересекающие границы других государств;

1 (по умолчанию) — использовать использовать дороги пересекающие границы других государств.

подсказка

Допускаются дробные значения.

"use_border_crossing":0

use_hills

float

Значение, указывающее на готовность следовать по маршруту с перепадами высот. Участвует в выборе подходящего маршрута и расчете ETA.

Определяется значением от 0 до 1, где:

0 — максимально избегать перепадов рельефа местности, даже если это приведет к построению более длинного маршрута;

1 — не избегать перепадов рельефа местности.

подсказка

Допускаются дробные значения.

Значение по умолчанию: 0.5.

Важно помнить, что не во всех случаях удается построить альтернативный маршрут с учетом use_hills (например, если на вершину холма ведет единственная дорога).

"use_hills" : 0.25

step_penalty

float

Значение, обозначающее пенальти в секундах, прибавляемое к каждому подъему или спуску по лестницам/ступеням. Чем выше значение, тем сильнее избегаются лестницы.

"step_penalty" :120. 0
bicycle
Имя поляФорматОписаниеПример

cycling_speed

float

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

Значение по умолчанию: 20 км/ч.

"cycling_speed":30

use_ferry

float

Значение, указывающее на готовность использовать паромные переправы при построении маршрута.

Определяется значением от 0 до 1, где:

0 — не использовать паромные переправы;

1 — использовать паромные переправы.

подсказка

Допускаются дробные значения.

Значение по умолчанию: 0.5.

"use_ferry":0.1

use_unpaved

float

Значение, указывающее на готовность использовать грунтовые дороги при построении маршрута.

Определяется значением от 0 до 1, где:

0 — не использовать грунтовые дороги;

1 — использовать грунтовые дороги.

подсказка

Допускаются дробные значения.

Значение по умолчанию: 0.5.

"use_unpaved":0.5

use_roads

float

Значение, указывающее на готовность использовать автомобильные дороги при построении маршрута.

Определяется значением от 0 до 1, где:

0 — не использовать автомобильные дороги;

1 — использовать автомобильные дороги.

подсказка

Допускаются дробные значения.

Значение по умолчанию: 0.5.

"use_road":0

use_border_crossing

float

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

Определяется значением от 0 до 1, где:

0 — не использовать использовать дороги пересекающие границы других государств;

1 (по умолчанию) — использовать использовать дороги пересекающие границы других государств.

подсказка

Допускаются дробные значения.

"use_border_crossing":0

use_hills

float

Значение, указывающее на готовность следовать по маршруту с перепадами высот. Участвует в выборе подходящего маршрута и расчете ETA.

Определяется значением от 0 до 1, где:

0 — максимально избегать перепадов рельефа местности, даже если это приведет к построению более длинного маршрута;

1 — не избегать перепадов рельефа местности.

подсказка

Допускаются дробные значения.

Значение по умолчанию: 0.5.

к сведению

Важно помнить, что не во всех случаях удается построить альтернативный маршрут с учетом use_hills (например, если на вершину холма ведет единственная дорога).

"use_hills" : 0.25
taxi
Имя поляФорматОписаниеПример

use_unpaved

float

Значение, указывающее на готовность использовать грунтовые дороги при построении маршрута.

Определяется значением от 0 до 1, где:

0 — не использовать грунтовые дороги;

1 — использовать грунтовые дороги.

подсказка

Допускаются дробные значения.

Значение по умолчанию: 0.5.

"use_unpaved":0.5

use_highways

float

Значение, указывающее на готовность использовать автомагистрали при построении маршрута.

Определяется значением от 0 до 1, где:

0 — не использовать автомагистрали;

1 (по умолчанию) — использовать автомагистрали.

подсказка

Допускаются дробные значения.

"use_highways":0

use_tolls

float

Значение, указывающее на готовность использовать платные дороги при построении маршрута.

Определяется значением от 0 до 1, где:

0 — не использовать платные дороги;

1 — использовать платные дороги.

подсказка

Допускаются дробные значения.

Значение по умолчанию: 0.5.

"use_tolls":0

use_ferry

float

Значение, указывающее на готовность использовать паромные переправы при построении маршрута.

Определяется значением от 0 до 1, где:

0 — не использовать паромные переправы;

1 — использовать паромные переправы.

подсказка

Допускаются дробные значения.

Значение по умолчанию: 0.5.

"use_ferry":0.1

use_border_crossing

float

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

Определяется значением от 0 до 1, где:

0 — не использовать использовать дороги пересекающие границы других государств;

1(по умолчанию) — использовать использовать дороги пересекающие границы других государств.

подсказка

Допускаются дробные значения.

"use_border_crossing":0

Ответ

Базовая информация

Имя поляФорматОписаниеПример

trips

list

Корневой список возвращаемых маршрутов. Включает несколько элементов при запросе альтернативных маршрутов. Состоит из объектов trip, описанных ниже.

N/A

trip

dict

Словарь с полным описанием маршрута.

N/A

status

number

Код ошибки

"status": 0

status_message

string

Описание ошибки.

"status_message": "Found 2 route(s) between points"

units

string

Единица измерения расстояния в ответе:

kilometers — километры;

miles — мили.

"units": "kilometers"

language

string

Язык ответа:

ru-RU — русский;

en-US — английский.

"language": "ru—RU"

locations

list

Список точек маршрута в соответствии с запросом с дополнительной информацией об этих точках.

"locations": [
{
"original_index": 0,
"type": "break",
"lat": 55.796932,
"lon": 37.537849,
"heading": 150
},
{
"original_index": 1,
"lon": 37.462292,
"lat": 55.865623,
"type": "via"
},
{
"original_index": 2,
"lon": 37.406376,
"lat": 55.962139,
"type": "break"
}
]

original_index

integer

Указание порядкового номера точки маршрута

"original_index": 0

type

string

Тип точки маршрута:

break — развороты разрешены, для этой точки будет создана отдельная ветка ведения в списке legs;

through — развороты запрещены, для этой точки не будет создана отдельная ветка ведения в списке legs;

via — развороты разрешены, для этой точки не будет создана отдельная ветка ведения в списке legs;

break_through — развороты запрещены, для этой точки будет создана отдельная ветка ведения в списке legs.

"type": "break"

lat

float

Широта точки маршрута в градусах. Используется 6 знаков после запятой.

"lat": 55.796932

lon

float

Долгота точки маршрута в градусах. Используется 6 знаков после запятой.

"lon": 37.537849

heading

float

Направление движения при старте.

Направление указывается в градусах с севера по часовой стрелке, где север — 0°, восток — 90°, юг — 180°, запад — 270°.

"heading": 150

id

string

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

"id":"route_to_airport"

Общая информация

Имя поляФорматОписаниеПример

summary

dict

Общая информация о маршруте.

"summary": {
"ll_boxes": [{
"max_lon": 37.546925,
"max_lat": 55.962685,
"min_lat": 55.793781,
"min_lon": 37.406376
}],
"time": 2168.574,
"length": 29.121,
}

ll_boxes

list

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

"ll_boxes": [{
"max_lon": 37.546925,
"max_lat": 55.962685,
"min_lat": 55.793781,
"min_lon": 37.406376
}]

max_lon

float

Максимальная долгота границы области просмотра, включающей в себя маршрут. Используется 6 знаков после запятой.

"max_lon": 37.546925

max_lat

float

Максимальная широта границы области просмотра, включающей в себя маршрут. Используется 6 знаков после запятой.

"max_lat": 55.962685

time

float

Расчётное время, требуемое на движение по маршруту.

Расчётное время указывается в секундах.

"time": 2168.574

length

float

Общая длина маршрута, указывается в выбранных единицах измерения.

"length": 29.121

min_lat

float

Минимальная широта границы области просмотра, включающей в себя маршрут. Используется 6 знаков после запятой.

"min_lat": 55.793781

min_lon

float

Минимальная долгота границы области просмотра, включающей в себя маршрут. Используется 6 знаков после запятой.

"min_lon": 37.406376

Маршрут и манёвры

Имя поляФорматОписаниеПример

legs

dict

Объект legs описывает маршрут и манёвры заключённые между парой точек маршрута, имеющих свойство «type»:«break».

Для n точек маршрута типа break ответ содержит n-1 элемент описания маршрута (для запроса без альтернатив). Для запроса с альтернативами каждая пара break-точек может содержать количество legs меньше или равное числу альтернатив.

Каждый объект описания маршрута содержит:

• словарь summary аналогичный общему, но относящийся только к его части между двумя точками маршрута типа break;

• строку shape;

• список maneuvers.

"legs": [
{
"shape": "...",
"summary": {
...
},
"maneuvers": [
{
...
},
...
{
...
}

]
}
]

shape

string

Кодированный формат полилинии для хранения серии координат широты и долготы в виде одной строки (смотрите также: Декодирование ломаной маршрута).

Cм. пример ответа.

edges

list

Список ребер, входящих во все маневры (возвращается при наличии «completeness»:«enriched» во входном запросе).

"edges": [
{
"id": 12345,
},
...
{
...
}
]

id

int

Уникальный идентификатор ребра (атрибут ребра).

"id": 3459922

length

float

Длина ребра (атрибут ребра), по умолчанию в км, единицы измерения указаны в поле units.

"length": 0.314

use

string

Тип (атрибут ребра):

road

ramp

turn_channel

track

driveway

alley

parking_aisle

emergency_access

drive_through

culdesac

living_street

service_road

cycleway (велосипедная дорожка)

mountain_bike

sidewalk

footway

steps (лестницы, ступеньки)

path

pedestrian

bridleway

rest_area

service_area

other

rail—ferry

ferry

rail

bus

egress_connection

platform_connection

transit_connection

"use": "cycleway"

road_class

string

Класс дороги (атрибут ребра):

motorway

trunk

primary

secondary

tertiary

unclassified

residential

service_other

"road_class": "secondary"

surface

string

Тип покрытия по возрастанию грубости (атрибут ребра):

paved_smooth

paved

paved_rough

compacted

dirt

gravel

path

impassable

"surface": "gravel"

toll

boolean

Признак вхождения в участок платной дороги (атрибут ребра). Присутствует только для типов транспорта auto, motorcycle, truck, taxi.

"toll": true

speed_limit

int

Максимально возможная скорость в км/ч (атрибут ребра).

"speed_limit": 60

iso_code

string

ISO-код страны (атрибут ребра). Указывается в том случае, когда ребро пограничное для маршрута, пересекающего границу. Формат ISO 3166-1 alpha-2 (двухбуквенный).

"iso_code": "RU"

maneuvers

list

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

"maneuvers": [
{
"travel_type": "car",
"travel_mode": "drive",
"verbal_pre_transition_instruction": "Проедьте 9,5 километров по М—11.",
"verbal_transition_alert_instruction": "Продолжайте по М—11.",
"length": 9.490,
"toll": true,
"instruction": "Продолжайте по М—11.",
"end_shape_index": 459,
"type": 8,
"time": 421.573,
"street_names": ["М—11"],
"begin_shape_index": 344
},
...
{
...
}
]

travel_mode

string

Режим маршрутизации:

drive — используется для типов транспорта "costing"="auto" и "costing"="truck";

pedestrian;

bicycle.

"travel_mode": "drive"

travel_type

string

Тип маршрутизации:

car — используется для "travel_mode"="drive" и "costing"="auto";

tractor_trailer — используется для "travel_mode"="drive" и "costing"="truck";

foot — используется для "travel_mode"="pedestrian".

Для велосипедной навигации возможны значения:

hybrid;

road;

cross;

mountain.

"travel_type": "car"

verbal_pre_transition_instruction

string

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

"verbal_pre_transition_instruction": "Проедьте 9,5 километров по М—11."

verbal_transition_alert_instruction

string

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

"verbal_transition_alert_instruction": "Заедьте на кольцо и съезжайте на втором съезде."

verbal_multi_cue

boolean

Переменная имеет значение true в случаях, когда текст устного сообщения о подготовке к манёвру verbal_pre_transition_instruction содержит указание о нескольких последовательных, близко расположенных манёврах.

"verbal_multi_cue": true

verbal_post_transition_instruction

string

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

"verbal_post_transition_instruction": "Продолжайте двигаться 100 метров."

verbal_succinct_transition_instruction

string

Текст, кратко характеризующий маневр.

instruction

string

Текст, который рекомендуется использовать для отображения текстовой подсказки о манёвре.

"instruction": "Выезжайте слева на Ленинградский проспект."

length

float

Общая длина манёвра в границах между begin_shape_index и end_shape_index, указывается в выбранных единицах измерения.

"length": 9.490

begin_shape_index

integer

Указатель на точку начала манёвра на полилинии.

"begin_shape_index": 344

end_shape_index

integer

Указатель на точку окончания манёвра на полилинии.

"end_shape_index": 459

begin_edge_index

integer

Индекс первого ребра из возвращенного массива ребер для начала маневра (возвращается при наличии "completeness":"enriched" во входном запросе).

"begin_edge_index": 5

end_edge_index

integer

Индекс последнего ребра из возвращенного массива ребер для окончания маневра (возвращается при наличии "completeness":"enriched" во входном запросе).

"end_edge_index": 9

type

integer

Код типа манёвра.

"type": 8

time

float

Расчётное время, требуемое на манёвр в границах между begin_shape_index и end_shape_index.

Расчётное время указывается в секундах.

"time": 421.573

cost

float

Степень сложности маневра или маршрута в некоторых абстрактных единицах. Позволяет сравнивать маршруты и маневры между собой и оценивать, какой из них более затратный по времени, по дистанции и т. д.

N/A

street_names

list

Список названий улиц манёвра.

"street_names": ["М—11"]

toll

boolean

Переменная имеет значение true в случаях, когда манёвр или его часть подлежат оплате. Например: часть манёвра пролегает по платной дороге.

"toll": true

ferry

boolean

Переменная имеет значение true в случаях, когда манёвр невозможен без использования парома.

"ferry": true

rough

boolean

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

"rough": true

gate

boolean

Переменная имеет значение true в случаях, когда манёвр пересекает ворота/шлагбаумы.

"gate": true

roundabout_exit_count

integer

Порядковый номер съезда с кругового движения.

"roundabout_exit_count": 2

Значение type для манёвров

Значение typeРасшифровка

0

kNone

1

kStart

2

kStartRight

3

kStartLeft

4

kDestination

5

kDestinationRight

6

kDestinationLeft

7

kBecomes

8

kContinue

9

kSlightRight

10

kRight

11

kSharpRight

12

kUturnRight

13

kUturnLeft

14

kSharpLeft

15

kLeft

16

kSlightLeft

17

kRampStraight

18

kRampRight

19

kRampLeft

20

kExitRight

21

kExitLeft

22

kStayStraight

23

kStayRight

24

kStayLeft

25

kMerge

26

kRoundaboutEnter

27

kRoundaboutExit

28

kFerryEnter

29

kFerryExit

30

kTransit

31

kTransitTransfer

32

kTransitRemainOn

33

kTransitConnectionStart

34

kTransitConnectionTransfer

35

kTransitConnectionDestination

36

kPostTransitConnectionDestination

37

kMergeRight

38

kMergeLeft

Маршрут не найден

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

{"error_code":171,"error":"No suitable edges near location","status_code":400,"status":"Bad Request"}

Пример

Запрос

curl —X POST <br>H "Content—type: application/json" <br>H "Accept: application/json" <br>  —d '{"locations":[{"lat":55.796932,"lon":37.537849,"heading":150},{"lat":55.865625,"lon":37.462290,"type":"via"},{"lat":55.962139,"lon":37.406377}],"costing":"auto","language":"ru—RU","directions_type":"instructions","id":"route_to_airport"}' <br>  "https://geo.rustore.ru/api/directions?api_key=<YOUR_API_KEY>"

Ответ

{
"trips":[
{
"trip":{
"locations":[
{
"type":"break",
"lat":55.796932,
"lon":37.537849,
"heading":150,
"city":"left",
"original_index":0
},
{
"type":"via",
"lat":55.865625,
"lon":37.46229,
"original_index":1
},
{
"type":"break",
"lat":55.962139,
"lon":37.406377,
"original_index":2
}
],
"legs":[
{
"maneuvers":[
{
"type":3,
"instruction":"Двигайтесь на северо—восток.",
"verbal_succinct_transition_instruction":"Двигайтесь на северо—запад., затем Поверните направо на Ленинградский проспект.",
"verbal_pre_transition_instruction":"Двигайтесь на северо—запад., затем Поверните направо на Ленинградский проспект.",
"verbal_post_transition_instruction":"Продолжайте движение еще 50 метров.",
"time":8.72,
"length":0.048,
"cost":364.824,
"begin_shape_index":0,
"end_shape_index":3,
"verbal_multi_cue":true,
"travel_mode":"drive",
"travel_type":"car"
},
{
"type":10,
"instruction":"Поверните направо на Ленинградский проспект.",
"verbal_transition_alert_instruction":"Поверните направо на Ленинградский проспект.",
"verbal_succinct_transition_instruction":"Поверните направо.",
"verbal_pre_transition_instruction":"Поверните направо на Ленинградский проспект.",
"verbal_post_transition_instruction":"Продолжайте движение еще 600 метров.",
"street_names":[
"Ленинградский проспект"
],
"time":37.931,
"length":0.593,
"cost":72.21,
"begin_shape_index":3,
"end_shape_index":12,
"travel_mode":"drive",
"travel_type":"car"
},
{
"type":13,
"instruction":"Развернитесь налево, чтобы остаться на Ленинградский проспект.",
"verbal_transition_alert_instruction":"Развернитесь налево, чтобы остаться на Ленинградский проспект.",
"verbal_succinct_transition_instruction":"Развернитесь налево.",
"verbal_pre_transition_instruction":"Развернитесь налево, чтобы остаться на Ленинградский проспект.",
"verbal_post_transition_instruction":"Продолжайте движение еще 10 километров.",
"street_names":[
"Ленинградский проспект"
],
"time":535.509,
"length":10.369,
"cost":682.537,
"begin_shape_index":12,
"end_shape_index":164,
"travel_mode":"drive",
"travel_type":"car"
},
{
"type":23,
"instruction":"Держитесь правой стороны на развилке.",
"verbal_transition_alert_instruction":"Держитесь правой стороны на развилке.",
"verbal_pre_transition_instruction":"Держитесь правой стороны на развилке.",
"verbal_post_transition_instruction":"Продолжайте движение еще 400 метров.",
"time":34.122,
"length":0.378,
"cost":55.773,
"begin_shape_index":164,
"end_shape_index":174,
"travel_mode":"drive",
"travel_type":"car"
},
{
"type":15,
"instruction":"Поверните налево.",
"verbal_transition_alert_instruction":"Поверните налево.",
"verbal_succinct_transition_instruction":"Поверните налево.",
"verbal_pre_transition_instruction":"Поверните налево.",
"verbal_post_transition_instruction":"Продолжайте движение еще 400 метров.",
"time":45.832,
"length":0.435,
"cost":75.448,
"begin_shape_index":174,
"end_shape_index":195,
"travel_mode":"drive",
"travel_type":"car"
},
{
"type":9,
"instruction":"Поверните направо на Ленинградское шоссе.",
"verbal_transition_alert_instruction":"Поверните направо на Ленинградское шоссе.",
"verbal_succinct_transition_instruction":"Поверните направо., затем через 300 метров, Поверните направо.",
"verbal_pre_transition_instruction":"Поверните направо на Ленинградское шоссе., затем через 300 метров, Поверните направо.",
"verbal_post_transition_instruction":"Продолжайте движение еще 300 метров.",
"street_names":[
"Ленинградское шоссе"
],
"time":12.615,
"length":0.289,
"cost":28.807,
"begin_shape_index":195,
"end_shape_index":199,
"verbal_multi_cue":true,
"travel_mode":"drive",
"travel_type":"car"
},
{
"type":9,
"instruction":"Поверните направо.",
"verbal_transition_alert_instruction":"Поверните направо.",
"verbal_succinct_transition_instruction":"Поверните направо., затем через 50 метров, Поверните направо.",
"verbal_pre_transition_instruction":"Поверните направо., затем через 50 метров, Поверните направо.",
"verbal_post_transition_instruction":"Продолжайте движение еще 50 метров.",
"time":9.245,
"length":0.05,
"cost":91.808,
"begin_shape_index":199,
"end_shape_index":201,
"verbal_multi_cue":true,
"travel_mode":"drive",
"travel_type":"car"
},
{
"type":9,
"instruction":"Поверните направо.",
"verbal_transition_alert_instruction":"Поверните направо.",
"verbal_succinct_transition_instruction":"Поверните направо.",
"verbal_pre_transition_instruction":"Поверните направо.",
"verbal_post_transition_instruction":"Продолжайте движение еще 100 метров.",
"time":40.258,
"length":0.123,
"cost":759.908,
"begin_shape_index":201,
"end_shape_index":213,
"travel_mode":"drive",
"travel_type":"car"
},
{
"type":10,
"instruction":"Поверните направо.",
"verbal_transition_alert_instruction":"Поверните направо.",
"verbal_succinct_transition_instruction":"Поверните направо.",
"verbal_pre_transition_instruction":"Поверните направо.",
"verbal_post_transition_instruction":"Продолжайте движение еще 100 метров.",
"time":24.898,
"length":0.127,
"cost":36.26,
"begin_shape_index":213,
"end_shape_index":217,
"travel_mode":"drive",
"travel_type":"car"
},
{
"type":15,
"instruction":"Поверните налево.",
"verbal_transition_alert_instruction":"Поверните налево.",
"verbal_succinct_transition_instruction":"Поверните налево., затем Поверните направо на Ленинградское шоссе.",
"verbal_pre_transition_instruction":"Поверните налево., затем Поверните направо на Ленинградское шоссе.",
"verbal_post_transition_instruction":"Продолжайте движение еще 20 метров.",
"time":8.515,
"length":0.018,
"cost":22.563,
"begin_shape_index":217,
"end_shape_index":218,
"verbal_multi_cue":true,
"travel_mode":"drive",
"travel_type":"car"
},
{
"type":10,
"instruction":"Поверните направо на Ленинградское шоссе/Leningrad Avenue.",
"verbal_transition_alert_instruction":"Поверните направо на Ленинградское шоссе.",
"verbal_succinct_transition_instruction":"Поверните направо., затем Выезжайте на кольцевую развязку и сверните на 3—м съезде на Беломорская улица.",
"verbal_pre_transition_instruction":"Поверните направо на Ленинградское шоссе, Leningrad Avenue., затем Выезжайте на кольцевую развязку и сверните на 3—м съезде на Беломорская улица.",
"verbal_post_transition_instruction":"Продолжайте движение еще 80 метров.",
"street_names":[
"Ленинградское шоссе",
"Leningrad Avenue"
],
"time":5.75,
"length":0.081,
"cost":20.979,
"begin_shape_index":218,
"end_shape_index":220,
"verbal_multi_cue":true,
"travel_mode":"drive",
"travel_type":"car"
},
{
"type":26,
"instruction":"Выезжайте на кольцевую развязку и сверните на 3—м съезде на Беломорская улица.",
"verbal_transition_alert_instruction":"Выезжайте на кольцевую развязку и сверните на 3—м съезде на Беломорская улица.",
"verbal_succinct_transition_instruction":"Выезжайте на кольцевую развязку и сверните на 3—м съезде.",
"verbal_pre_transition_instruction":"Выезжайте на кольцевую развязку и сверните на 3—м съезде на Беломорская улица.",
"time":20.267,
"length":0.255,
"cost":19.688,
"begin_shape_index":220,
"end_shape_index":239,
"roundabout_exit_count":3,
"travel_mode":"drive",
"travel_type":"car"
},
{
"type":27,
"instruction":"Сверните с кольцевой развязки на Беломорская улица.",
"verbal_succinct_transition_instruction":"Сверните с кольцевой развязки.",
"verbal_pre_transition_instruction":"Сверните с кольцевой развязки на Беломорская улица.",
"verbal_post_transition_instruction":"Продолжайте движение еще 200 метров.",
"street_names":[
"Беломорская улица"
],
"time":14.073,
"length":0.189,
"cost":24.333,
"begin_shape_index":239,
"end_shape_index":244,
"travel_mode":"drive",
"travel_type":"car"
},
{
"type":20,
"instruction":"Сверните на съезде на Ленинградское шоссе.",
"verbal_transition_alert_instruction":"Сверните на съезд на Ленинградское шоссе.",
"verbal_pre_transition_instruction":"Сверните на съезд на Ленинградское шоссе.",
"verbal_post_transition_instruction":"Продолжайте движение еще 8 километров.",
"street_names":[
"Ленинградское шоссе"
],
"time":394.793,
"length":8.069,
"cost":500.92,
"begin_shape_index":244,
"end_shape_index":355,
"sign":{
"exit_branch_elements":[
{
"text":"Ленинградское шоссе"
}
]
},
"travel_mode":"drive",
"travel_type":"car"
},
{
"type":23,
"instruction":"Держитесь правой стороны к Шереметьево—2.",
"verbal_transition_alert_instruction":"Держитесь правой стороны к Шереметьево—2.",
"verbal_pre_transition_instruction":"Держитесь правой стороны к Шереметьево—2.",
"verbal_post_transition_instruction":"Продолжайте движение еще 600 метров.",
"street_names":[
"46Н—13925"
],
"time":34.818,
"length":0.578,
"cost":38.3,
"begin_shape_index":355,
"end_shape_index":372,
"sign":{

},
"travel_mode":"drive",
"travel_type":"car"
},
{
"type":24,
"instruction":"Держитесь прямо, чтобы свернуть на 46Н—13925/Международное шоссе.",
"verbal_transition_alert_instruction":"Держитесь левой стороны, чтобы свернуть на 46Н—13925.",
"verbal_pre_transition_instruction":"Держитесь левой стороны, чтобы свернуть на 46Н—13925, Международное шоссе.",
"verbal_post_transition_instruction":"Продолжайте движение еще 2.5 километров.",
"street_names":[
"46Н—13925",
"Международное шоссе"
],
"time":89.576,
"length":2.654,
"cost":75.352,
"begin_shape_index":372,
"end_shape_index":384,
"travel_mode":"drive",
"travel_type":"car"
},
{
"type":24,
"instruction":"Держитесь левой стороны, чтобы остаться на 46Н—13925/Международное шоссе.",
"verbal_transition_alert_instruction":"Держитесь левой стороны, чтобы остаться на 46Н—13925.",
"verbal_pre_transition_instruction":"Держитесь левой стороны, чтобы остаться на 46Н—13925, Международное шоссе.",
"verbal_post_transition_instruction":"Продолжайте движение еще 1.5 километров.",
"street_names":[
"46Н—13925",
"Международное шоссе"
],
"time":50.683,
"length":1.254,
"cost":46.611,
"begin_shape_index":384,
"end_shape_index":403,
"travel_mode":"drive",
"travel_type":"car"
},
{
"type":24,
"instruction":"Держитесь прямо к Шереметьево/ Терминал D.",
"verbal_transition_alert_instruction":"Держитесь левой стороны к Шереметьево.",
"verbal_pre_transition_instruction":"Держитесь левой стороны к Шереметьево, Терминал D.",
"verbal_post_transition_instruction":"Продолжайте движение еще 500 метров.",
"time":33.139,
"length":0.46,
"cost":38.839,
"begin_shape_index":403,
"end_shape_index":413,
"sign":{

},
"travel_mode":"drive",
"travel_type":"car"
},
{
"type":23,
"instruction":"Держитесь правой стороны на развилке.",
"verbal_transition_alert_instruction":"Держитесь правой стороны на развилке.",
"verbal_pre_transition_instruction":"Держитесь правой стороны на развилке.",
"verbal_post_transition_instruction":"Продолжайте движение еще 600 метров.",
"time":43.991,
"length":0.61,
"cost":63.974,
"begin_shape_index":413,
"end_shape_index":439,
"travel_mode":"drive",
"travel_type":"car"
},
{
"type":4,
"instruction":"Вы прибыли в пункт назначения.",
"verbal_transition_alert_instruction":"Вы прибудете в пункт назначения.",
"verbal_pre_transition_instruction":"Вы прибыли в пункт назначения.",
"time":0.0,
"length":0.0,
"cost":0.0,
"begin_shape_index":439,
"end_shape_index":439,
"travel_mode":"drive",
"travel_type":"car"
}
],
"summary":{
"ll_boxes":[{
"min_lat":55.79378,
"min_lon":37.39366,
"max_lat":55.962686,
"max_lon":37.546925,
}],
"has_time_restrictions":false,
"time":1444.743,
"length":26.583,
"cost":3019.145
},
"shape":"ydqliBeqcrfA_KyO_AyA{EsHv^aeA~FkPl[g_Ad[q~@nO}d@bt@stBtM}_@CiHvUmr@zAsFyEBcEKyDg@sDgAcDgKyPaBsA_Bc@iBEuBj@oBjBoDhFuOhf@mWlu@kCzH}d@tA}f@fxAwTlo@mk@bBuU|q@sKh[uCnIcAtCoGlTwTzu@aDlJm}@xoC{Ujq@{Off@iNza@yGpUuFxQoHv]wGz]mGj_@qFr^mHrf@o^nyBiLzr@}SdkAeOz@{BhMgKp@wGi@ka@pmC{QphAec@tlDoGfe@mFt^c@rC_I|e@aUfuAsJjl@wGn@qDbSgDfPsCxLsEjPmDnKmFvNmBvFQj@eIjPcGjLyFnJiEvGeE~FeEjFiFvFwFhFaEjDiEbDmZbTyCdCyHnFc@bYmkDdlCag@x_@WRalBxxA}n@vf@qlCzoBcBhAic@b{eD|dCao@fd@qj@b^}b@p[snAp~@u|@dq@}jAjbAs@j^ii@pc@kGhFmmAvA{a@n[uq@j@mv@|k@}a@n[e@Zab@x[aMxJyaAzv@{BfnAwu@pj@arC~mBqbAdr@{fBtiAoFjDad@rYak@t^aQxKsy@vf@{e@|Xwo@l@gnA|v@oo@f@ak@]iz@ng@aZbRuk@r^}cBzcAup@|@sf@hZs^xTkiAls@m_Avj@ie@xXyRtLcQlK_h@h[yLnHcTzMkv@xc@}nAhu@mm@f_@kAt@{WdQ_[tRa@T_h@p[qNjIcBbAehAhp@wh@v[mV|Ncu@lc@oj@t]_YvPsVbO{VfOcADkHVcs@dPsRlEs~F}GnBoFlCmFlDiJ|Jyq@rw@xBrMjDxNFrOdShm@jAdCCnBfCl@~CKdOoFrHsF~HsGhIaJ~C{DhKsJtH{KhGyOhTar@z@oCbFkSlCuHnE}IjAy@jNmJzu@ke@xlAiv@tT~@rEQlAdARPxCtCvC|KrA~JvAlAzLmHf@kDmB}N@_FsAyJWmBlOuJh]ySpJ_GdGwDqByOh_SbLyGHq@ETDd@xCx@pnAndCfA|@x@d@Fx@Kv@u@t@qBb@{CPoDAgEUeDg@{Ci@_C_AaCc@YuAgFcAaIcEyb@}Eme@oNowAk@ePF{H~@{DlCgGnC_DtC{@bCMxCn@|GjFlDtJxFnOz@hCnCzGfJjW|BxGXpCLdC?rCK|C_@lCaBnF}BDkAt@{WdQ_[tRa@T_h@p[qNjIcBbAehAhp@wh@v[mV|Ncu@lc@oj@t]_YvPsVbO{VfOyI~EcWhOaOjJ}@j[aKtKk|]aW]kVd_@gGhJyo@ddAsdCrwDw[jj@idApzA{|@rkAgZj_@_ApAsvAzdB}^~c@qi@pq@}pArbBy@fA_n@vx@qFdHy@dAmzArB_ILoUj[GH_TnYwb@ll@yp@|_Agc@rl@_e@xo@qb@pl@y_@bi@wPlTmh@hs@_UrYsi@hs@mThZkaAxrAst@bbActBhqCaJxLssAveBczAprByw@|dA{z@ziAqc@rj@{m@t{@ucAhvAiBbCq^f@}^fh@kYdc@yNrUsaAxdBeFjI}JzQqOfX}n@fhAyyA~jCuBluC}o@hfAegAjeBqZe@kd@tr@iq@rfAgz@xrAmnCllEiTd]}b@bq@_mBtyCus@gAsZ~OyS|K{KvFaf@pVyM|G}IzBaG~@sHFcHa@}HqAmIyCqIaEmUmNuRqJkc@oWcQgLo[yRu@e@{n@g@k@_@_vD{_CsnDa|B}WsPahHqpEaBcAegHcpE_i@egHokEiViOmsBopA{}@_k@sn@oa@uVcM{LqFoEoByQeHwSuGw_@{JwSqCsTiB_U_A}V_@meAj@iv@v@_UTeNNmi@Mcm@h@}e@nBgi@@i|@KaQ]{Nc@{Km@uJu@kMoAef@kH}AMoL{@kD?gDLkEr@oDdBiDjCoDxDqCtEaCtFaCfI}AjIoAxKy@vMkLhsCk@nP]bOIfOV|OVrG@vGnCfYpCx]nCd]bGfu@nFdq@nAtO"
}
],
"summary":{
"ll_boxes":[{
"min_lat":55.79378,
"min_lon":37.39366,
"max_lat":55.962686,
"max_lon":37.546925,
}],
"has_time_restrictions":false,
"time":1444.743,
"length":26.583,
"cost":3019.145
}
}
}
],
"ll_boxes":[{
"min_lat":55.79378,
"min_lon":37.39366,
"max_lat":55.962686,
"max_lon":37.546925,
}],
"status_message":"Found 1 route(s) between points",
"status":0,
"units":"kilometers",
"language":"ru—RU",
"id":"route_to_airport"
}