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

overview

Radar API позволяет определить приблизительное местоположение устройства по точкам доступа Wi-Fi и сотовым вышкам. Вы можете использовать Radar API, если сигнал от спутников слабый или отсутствует (например, в городской застройке, при глушении сигнала или медленном старте GNSS-приёмника), а другие системы геопозиционирования работают плохо.

Важно

Radar API определяет местоположение с точностью около 150–200 м в городской среде, поэтому он не заменяет определение геопозиции по спутниковым сигналам и не подходит для сценариев навигации, в которых необходима высокая точность геопозиции.

Radar API возвращает радиус и координаты центра круга, внутри которого с вероятностью 68% может находиться устройство. Для вычисления местоположения Radar API использует следующие данные:

  • Информацию о наблюдаемых точках доступа Wi-Fi. Количество точек доступа Wi-Fi оказывает наибольшее влияние на точность позиционирования по сравнению с другими данными.
  • Информацию о наблюдаемых сотовых вышках. Сотовые вышки стандарта LTE предпочтительнее базовых станций других стандартов.
  • Данные о местоположении устройства, полученные от GNSS-приёмника. Данные о GNSS-позиции используются в анонимизированной форме для повышения точности работы Radar API.

Точность позиционирования зависит от следующих факторов:

  • Объём данных. Чем больше точек доступа Wi-Fi и сотовых вышек передано, тем выше точность. На открытой местности, где отсутствуют точки доступа Wi-Fi (например, на больших шоссе), точность позиционирования Radar API низкая.
  • Свежесть данных. Чем меньше времени прошло с момента последнего наблюдения точки Wi-Fi или сотовой вышки, тем выше точность.

Начало работы

1. Получите ключ доступа

Чтобы работать с API сервиса, нужно получить ключ доступа:

  1. Зарегистрируйтесь в личном кабинете Менеджер Платформы.
  2. Создайте демо-ключ или купите подписку для доступа к API.

Работать с ключами можно в Менеджере Платформы: подробнее см. в документации личного кабинета.

2. Отправьте запрос

Чтобы определить местоположение устройства, отправьте POST-запрос на endpoint https://radar.api.2gis.com/v2/geolocation. Для этого:

  1. В строке запроса укажите значение API-ключа в параметре key:

    https://radar.api.2gis.com/v2/geolocation?key=API_KEY
  2. В теле запроса передайте JSON с необходимыми параметрами. Например, чтобы получить местоположение устройства по информации об одной сотовой вышке, одной точке доступа Wi-Fi и GNSS-позиции, отправьте следующий запрос:

    curl --request POST \
    --url 'https://radar.api.2gis.com/v2/geolocation?key=API_KEY' \
    --header 'Content-Type: application/json' \
    --data '{
    "sessionUUID": "deea0dba-0000-41a1-a1b4-8b6fc342b07d",
    "captureTimestampUnix": 1628605467,
    "gnssLocation": {
    "latitude": 55.0302839,
    "longitude": 82.9231227,
    "horizontalAccuracyM": 6.228
    },
    "mobileNetwork": {
    "homeMobileCountryCode": 250,
    "homeMobileNetworkCode": 2,
    "cellTowers": [
    {
    "ageMs": 75002,
    "cellID": 138361350,
    "networkType": "lte",
    "locationAreaCode": 5401,
    "signalStrengthDBm": -101
    }
    ]
    },
    "wifiAccessPoints": [
    {
    "ageMs": 1000,
    "macAddress": "74:4d:28:2b:6c:32",
    "signalStrengthDBm": -75
    }
    ]
    }'

    Где:

    • gnssLocation содержит данные о GNSS-местоположении устройства: широте, долготе и точности позиционирования.
    • mobileNetwork содержит мобильный код страны, код мобильной сети и информацию о наблюдаемой в данный момент сотовой вышке: время с момента первого наблюдения, идентификатор, мощность сигнала и другие параметры.
    • wifiAccessPoints содержит информацию о наблюдаемой в данный момент точке доступа Wi-Fi: время с момента первого наблюдения, MAC-адрес и мощность сигнала.

Более подробную информацию о параметрах см. в Справочнике API.

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

Запрос вернёт объект с предсказанием местоположения устройства: широту, долготу и радиус, в котором с вероятностью 68% находится устройство.

{
"statusCode": 200,
"state": "geoposition_located",
"location": {
"longitude": 82.92399186193771,
"latitude": 55.02973009154781,
"accuracy": 100
}
}

Подробную информацию о каждом поле см. в Справочнике API.