YMaps.RouterEditor.RouterResult

Результат работы маршрутизатора. Для создания пользовательского сервиса маршрутизации необходимо создать провайдер маршрутов, реализующий интерфейс 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 // индекс промежуточной точки в массиве точек ломаной маршрута
                   }
               ]
           }
       ]
   }
}