YMaps.RouterEditor.RouterResult
Внимание
Маршрутизация доступна только в актуальных версиях API.
Как перейти на API 2.1
Результат работы маршрутизатора. Для создания пользовательского сервиса маршрутизации необходимо создать провайдер маршрутов, реализующий интерфейс YMaps.RouterEditor.IRouteProvider, который должен передавать в callback-обработчики результат в требуемом формате.
Данный класс не имеет конструктора. Экземпляры имееют тип Object.
Поля
Имя | Описание |
---|---|
error | Если маршрутизатор закончил работу с ошибкой, то результат маршрутизатора содержит поле error c кодом и описанием ошибки. |
request | Исходный запрос к маршрутизатору (см. YMaps.RouterEditor.IRouteProvider.route). |
response | Ответ маршрутизатора. |
Подробное описание полей
error
Object error
Если маршрутизатор закончил работу с ошибкой, то результат маршрутизатора содержит поле error
c кодом и описанием ошибки.
Пример:
// Результат маршрутизатора в случае ошибки
{
error: {
status: 500,
message: 'internal server error'
}
}
request
Object request
Исходный запрос к маршрутизатору (см. YMaps.RouterEditor.IRouteProvider.route).
Пример:
// Исходный запрос в результате маршрутизатора
{
request: {
wayPoints: ['Киевская', 'Лубянка'],
viaPoints: [],
options: {}
},
response: {
...
}
}
response
Object response
Ответ маршрутизатора.
Пример:
// Описание требуемого формата ответа маршрутизатора.
{
request: {
...
},
response: {
boundedBy: [[37.582242, 55.742440], [37.656311, 55.775878]], // область, ограничивающая весь маршрут
distance: 9432.43, // общая протяженность маршрута
duration: 1027.08, // общая продолжительность маршрута
wayPoints: [ // точки маршрута (не включают промежуточные точки)
{
request: 'Белорусская', // точка как она была запрошена пользователем, название или координаты через запятую
status: 'ok', // статус точки 'ок' или 'error' (если произошла ошибка геокодирования)
data: { // если status = ok, то data содержит информацию о точке
type: 'geocoder', // тип: geocoder (если точка задана строкой) или coords (если точка задана координатой)
point: [37.582242, 55.775717], // географические координаты точки
kind: 'metro', // тип объекта, для type = geocoder
text: 'Россия, Москва, Кольцевая линия, метро Белорусская', // ответ геокодера, для type = geocoder
precision: 'other', // точность геокодирования, для type = geocoder
boundedBy: [[37.574013, 55.771079], [37.590470, 55.780355]], // область, ограничивающая точки
AddressDetails: { // детальная информация от геокодера в формате xAL
Country: {
CountryNameCode: 'RU',
CountryName: 'Россия',
Locality: {
LocalityName: 'Москва',
Thoroughfare: {
ThoroughfareName: 'Кольцевая линия',
Premise: {
PremiseName: 'метро Белорусская'
}
}
}
}
}
}
},
{
// если точка была задана координатами в запросе
request: '37.65631053596737,55.74809186537945',
status: 'ok',
data: {
type: 'coords',
point: [37.656311, 55.748092]
}
}
],
routes: [ // список маршрутов между wayPoints, список полей повторяет параметры конструктора YMaps.Route
{
// точки ломаной маршрута, закодированные в Base64
encodedPoints: 'fng9AoYSUwPXAAAA0v7...',
// уровни точек
levels: 'AOPLAJAK...',
// ограничивающая область маршрута
boundedBy: [[37.582974, 55.742440], [37.655898, 55.775878]],
// отрезки маршрута, список полей повторяет параметры конструктора YMaps.RouteSegment
routeSegments: [
{
indexInPolyline: 0, // индекс первой точки отрезка в массиве точек ломаной маршрута
distance: 72.18, // протяженность участка
duration: 12.99, // продолжительность участка
action: 'none', // направление движения в конце отрезка
angle: 0.00, // угол поворота, в градусах
street: 'пл. Тверская Застава' // улица, по которой проходит участок
},
...
{
indexInPolyline: 107,
distance: 214.74,
duration: 15.46,
action: 'left',
angle: 290.16,
street: 'ул. Земляной Вал'
}
],
distance: 9432.43, // протяженность маршрута
duration: 1027.08, // продолжительность маршрута
viaPoints: [ // список промежуточных точек маршрута
{
indexInPolyline: 53 // индекс промежуточной точки в массиве точек ломаной маршрута
}
]
}
]
}
}