Получение координат курьеров

Логистам важно получать координаты курьеров в реальном времени, чтобы контролировать посещение курьерами заказов и складов и оценивать ожидаемое время приезда на заказ (ETA).

Координаты передаются в Мониторинг с разной периодичностью:

  • если курьер в движении — каждые 20 секунд;
  • при стоянке — каждые 120 секунд.

Маңызды

Координаты, фактическое время которых отстает от текущего более, чем на 1 сутки, игнорируются.

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

Источники координат

Координаты могут поступать в Мониторинг из мобильного приложения или  GPS-трекера (см. раздел Подготовка данных), а также через API (этот способ настраивается специалистами техподдержки). Передача координат через API может применяться, например, если компания использует собственное мобильное приложение.

Курьеры могут использовать одновременно и GPS-трекеры, и мобильное приложение Яндекс Маршрутизация: с помощью приложения курьеры получают информацию о заказах, оставляют комментарии и фотографии, а также определяют свое местоположение на карте. А GPS-трекер обеспечивает передачу в Мониторинг более точных координат, чем смартфон.

Определение источника координат

Если координаты поступают из нескольких источников, можно указать, какой именно источник нужно использовать для отображения маршрута курьера и расчета ETA. Указать источник можно для всей компании или для отдельных курьеров.

Если в качестве источника координат указан GPS-трекер, то приложение на смартфоне курьера не получает координаты с этого GPS-трекера, а определяет их самостоятельно. Координаты со смартфона при этом в Мониторинг не передаются.

Задать источник координат для компании можно, только обратившись в службу поддержки.

Задать источник координат для курьера можно через API, передав в теле запроса массив значений параметра allowed_courier_position_sources. Возможные значения:

  • gps_tracker — из GPS-трекера;
  • app — из мобильного приложения Яндекс Маршрутизация;
  • s2s_api — через API.

Если для курьера параметр не задан, используется значение, установленное для компании.

По умолчанию для компании разрешены все источники координат, а отдельно для курьеров параметры не заданы.

Если для компании или курьера значение параметра allowed_courier_position_sources определено как пустой массив, координаты передаваться в Мониторинг не будут.

Получение координат через API

Чтобы передать координаты курьера в базу данных, отправьте запрос к ресурсу push-positions-v3.

В запросе укажите:

  • courier_id и route_id — ID курьера и ID маршрута, используемые в запросах к API Мониторинга.

  • apikey — API-ключ компании . Ключ указан в настройках компании, поле API Key.

В заголовках запроса укажите X-YaCourier-Signature, в который должна быть добавлена подпись.

Маңызды

Подпись вычисляется по алгоритму. Для вычисления используется секрет длиной до 32 символов (нужно получить через клиентского менеджера или службу поддержки). Секрет не является подписью.

Запрос:

cURL

curl -H "Content-Type: application/json" -H "Authorization: OAuth <ваш-OAuth-токен>" -H "X-YaCourier-Signature: <ваша-подпись>" -X POST -d @<Путь_до_файла_в_кодировке_UTF-8> https://api.courier.yandex.net/api/v1/couriers/<id-курьера>/routes/<id-маршрута>/push-positions-v3?apikey=<API-ключ-компании>

Файл

{
"positions": [
        {
        "accuracy": 5,
        "point": {
            "lat": 59.987543,
            "lon": 30.353874
            },
        "timestamp": 1711964409
        }
    ]
}

cURL

curl -H "Content-Type: application/json" -H "Authorization: OAuth <ваш-OAuth-токен>" -H "X-YaCourier-Signature: <ваша-подпись>" -X POST -d '{"positions": [{"accuracy": 5, "point": {"lat": 59.987543, "lon": 30.353874}, "timestamp": 1711964409}]}' https://api.courier.yandex.net/api/v1/couriers/<id-курьера>/routes/<id-маршрута>/push-positions-v3?apikey=<API-ключ-компании>

Результат:

{}