Матрица расстояний
Описание
/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 |
|
Обязательные параметры json'а для тела запроса
Имя поля
|
Формат
|
Описание
|
Пример
| |
---|---|---|---|---|
sources | list | Список точек отправления, где lat и lon - широта точки в градусах (используется 6 знаков после запятой) |
|
|
targets | list | Список точек назначения, где lat и lon - широта точки в градусах (используется 6 знаков после запятой) |
|
Максимальное суммарное число точек отправления (sources) и назначения (targets) не должно превышать 50 точек.
Дополнительные параметры json'а для тела запроса
Имя поля
|
Формат
|
Описание
|
Пример
| |
---|---|---|---|---|
costing | string |
Тип транспорта для построения маршрута:
|
|
|
id | string | Идентификатор запроса, который возвращается вместе с ответом, что позволяет точно установить соответствие запроса и ответа |
|
|
costing_options | dict | Список параметров расчёта маршрута. Для различных типов транспорта используются различные опции и ограничения, аналогичные тем, которые используются в сервисе Построение маршрута |
|
|
units | string |
Единица измерения расстояния в ответе:
|
|
Ответ
Имя поля
|
Формат
|
Описание
|
Пример
| |
---|---|---|---|---|
id | string | Идентификатор запроса, который возвращается вместе с ответом, что позволяет точно установить соответствие запроса и ответа |
|
|
targets | list | Список точек назначения, где lat и lon - широта точки в градусах (используется 6 знаков после запятой) |
|
|
sources | list | Список точек отправления, где lat и lon - широта точки в градусах (используется 6 знаков после запятой) |
|
|
sources_to_targets | list |
Рассчитанная матрица, содержащая номера элементов матрицы отправления и назначения для каждого из результатов расчёта, а также расчётные значения ETA и EDA |
|
|
distance | float | Общая длина маршрута, указывается в выбранных единицах измерения (EDA). |
|
|
time | float |
Расчётное время, требуемое на движение по маршруту (ETA). Расчётное время указывается в секундах. |
|
|
to_index | integer | Порядковый номер элемента матрицы назначения в запросе |
|
|
from_index | integer | Порядковый номер элемента матрицы отправления в запросе |
|
|
units | string | Единица измерения расстояния в ответе |
|
В случае, если по запросу ничего не найдено, ответ будет выглядеть как представлено ниже:
{"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"}' \ "https://demo.maps.vk.com/api/dm" |
Ответ
{ "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" } |