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

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