ИнтеграцияИнтеграция по APIРабота с GPS-местоположениями и треками

Работа с GPS-местоположениями и треками

Получение GPS-местоположений

Общее описание

Функция позволяет получить GPS-местоположения Сотрудников.

Максимальное количество возвращаемых местоположений — 1000.

Параметры вызова

Все параметры в запросе являются необязательными.

Функция имеет следующие параметры:

Параметр Описание
dateFrom Дата, время начала периода (подробнее о формате времени). Если параметр не передан, то в ответе на запрос вернутся данные за последние 3 дня.
dateTo Дата, время окончания периода (подробнее о формате времени).
subscriberIDs ИД Сотрудников. Подробнее о передаче нескольких идентификаторов
count Количество возвращаемых GPS-местоположений (не более 1000).
lastLocationID ИД последнего местоположения, которым должны заканчиваться нужные данные (функция вернет местоположения с идентификаторами, которые строго меньше указанного).

Результат выполнения

Функция возвращает структуру со следующими параметрами GPS-местоположений:

Параметр Описание
locationDate Дата, время местоположения (подробнее о формате времени).
subscriberID ИД Сотрудника.
locationID ИД местоположения.
isValid Признак корректности местоположения. Существуют следующие значения: true — местоположение корректно; false — местоположение некорректно.
Longitude Географическая долгота местоположения (в градусах).
latitude Географическая широта местоположения (в градусах).
angle Направление движения (в градусах).
velocity Скорость движения (в км/ч).

Формат запроса

GET /v6/api/globalPositioningManagement/locations?dateFrom=\{dateTime}&dateTo=\{dateTime}&subscriberIDs=\{long}&count=\{integer}&lastLocationID=\{long} HTTP/1.1
Host: host							
Authorization: Bearer token

Пример запроса

GET /v6/api/globalPositioningManagement/locations?dateFrom=2021-03-02T15:45:13+03:00&dateTo=2021-03-03T09:00:12+03:00&subscriberIDs=1&count=2&lastLocationID=1 HTTP/1.1
Host: api.mpoisk.ru
Authorization: Bearer token

Формат ответа

[
  \{
    "locationDate": "dateTime",
    "subscriberID": integer,
    "locationID": integer,
    "isValid": boolean,
    "longitude": number,
    "latitude": number,
    "angle": integer,
    "velocity": number
  },
  \{
    "locationDate": "dateTime",
    "subscriberID": integer,
    "locationID": integer,
    "isValid": boolean,
    "longitude": number,
    "latitude": number,
    "angle": integer,
    "velocity": number
  }
]

Пример ответа

[
  \{
    "locationDate": "2021-03-03T09:00:12+03:00",
    "subscriberID": 1,
    "locationID": 2,
    "isValid": true,
    "longitude": 37.196619999999996,
    "latitude": 55.959860000000006,
    "angle": 0,
    "velocity": 50
  },
  \{
    "locationDate": "2021-03-02T15:45:13+03:00",
    "subscriberID": 1,
    "locationID": 1,
    "isValid": true,
    "longitude": 37.753722777777774,
    "latitude": 55.65313333333333,
    "angle": 0,
    "velocity": 50
  }
]

Получение GPS-треков

Общее описание

Функция позволяет получить GPS-треки Сотрудников.

Максимальное количество возвращаемых треков — 1000.

Параметры вызова

Все параметры в запросе являются необязательными.

Функция имеет следующие параметры:

Параметр Описание
dateFrom Дата, время начала периода (подробнее о формате времени). Если параметр не передан, то в ответе на запрос вернутся данные за последние 3 дня.
dateTo Дата, время окончания периода (подробнее о формате времени).
subscriberIDs ИД Сотрудников. Подробнее о передаче нескольких идентификаторов
count Количество возвращаемых треков (не более 1000).
offset Количество треков, которые необходимо пропустить относительно первого в списке.
lastTrackID ИД трека, которым должен заканчиваться список возвращаемых треков (в ответе будут треки с идентификаторами, которые строго больше указанного).

Результат выполнения

Функция возвращает структуру со следующими параметрами GPS-треков:

Параметр Описание
trackID ИД трека.
subscriberID ИД Сотрудника.
startDate Дата, время начала трека (подробнее о формате времени).
finishDate Дата, время окончания трека (подробнее о формате времени).
startAddress Адрес начала трека.
finishAddress Адрес окончания трека.
startLon Географическая долгота адреса начала трека (в градусах).
startLat Географическая широта адреса начала трека (в градусах).
finishLon Географическая долгота адреса окончания трека (в градусах).
finishLat Географическая широта адреса окончания трека (в градусах).
distance Общая протяженность трека (в метрах).
duration Общая длительность трека (в секундах).

Формат запроса

GET /v6/api/globalPositioningManagement/tracks?dateFrom=\{dateTime}&dateTo=\{dateTime}&subscriberIDs=\{long}&count=\{intger}&offset=\{integer}&lastTrackID=\{long} HTTP/1.1
Host: host
Authorization: Bearer token

Пример запроса

GET /v6/api/globalPositioningManagement/tracks?dateFrom=2021-03-02T15:45:13+03:00&dateTo=2021-03-03T09:00:12+03:00&subscriberIDs=1&count=2&offset=1&lastTrackID=1 HTTP/1.1
Host: api.mpoisk.ru
Authorization: Bearer token

Формат ответа

[
  \{
    "trackID": integer,
    "subscriberID": integer,
    "startDate": "dateTime",
    "finishDate": "dateTime",
    "startAddress": "string",
    "finishAddress": "string",
    "startLon": number,
    "startLat": number,
    "finishLon": number,
    "finishLat": number,
    "distance": integer,
    "duration": integer
  },
  \{
    "trackID": integer,
    "subscriberID": integer,
    "startDate": "dateTime",
    "finishDate": "dateTime",
    "startAddress": "string",
    "finishAddress": "string",
    "startLon": number,
    "startLat": number,
    "finishLon": number,
    "finishLat": number,
    "distance": integer,
    "duration": integer
  }
]

Пример ответа

[
  \{
    "trackID": 2,
    "subscriberID": 1,
    "startDate": "2021-03-03T09:00:12+03:00",
    "finishDate": "2021-03-03T15:15:09+03:00",
    "startAddress": "г. Москва, бульв. Мячковский, 16К2, район ст.м.Марьино",
    "finishAddress": "г. Москва, ул. Новомарьинская, 12/12К1, район ст.м.Марьино",
    "startLon": 37.755718333333334,
    "startLat": 55.65027944444444,
    "finishLon": 37.753722777777774,
    "finishLat": 55.65313333333333,
    "distance": 14611,
    "duration": 22497
  },
  \{
    "trackID": 3,
    "subscriberID": 1,
    "startDate": "2021-03-02T09:00:09+03:00",
    "finishDate": "2021-03-02T15:55:11+03:00",
    "startAddress": "г. Москва, пересечение ул. Поречная и бульв. Мячковский, район ст.м.Марьино",
    "finishAddress": "г. Москва, бульв. Мячковский, 14К2, район ст.м.Марьино",
    "startLon": 37.762928055555555,
    "startLat": 55.64931388888889,
    "finishLon": 37.755610833333336,
    "finishLat": 55.65204972222222,
    "distance": 12860,
    "duration": 24902
  }
]

Получение GPS-трека

Общее описание

Функция позволяет получить GPS-трек Сотрудника.

Параметры вызова

В запросе используется обязательный параметр trackID — ИД GPS-трека.

Результат выполнения

Функция возвращает структуру со следующими параметрами GPS-трека:

Параметр Описание
trackID ИД трека.
subscriberID ИД Сотрудника.
startDate Дата, время начала трека (подробнее о формате времени).
finishDate Дата, время окончания трека (подробнее о формате времени).
startAddress Адрес начала трека.
finishAddress Адрес окончания трека.
startLon Географическая долгота адреса начала трека (в градусах).
startLat Географическая широта адреса начала трека (в градусах).
finishLon Географическая долгота адреса окончания трека (в градусах).
finishLat Географическая широта адреса окончания трека (в градусах).
distance Общая протяженность трека (в метрах).
duration Общая длительность трека (в секундах).

Формат запроса

GET /v6/api/globalPositioningManagement/tracks/\{trackID} HTTP/1.1
Host: host
Authorization: Bearer token

Пример запроса

GET /v6/api/globalPositioningManagement/tracks/1 HTTP/1.1
Host: host
Authorization: Bearer token

Формат ответа

\{
    "trackID": integer,
    "subscriberID": integer,
    "startDate": "dateTime",
    "finishDate": "dateTime",
    "startAddress": "string",
    "finishAddress": "string",
    "startLon": number,
    "startLat": number,
    "finishLon": number,
    "finishLat": number,
    "distance": integer,
    "duration": integer
}

Пример ответа

\{
    "trackID": 1,
    "subscriberID": 1,
    "startDate": "2021-03-18T12:56:37+03:00",
    "finishDate": "2021-03-18T13:04:32+03:00",
    "startAddress": "г. Москва, бульв. Мячковский, 16К2, район ст.м.Марьино",
    "finishAddress": "г. Москва, бульв. Мячковский, 14К2, район ст.м.Марьино",
    "startLon": 37.42697,
    "startLat": 55.86441333333333,
    "finishLon": 37.42533,
    "finishLat": 55.85485,
    "distance": 1695,
    "duration": 475
}

Получение локаций GPS-трека

Общее описание

Функция позволяет получить локации GPS-трека Сотрудника.

Параметры вызова

В запросе используется обязательный параметр trackID — ИД GPS-трека.

Результат выполнения

Функция возвращает структуру со следующими параметрами GPS-треков:

Параметр Описание
locationDate Дата, время местоположения (подробнее о формате времени).
subscriberID ИД Сотрудника.
locationID ИД местоположения.
isValid Признак корректности местоположения. Существуют следующие значения: true — местоположение корректно; false — местоположение некорректно.
Longitude Географическая долгота местоположения (в градусах).
latitude Географическая широта местоположения (в градусах).
angle Направление движения (в градусах).
velocity Скорость движения (в км/ч).

Формат запроса

GET /v6/api/globalPositioningManagement/tracks/\{trackID}/locations HTTP/1.1
Host: host
Authorization: Bearer token

Пример запроса

GET /v6/api/globalPositioningManagement/tracks/1/locations HTTP/1.1
Host: host
Authorization: Bearer token

Формат ответа

[
    \{
        "locationDate": "dateTime",
        "subscriberID": integer,
        "locationID": integer,
        "isValid": boolean,
        "longitude": number,
        "latitude": number,
        "angle": integer,
        "velocity": number
    },
    \{
        "locationDate": "dateTime",
        "subscriberID": integer,
        "locationID": integer,
        "isValid": boolean,
        "longitude": number,
        "latitude": number,
        "angle": integer,
        "velocity": number
    },
    \{
        "locationDate": "dateTime",
        "subscriberID": integer,
        "locationID": integer,
        "isValid": boolean,
        "longitude": number,
        "latitude": number,
        "angle": integer,
        "velocity": number
    }
]

Пример ответа

[    
   \{
        "locationDate": "2021-03-18T13:04:32.002+03:00",
        "subscriberID": 1,
        "locationID": 3,
        "isValid": true,
        "longitude": 37.42533,
        "latitude": 55.85485,
        "angle": 333,
        "velocity": 3
    },
    \{
        "locationDate": "2021-03-18T13:04:30.001+03:00",
        "subscriberID": 1,
        "locationID": 2,
        "isValid": true,
        "longitude": 37.42533,
        "latitude": 55.854847,
        "angle": 306,
        "velocity": 2
    },
    \{
        "locationDate": "2021-03-18T12:56:37+03:00",
        "subscriberID": 1,
        "locationID": 1,
        "isValid": true,
        "longitude": 37.42697,
        "latitude": 55.8644142,
        "angle": 253,
        "velocity": 44
    }
]

Получение событий транспортных средств

Общее описание

Функция позволяет получить зафиксированные события транспортных средств за период.

Параметры вызова

Функция имеет следующие параметры:

Параметр Описание
startDate Дата, время начала периода (подробнее о формате времени).
finishDate Дата, время окончания периода.
subscriberIDs ИД Сотрудников (обязательный параметр). Подробнее о передаче нескольких идентификаторов
count Количество возвращаемых записей (можно указать не более 1000)
offset Количество записей, которые необходимо пропустить относительно первой в списке.

Результаты выполнения

Функция возвращает структуру со следующими параметрами GPS-треков:

Параметр Описание
subscriberID ИД Сотрудника
Параметры зафиксированного события (events)
type Тип события. Существуют следующие значения:1 – заправка топлива; 2 – слив топлива; 3 – нарушение значения датчика; 4 – превышение скорости; 5 – длительное превышение скорости.
Latitude Географическая широта, где было зафиксировано событие (в градусах)
longitude Географическая долгота, где было зафиксировано событие (в градусах)
value Значение, при котором было зафиксировано событие
eventDate Дата и время события (подробнее о формате времени)

Формат запроса

GET /v6/api/globalPositioningManagement/events?startDate=\{dateTime}&finishDate=\{dateTime}&subscriberIDs=\{long}&count=\{integer}&offset=\{integer} HTTP/1.1
Host: host							
Authorization: Bearer token

Пример запроса

GET /v6/api/globalPositioningManagement/events?startDate=2021-03-02T15:45:13Z&finishDate=2021-03-03T09:00:12Z&subscriberIDs=1&count=1&offset=1 HTTP/1.1
Host: api.mpoisk.ru
Authorization: Bearer token

Формат ответа

\{
  "data": [
    \{
      "subscriberID": integer,
      "events": [
        \{
          "type": integer,
          "latitude": number,
          "longitude": number,
          "value": number,
          "eventDate": "dateTime"
        }
      ]
    }
  ]
}

Пример ответа

\{
  "data": [
    \{
      "subscriberID": 1,
      "events": [
        \{
          "type": 1,
          "latitude": 55.959860000000006,
          "longitude": 37.196619999999996,
          "value": 23,
          "eventDate": "2021-04-14T11:08:43Z"
        }
      ]
    }
  ]
}

Получение статистики по транспортным средствам за указанный период

Общее описание

Функция позволяет получить статистику за указанный период по транспортным средствам: пробег, расход топлива, уровень топлива, значение одометра, время работы двигателя.

Параметры запроса

Функция имеет следующие параметры:

Параметр Описание
dateFrom Дата, время начала периода (подробнее о формате времени).
dateTo Дата, время окончания периода (подробнее о формате времени).
subscriberIDs ИД транспортного средства (обязательный параметр). Подробнее о передаче нескольких идентификаторов
interval Интервал времени (в часах) для детализации статистики. Существуют следующие значения:
1 — будет возвращена последняя актуальная запись за указанный период. Расход топлива, возвращаемый в параметре fuelConsumption, будет считаться следующим образом: к разнице значений топлива между первой локацией за период и последней локацией за период прибавляются значения заправок. Данные в параметрах mileage и totalVehicleDistance будут рассчитываться по трекам.
2 — будет возвращено несколько записей с почасовой разбивкой за указанный период. Данные в параметрах mileage и totalVehicleDistance будут рассчитываться по локациям.
3 — будут возвращены все записи за указанный период. Данные в параметрах mileage и totalVehicleDistance будут рассчитываться по локациям.
count Количество возвращаемых записей (можно указать не более 1000).
offset Количество записей, которые необходимо пропустить относительно первой в списке.

Результат выполнения

Функция возвращает структуру со следующими параметрами статистики по закрепленным за абонентами транспортным средствам:

Параметр Описание
subscriberID ИД транспортного средства
Статистика по транспортному средству (statistics)
mileage Пробег за указанный период (в километрах). Если в запросе в параметре interval было передано значение 1, то пробег рассчитывается по трекам. Если в запросе в параметре interval было передано значение 2 или 3, то пробег рассчитывается по локациям.
fuelConsumption Расход топлива (в литрах). Если в запросе в параметре interval было передано значение 1, то расход топлива считается следующим образом: к разнице значений топлива между первой локацией за период и последней локацией за период прибавляются значения заправок.
engineMotohours Время работы двигателя (в часах).
endFuelLevel Уровень топлива (в литрах).
totalVehicleDistance Общая дистанция (в километрах, сумма значения одометра и пробега на момент локации). Если в запросе в параметре interval было передано значение 1, то общая дистанция рассчитывается по трекам. Если в запросе в параметре interval было передано значение 2 или 3, то общая дистанция рассчитывается по локациям.
locationDate Дата, время зафиксированных значений (подробнее о формате времени).

Формат запроса

GET /v6/api/globalPositioningManagement/statistics?dateFrom=\{dateTime}&dateTo=\{dateTime}&subscriberIDs=\{long}&interval=\{integer}&count=\{integer}&offset=\{integer} HTTP/1.1
Host: host
Authorization: Bearer token

Пример запроса

GET /v6/api/globalPositioningManagement/statistics?dateFrom=2021-03-02T15:45:13Z&dateTo=2021-03-02T15:45:13Z&subscriberIDs=1&interval=1&count=1&offset=2 HTTP/1.1
Host: api.mpoisk.ru
Authorization: Bearer token

Формат ответа

\{
  "data": [
    \{
      "subscriberID": integer,
      "statistics": [
        \{
          "mileage": number,
          "fuelConsumption": number,
          "engineMotohours": number,
          "endFuelLevel": number,
          "totalVehicleDistance": number,
          "locationDate": "dateTime"
        }
      ]
    }
  ]
}

Пример ответа

\{
  "data": [
    \{
      "subscriberID": 1,
      "statistics": [
        \{
          "mileage": 53,
          "fuelConsumption": 2,
          "engineMotohours": 1,
          "endFuelLevel": 25,
          "totalVehicleDistance": 15729,
          "locationDate": "2021-04-14T13:26:32Z"
        }
      ]
    }
  ]
}

Получение GPS-местоположения по его идентификатору

Общее описание

Функция позволяет получить GPS-местоположение Сотрудника.

Параметры вызова

В запросе используется обязательный параметр locationID — идентификатор местоположения.

Результат выполнения

Функция возвращает структуру со следующими параметрами GPS-местоположения:

Параметр Описание
locationDate Дата, время местоположения (подробнее о формате времени).
subscriberID ИД cотрудника
locationID ИД местоположения
isValid Признак корректности местоположения. Существуют следующие значения: true — местоположение корректно; false — местоположение некорректно.
longitude Географическая долгота местоположения (в градусах)
latitude Географическая широта местоположения (в градусах)
angle Направление движения (в градусах)
velocity Скорость движения (в км/ч)

Формат запроса

GET /v6/api/globalPositioningManagement/locations/\{locationID} HTTP/1.1
Host: host							
Authorization: Bearer token

Пример запроса

GET /v6/api/globalPositioningManagement/locations/1 HTTP/1.1
Host: api.mpoisk.ru
Authorization: Bearer token

Формат ответа

\{
    "locationDate": "dateTime",
    "subscriberID": integer,
    "locationID": integer,
    "isValid": boolean,
    "longitude": number,
    "latitude": number,
    "angle": integer,
    "velocity": number
}

Пример ответа

\{
    "locationDate": "2021-03-03T09:00:12+03:00",
    "subscriberID": 1,
    "locationID": 2,
    "isValid": true,
    "longitude": 37.196619999999996,
    "latitude": 55.959860000000006,
    "angle": 0,
    "velocity": 50
}