Навигация | Map Matching API | Обзор | 2GIS Documentation

Map Matching API

Map Matching API восстанавливает маршрут по траектории в виде набора точек, который содержит в себе географические координаты, временные метки, скорость и направление движения объекта. Восстановленный маршрут будет проходить по звеньям дорожного графа.

Ограничения в использовании:

  • алгоритм работает только для автомобильной маршрутизации;
  • трек восстанавливается только в городе и населённых пунктах внутри одного проекта 2ГИС;
  • максимальное количество точек в одном запросе не более 1000;
  • время фиксации между соседними точками строго от 1 до 10 секунд.

Дополнительные ограничения к точкам трека:

  • точность точек в треке не менее 30 метров;
  • входной массив точек записан транспортным средством, которое двигалось по дорогам общего пользования с учётом правил ПДД;
  • все точки записаны последовательно, принадлежат одному устройству и одной поездке.

Несоблюдение этих условий ухудшит точность результата.

Запросы передаются в формате json в теле запроса POST. Ответы формируются в формате json.

В запросе передаётся траектория в виде массива точек. Кроме координат каждая точка содержит временную метку, текущую скорость объекта и направление объекта.

В ответ приходит длина маршрута в метрах, его длительность в секундах, набор звеньев дорожного графа, из которых состоит маршрут, и геометрия восстановленного маршрута в формате WKT.

Пример запроса и ответа приведены в Справочнике API.

Данные можно получить с помощью POST-запроса на URL https://catalog.api.2gis.com/map_matching?key=YOUR_KEY и payload'а с Content-Type application/json.

В запросе используется параметр key=YOUR_KEY — ваш ключ API.

{
    "query": [
        {
            "lon": 82.914948,
            "lat": 55.051097,
            "utc": 1623878771,
            "speed": 41,
            "azimuth": 171
        },
        {
            "lon": 82.914914,
            "lat": 55.051196,
            "utc": 1623878773,
            "speed": 42,
            "azimuth": 171
        },
        {
            "lon": 82.914885,
            "lat": 55.051289,
            "utc": 1623878775,
            "speed": 43.3,
            "azimuth": 171
        },
        {
            "lon": 82.914866,
            "lat": 55.051404,
            "utc": 1623878776,
            "speed": 42,
            "azimuth": 171
        }
    ]
}
{
    "distance": 60.354,
    "duration": 5,
    "edges": [
        {
            "distance": 96.268,
            "edge_id": 282909495821411,
            "geometry": "LINESTRING(82.914962 55.05097,82.914834 55.05146)"
        }
    ],
    "query": [
        {
            "azimuth": 171,
            "edge_id": 282909495821411,
            "lat": 55.051097,
            "lat_matched": 55.051095,
            "lon": 82.914948,
            "lon_matched": 82.914929,
            "speed": 41.0,
            "utc": 1623878771
        },
        {
            "azimuth": 171,
            "edge_id": 282909495821411,
            "lat": 55.051196,
            "lat_matched": 55.051195,
            "lon": 82.914914,
            "lon_matched": 82.914903,
            "speed": 42.0,
            "utc": 1623878773
        },
        {
            "azimuth": 171,
            "edge_id": 282909495821411,
            "lat": 55.051289,
            "lat_matched": 55.051288,
            "lon": 82.914885,
            "lon_matched": 82.914879,
            "speed": 43.3,
            "utc": 1623878775
        },
        {
            "azimuth": 171,
            "edge_id": 282909495821411,
            "lat": 55.051404,
            "lat_matched": 55.051403,
            "lon": 82.914866,
            "lon_matched": 82.914849,
            "speed": 42.0,
            "utc": 1623878776
        }
    ],
    "route": "LINESTRING(82.914929 55.051095,82.914849 55.051403)",
    "status": "OK"
}
  1. Получите ключ доступа к API. Для этого отправьте заявку.
  2. Посмотрите все параметры форматов запроса и ответа.