Перейти к основному содержимому

Матрица расстояний

Сервис построения матрицы расстояний позволяет осуществлять расчёт 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

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

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

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

"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"}'
"https://geo.rustore.ru/api/dm?api_key=<YOUR_API_KEY>"