Построение маршрута
Сервис построения маршрутов позволяет осуществлять построение автомобильных, велосипедных и пешеходных маршрутов между двумя точками, с возможностью указания промежуточных точек маршрута.
/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 | Доступ к сервисам |
|
Обязательные json-поля в HTTP body запроса
Имя поля
|
Формат
|
Описание
|
Пример
| |
---|---|---|---|---|
locations | list |
Список точек для построения маршрута в массиве JSON. Маршрут между точками строится в порядке, который задан в запросе. Каждая точка задается параметрами, описание которых приведено ниже |
|
|
lat | float | Широта точки маршрута в градусах. Используется 6 знаков после запятой |
|
|
lon | float | Долгота точки маршрута в градусах. Используется 6 знаков после запятой |
|
Дополнительные json-поля в HTTP body запроса
Имя поля
|
Формат
|
Описание
|
Пример
| |
---|---|---|---|---|
type | string |
Тип точки маршрута. Является опциональным полем запроса и влияет на два параметра: возможность разворота в данной точке и создание отдельной ветки ведения в списке legs:
|
|
|
heading | float |
Предпочтительное направление движения при старте (является опциональным параметром запроса). Направление указывается в градусах с севера по часовой стрелке, где север — 0°, восток — 90°, юг — 180°, запад — 270° |
|
|
costing | string |
Тип транспорта для построения маршрута:
|
|
|
costing_options | dict |
Список параметров расчёта маршрута. Для различных типов транспорта используются различные опции и ограничения. При использовании параметров расчёта маршрута необходимо указать тип транспорта, для которого будут браться параметры:
|
|
|
units | string |
Единица измерения расстояния в ответе:
|
|
|
language | string |
Язык ответа:
|
|
|
id | string | Идентификатор запроса, который возвращается вместе с ответом, что позволяет точно установить соответствие запроса и ответа. |
|
|
directions_type |
|
Включить описание маневров. Возможные значения:
|
|
|
avoid_locations | list | Набор местоположений, которые необходимо избегать при построении маршрута. Задаётся в виде массива точек с указанием широты и долготы |
|
|
date_time | list |
Дата и время в точке отправления или назначения для определения более точных результатов построения маршрута. Определяется двумя параметрами:
|
|
|
alternates | integer |
Максимальное количество альтернативных маршрутов в дополнение к основному (возвращается при их наличии). Определяется значением от 0 до 4, где:
— дробные значения не допускаются. |
|
|
alternates_multi_points | boolean |
Атрибут для возможного включения построения альтернативных маршрутов при наличии в запросе промежуточных точке. По умолчанию — false. |
|
|
completeness | string |
Атрибут для возможного расширения ответа. Возможные значения:
|
|
Costing options
Auto
Имя поля
|
Формат
|
Описание
|
Пример
| |
---|---|---|---|---|
use_unpaved | float |
Значение, указывающее на готовность использовать грунтовые дороги при построении маршрута. Определяется значением от 0 до 1, где:
— допускаются дробные значения. Значение по умолчанию: 0.5 |
|
|
use_highways | float |
Значение, указывающее на готовность использовать автомагистрали при построении маршрута. Определяется значением от 0 до 1, где:
— допускаются дробные значения. |
|
|
use_tolls | float |
Значение, указывающее на готовность использовать платные дороги при построении маршрута. Определяется значением от 0 до 1, где:
— допускаются дробные значения. Значение по умолчанию: 0.5 |
|
|
use_ferry | float |
Значение, указывающее на готовность использовать паромные переправы при построении маршрута. Определяется значением от 0 до 1, где:
— допускаются дробные значения. Значение по умолчанию: 0.5 |
|
|
use_border_crossing | float |
Значение, указывающее на готовность использовать дороги пересекающие границы других государств при построении маршрута. Определяется значением от 0 до 1, где:
— допускаются дробные значения. |
|
|
traffic | boolean |
Учитывать пробки и дорожные события при построении маршрута. Возможные значения:
|
|
Truck
Имя поля
|
Формат
|
Описание
|
Пример
| |
---|---|---|---|---|
weight | float |
Указание массы автомобиля в тоннах, для построения маршрута с учётом допустимых весовых нагрузок на дорожную сеть. Значение по умолчанию: 21.77 тонн. Номер дорожного знака по ГОСТ: 3.11. |
|
|
height |
float |
Высота грузовика в метрах. Значение по умолчанию: 4.11 м. Номер дорожного знака по ГОСТ: 3.13. |
|
|
width |
float |
Ширина грузовика в метрах. Значение по умолчанию: 9.07 м. Номер дорожного знака по ГОСТ: 3.14. |
|
|
length |
float |
Длина грузовика в метрах. Значение по умолчанию: 21.64 м. Номер дорожного знака по ГОСТ: 3.15. |
|
|
axle_load |
float |
Нагрузка на ось в тоннах. Значение по умолчанию: 9.07 тонн. Номер дорожного знака по ГОСТ: 3.12. |
|
|
hazmat |
boolean |
Флаг, определяющий везет ли грузовик опасные материалы. Значение по умолчанию: false. Номер дорожного знака по ГОСТ: 3.32. |
|
|
use_unpaved | float |
Значение, указывающее на готовность использовать грунтовые дороги при построении маршрута. Определяется значением от 0 до 1, где:
— допускаются дробные значения. Значение по умолчанию: 0.5 |
|
|
use_highways | float |
Значение, указывающее на готовность использовать автомагистрали при построении маршрута. Определяется значением от 0 до 1, где:
— допускаются дробные значения. |
|
|
use_tolls | float |
Значение, указывающее на готовность использовать платные дороги при построении маршрута. Определяется значением от 0 до 1, где:
— допускаются дробные значения. Значение по умолчанию: 0.5 |
|
|
use_ferry | float |
Значение, указывающее на готовность использовать паромные переправы при построении маршрута. Определяется значением от 0 до 1, где:
— допускаются дробные значения. Значение по умолчанию: 0.5 |
|
|
use_border_crossing | float |
Значение, указывающее на готовность использовать дороги пересекающие границы других государств при построении маршрута. Определяется значением от 0 до 1, где:
— допускаются дробные значения. |
|
|
traffic | boolean |
Учитывать пробки и дорожные события при построении маршрута. Возможные значения:
|
|
Pedestrian
Имя поля
|
Формат
|
Описание
|
Пример
| |
---|---|---|---|---|
walking_speed | float |
Средняя скорость движения пешком. Указывается в километрах в час. Значение по умолчанию: 5.1 км/ч |
|
|
use_ferry | float |
Значение, указывающее на готовность использовать паромные переправы при построении маршрута. Определяется значением от 0 до 1, где:
— допускаются дробные значения. Значение по умолчанию: 0.5 |
|
|
use_unpaved | float |
Значение, указывающее на готовность использовать грунтовые дороги при построении маршрута. Определяется значением от 0 до 1, где:
— допускаются дробные значения. Значение по умолчанию: 0.5 |
|
|
use_roads | float |
Значение, указывающее на готовность использовать автомобильные дороги при построении маршрута. Определяется значением от 0 до 1, где:
— допускаются дробные значения. Значение по умолчанию: 0.5 |
|
|
use_border_crossing | float |
Значение, указывающее на готовность использовать дороги пересекающие границы других государств при построении маршрута. Определяется значением от 0 до 1, где:
— допускаются дробные значения. |
|
|
use_hills | float |
Значение, указывающее на готовность следовать по маршруту с перепадами высот. Участвует в выборе подходящего маршрута и расчете ETA. Определяется значением от 0 до 1, где:
Допускаются дробные значения. Значение по умолчанию: 0.5. Важно помнить, что не во всех случаях удается построить альтернативный маршрут с учетом use_hills (например, если на вершину холма ведет единственная дорога). |
|
|
step_penalty | float |
Значение, обозначающее пенальти в секундах, прибавляемое к каждому подъему или спуску по лестницам/ступеням. Чем выше значение, тем сильнее избегаются лестницы. |
|
Bicycle
Имя поля
|
Формат
|
Описание
|
Пример
| |
---|---|---|---|---|
cycling_speed | float |
Средняя скорость движения на велосипеде. Указывается в километрах в час. Значение по умолчанию: 20 км/ч |
|
|
use_ferry | float |
Значение, указывающее на готовность использовать паромные переправы при построении маршрута. Определяется значением от 0 до 1, где:
— допускаются дробные значения. Значение по умолчанию: 0.5 |
|
|
use_unpaved | float |
Значение, указывающее на готовность использовать грунтовые дороги при построении маршрута. Определяется значением от 0 до 1, где:
— допускаются дробные значения. Значение по умолчанию: 0.5 |
|
|
use_roads | float |
Значение, указывающее на готовность использовать автомобильные дороги при построении маршрута. Определяется значением от 0 до 1, где:
— допускаются дробные значения. Значение по умолчанию: 0.5 |
|
|
use_border_crossing | float |
Значение, указывающее на готовность использовать дороги пересекающие границы других государств при построении маршрута. Определяется значением от 0 до 1, где:
— допускаются дробные значения. |
|
|
use_hills | float |
Значение, указывающее на готовность следовать по маршруту с перепадами высот. Участвует в выборе подходящего маршрута и расчете ETA. Определяется значением от 0 до 1, где:
Допускаются дробные значения. Значение по умолчанию: 0.5. Важно помнить, что не во всех случаях удается построить альтернативный маршрут с учетом use_hills (например, если на вершину холма ведет единственная дорога). |
|
Taxi
Имя поля
|
Формат
|
Описание
|
Пример
| |
---|---|---|---|---|
use_unpaved | float |
Значение, указывающее на готовность использовать грунтовые дороги при построении маршрута. Определяется значением от 0 до 1, где:
— допускаются дробные значения. Значение по умолчанию: 0.5 |
|
|
use_highways | float |
Значение, указывающее на готовность использовать автомагистрали при построении маршрута. Определяется значением от 0 до 1, где:
— допускаются дробные значения. |
|
|
use_tolls | float |
Значение, указывающее на готовность использовать платные дороги при построении маршрута. Определяется значением от 0 до 1, где:
— допускаются дробные значения. Значение по умолчанию: 0.5 |
|
|
use_ferry | float |
Значение, указывающее на готовность использовать паромные переправы при построении маршрута. Определяется значением от 0 до 1, где:
— допускаются дробные значения. Значение по умолчанию: 0.5 |
|
|
use_border_crossing | float |
Значение, указывающее на готовность использовать дороги пересекающие границы других государств при построении маршрута. Определяется значением от 0 до 1, где:
— допускаются дробные значения. |
|
Ответ
Базовая информация
Имя поля
|
Формат
|
Описание
|
Пример
| |
---|---|---|---|---|
trips | list | Корневой список возвращаемых маршрутов. Включает несколько элементов при запросе альтернативных маршрутов. Состоит из объектов trip, описанных ниже | ||
trip | dict | Словарь с полным описанием маршрута | ||
status | number | Код ошибки |
|
|
status_message | string | Описание ошибки |
|
|
units | string |
Единица измерения расстояния в ответе:
|
|
|
language | string |
Язык ответа:
|
|
|
locations | list |
Список точек маршрута в соответствии с запросом с дополнительной информацией об этих точках. |
|
|
original_index | integer | Указание порядкового номера точки маршрута |
|
|
type | string |
Тип точки маршрута:
|
|
|
lat | float | Широта точки маршрута в градусах. Используется 6 знаков после запятой |
|
|
lon | float | Долгота точки маршрута в градусах. Используется 6 знаков после запятой |
|
|
heading | float |
Направление движения при старте. Направление указывается в градусах с севера по часовой стрелке, где север — 0°, восток — 90°, юг — 180°, запад — 270°. |
|
|
id | string | Идентификатор запроса, который возвращается вместе с ответом, что позволяет точно установить соответствие запроса и ответа. |
|
Общая информация
Имя поля
|
Формат
|
Описание
|
Пример
| |
---|---|---|---|---|
summary | dict | Общая информация о маршруте |
|
|
ll_boxes | list | Набор баундинг-боксов, описывающих область, занимаемую маршрутом. В общем случае здесь один элемент. При пересечении маршрута через антимеридиан возвращается два бокса (по разные стороны от меридиана). |
|
|
max_lon | float | Максимальная долгота границы области просмотра, включающей в себя маршрут. Используется 6 знаков после запятой |
|
|
max_lat | float | Максимальная широта границы области просмотра, включающей в себя маршрут. Используется 6 знаков после запятой |
|
|
time | float |
Расчётное время, требуемое на движение по маршруту. Расчётное время указывается в секундах. |
|
|
length | float | Общая длина маршрута, указывается в выбранных единицах измерения. |
|
|
min_lat | float | Минимальная широта границы области просмотра, включающей в себя маршрут. Используется 6 знаков после запятой |
|
|
min_lon | float | Минимальная долгота границы области просмотра, включающей в себя маршрут. Используется 6 знаков после запятой |
|
Маршрут и манёвры
Имя поля
|
Формат
|
Описание
|
Пример
| |
---|---|---|---|---|
legs | dict |
Объект legs описывает маршрут и манёвры заключённые между парой точек маршрута, имеющих свойство « Для n точек маршрута типа Каждый объект описания маршрута содержит:
|
|
|
shape | string | Кодированный формат полилинии для хранения серии координат широты и долготы в виде одной строки (смотрите также: Декодирование ломаной маршрута) | ||
edges | list | Список ребер, входящих во все маневры (возвращается при наличии «completeness»:«enriched» во входном запросе). |
|
|
id | int | Уникальный идентификатор ребра (атрибут ребра) |
|
|
length | float | Длина ребра (атрибут ребра), по умолчанию в км, единицы измерения указаны в поле «units» |
|
|
use | string |
Тип (атрибут ребра):
|
|
|
road_class | string |
Класс дороги (атрибут ребра):
|
|
|
surface | string |
Тип покрытия по возрастанию грубости (атрибут ребра):
|
|
|
toll | boolean |
Признак вхождения в участок платной дороги (атрибут ребра). Присутствует только для типов транспорта auto, motorcycle, truck, taxi |
|
|
speed_limit | int |
Максимально возможная скорость в км/ч (атрибут ребра) |
|
|
iso_code | string |
ISO-код страны (атрибут ребра). Указывается в том случае, когда ребро пограничное для маршрута, пересекающего границу. Формат ISO 3166-1 alpha-2 (двухбуквенный) |
|
|
maneuvers | list | Список манёвров на маршруте с указание точек манёвров на полилинии, а также длины, длительности манёвра и подсказок к манёврам на выбранном языке |
|
|
travel_mode | string |
Режим маршрутизации:
|
|
|
travel_type | string |
Тип маршрутизации.
Для велосипедной навигации возможны значения:
|
|
|
verbal_pre_transition_instruction | string |
Текст, который можно использовать в качестве устного сообщения для подготовки к манёвру. |
|
|
verbal_transition_alert_instruction | string |
Текст, который можно использовать в качестве устного сообщения о манёвре, непосредственно перед самим манёвром. |
|
|
verbal_multi_cue | boolean | Переменная имеет значение «true» в случаях, когда текст устного сообщения о подготовке к манёвру «verbal_pre_transition_instruction» содержит указание о нескольких последовательных, близко расположенных манёврах |
|
|
verbal_post_transition_instruction | string |
Текст, который можно использовать в качестве устного сообщения непосредственно сразу после завершения манёвра |
|
|
verbal_succinct_transition_instruction | string |
Текст, кратко характеризующий маневр |
||
instruction | string | Текст, который рекомендуется использовать для отображения текстовой подсказки о манёвре |
|
|
length | float | Общая длина манёвра в границах между «begin_shape_index» и «end_shape_index», указывается в выбранных единицах измерения |
|
|
begin_shape_index | integer | Указатель на точку начала манёвра на полилинии |
|
|
end_shape_index | integer | Указатель на точку окончания манёвра на полилинии |
|
|
begin_edge_index | integer | Индекс первого ребра из возвращенного массива ребер для начала маневра (возвращается при наличии «completeness»:«enriched» во входном запросе) |
|
|
end_edge_index | integer | Индекс последнего ребра из возвращенного массива ребер для окончания маневра (возвращается при наличии «completeness»:«enriched» во входном запросе) |
|
|
type | integer | Код типа манёвра |
|
|
time | float |
Расчётное время, требуемое на манёвр в границах между «begin_shape_index» и «end_shape_index». Расчётное время указывается в секундах |
|
|
cost | float |
Степень сложности маневра или маршрута в некоторых абстрактных единицах. Позволяет сравнивать маршруты и маневры между собой и оценивать, какой из них более «затратный» по времени, по дистанции и т.д. |
||
street_names | list | Список названий улиц манёвра |
|
|
toll | boolean |
Переменная имеет значение «true» в случаях, когда манёвр или его часть подлежат оплате. Например: часть манёвра пролегает по платной дороге |
|
|
ferry | boolean | Переменная имеет значение «true» в случаях, когда манёвр невозможен без использования парома |
|
|
rough |
boolean | Переменная имеет значение «true» в случаях, когда манёвр полностью или частично осуществляется по дорогам без покрытия |
|
|
gate |
boolean | Переменная имеет значение «true» в случаях, когда манёвр пересекает ворота/шлагбаумы |
|
|
roundabout_exit_count | integer | Порядковый номер съезда с кругового движения |
|
Значение «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 \ —H "Content—type: application/json" \ —H "Accept: application/json" \ —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"}' \ "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@zAsF\\yEBcEKyDg@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@}SdkAeO`z@{BhMgK`p@wG`i@ka@pmC{QphAec@tlDoGfe@mFt^c`@r`C_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@kGhFmmAv`A{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@xBrMjDxN`FrOdShm@jAdC`CnBfCl@~CKdOoFrHsF~HsGhIaJ~C{DhKsJtH{KhGyOhTar@z@oCbFkSlCuHnE}IjAy@jNmJzu@ke@xlAiv@tT~@rEQlAdARPxCtCvC|KrA~JvAlAzLmHf@kDmB}N@_FsAyJWmBlOuJh]ySpJ_GdGwDqByOh\\_SbLyG`Hq@`ET`Dd@xCx@pnAn\\dCfA|@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}B`DkAt@{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@dAmzA`rB_I`LoUj[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~jCu`BluC}o@hfAegAjeBqZ`e@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@e\\g`HokEiViOmsBopA{}@_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" } |