Матрица расстояний v.2

Описание

/v2/dm/ - точка вызова сервиса расчёта матрицы расстояний.

Запрос

Запрос передается методом HTTP POST. В теле POST-запроса указывается json с обязательными и необязательными полями.

Простой пример json'а: 

{"sources":[{"lat":55.796932,"lon":37.537849},{"lat":55.801551,"lon":37.531575}],"targets":[{"lat":55.790412,"lon":37.534313},{"lat":55.788644,"lon":37.536507}],"costing":"pedestrian","id":"DM_Test"}

Этот запрос рассчитывает матрицу времени и расстояния для пешеходного графа для каждой пары точек отправления и назначения.

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

Имя поля

Формат

Описание

Пример

api_key

hex-string

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

api_key=fa749bace6d8a3b1....

Обязательные параметры json'а для тела запроса

Имя поля
Формат
Описание
Пример
sources list Список точек отправления, где lat и lon - широта точки в градусах (используется 6 знаков после запятой)

"sources":

[

{

"lat": 55.796932,

"lon": 37.537849

},

{

"lat": 55.801551,

"lon": 37.531575

}

]

targets list Список точек назначения, где lat и lon - широта точки в градусах (используется 6 знаков после запятой)

"targets":

[

{

"lat": 55.790412,

"lon": 37.534313

},

{

"lat": 55.788644,

"lon": 37.536507

}

]

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

Дополнительные параметры json'а для тела запроса 

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

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

  • auto (по умолчанию) - автомобильный;
  • truck (не поддерживается) - грузовой;
  • pedestrian - пешеходный;
  • bicycle - велосипедный.

"costing":"pedestrian"

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

"id":"DM_Test"

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

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

units string

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

  • kilometers (по умолчанию) - километры;
  • miles - мили.

"units":"miles"

Ответ

Имя поля
Формат
Описание
Пример
id string Идентификатор запроса, который возвращается вместе с ответом, что позволяет точно установить соответствие запроса и ответа
"id": "DM_Test"
targets list Список точек назначения, где lat и lon - широта точки в градусах (используется 6 знаков после запятой)
"targets": [
        [
            {
                "lon": 37.534313,
                "lat": 55.790413
            },
            {
                "lon": 37.536507,
                "lat": 55.788643
            }
        ]
    ]
sources list Список точек отправления, где lat и lon - широта точки в градусах (используется 6 знаков после запятой)
"sources": [
        [
            {
                "lon": 37.537849,
                "lat": 55.796932
            },
            {
                "lon": 37.531574,
                "lat": 55.801552
            }
        ]
    ]
sources_to_targets list

Рассчитанная матрица, содержащая номера элементов матрицы отправления и назначения для каждого из результатов расчёта, а также расчётные значения ETA и EDA 

"sources_to_targets": [
        [
            {
                "distance": 1.076,
                "time": 773,
                "to_index": 0,
                "from_index": 0
            },
            {
                "distance": 1.459,
                "time": 1041,
                "to_index": 1,
                "from_index": 0
            }
        ],
        [
            {
                "distance": 1.828,
                "time": 1311,
                "to_index": 0,
                "from_index": 1
            },
            {
                "distance": 2.211,
                "time": 1579,
                "to_index": 1,
                "from_index": 1
            }
        ]
    ]
distance float Общая длина маршрута, указывается в выбранных единицах измерения (EDA).
"distance": 1.828
time float

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

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

"time": 1311
to_index integer Порядковый номер элемента матрицы назначения в запросе
"to_index": 0
from_index integer Порядковый номер элемента матрицы отправления в запросе
"from_index": 0
units string Единица измерения расстояния в ответе
"units": "kilometers"

В случае, если по запросу ничего не найдено, ответ будет выглядеть как представлено ниже:

{"status_code":400,"status":"Bad Request"}

Пример

POST-запрос с помощью утилиты curl

curl -X POST \
  -H "Content-type: application/json" \
  -H "Accept: application/json" \
  -d '{"sources":[{"lat":55.796932,"lon":37.537849},{"lat":55.801551,"lon":37.531575}],"targets":[{"lat":55.790412,"lon":37.534313},{"lat":55.788644,"lon":37.536507}],"costing":"pedestrian","id":"DM_Test"}' \

Ответ

{
    "id": "DM_Test",
    "targets": [
        [
            {
                "lon": 37.534313,
                "lat": 55.790413
            },
            {
                "lon": 37.536507,
                "lat": 55.788643
            }
        ]
    ],
    "sources_to_targets": [
        [
            {
                "distance": 1.076,
                "time": 773,
                "to_index": 0,
                "from_index": 0
            },
            {
                "distance": 1.459,
                "time": 1041,
                "to_index": 1,
                "from_index": 0
            }
        ],
        [
            {
                "distance": 1.828,
                "time": 1311,
                "to_index": 0,
                "from_index": 1
            },
            {
                "distance": 2.211,
                "time": 1579,
                "to_index": 1,
                "from_index": 1
            }
        ]
    ],
    "sources": [
        [
            {
                "lon": 37.537849,
                "lat": 55.796932
            },
            {
                "lon": 37.531574,
                "lat": 55.801552
            }
        ]
    ],
    "units": "kilometers"
}