Матрица расстояний
Сервис построения матрицы расстояний позволяет осуществлять расчёт ETA и расстояния для пар пунктов отправления и назначения, определяющих матрицу. Сервис поддерживает матрицы различной размерности:
- один ко многим;
- многие ко многим;
- многие к одному.
/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://geo.rustore.ru/api/dm?api_key=<YOUR_API_KEY>" |