Обзор
Radar API позволяет вычислить местоположение устройства на основе информации об окружении: видимых устройством сотовых вышек и ближайших точек доступа Wi-Fi. Таким образом вы можете определить вероятные координаты устройства в условиях плохой работы GPS или его полного отсутствия. Для вычисления местоположения могут быть использованы следующие данные:
-
Информация о наблюдаемых точках доступа Wi-Fi.
Количество точек доступа Wi-Fi сильнее всего влияет на точность позиционирования по сравнению с другими данными.
-
Информация о наблюдаемых сотовых вышках.
При этом сотовые вышки стандарта LTE предпочтительнее базовых станций.
-
Данные о местоположении устройства, полученные от GNSS-приёмника.
Данные о GNSS-позиции используются анонимизированно для улучшения точности работы всего сервиса Radar API.
На точность позиционирования влияют следующие факторы:
- Объём данных: чем больше точек доступа Wi-Fi и сотовых вышек передано, тем выше точность;
- Свежесть наблюдаемых данных: чем меньше времени прошло с момента последней видимости точки Wi-Fi или сотовой вышки, тем выше точность.
Radar API возвращает радиус и координаты центра круга, внутри которого с высокой вероятностью находится устройство.
Получение ключа доступа
Чтобы работать с API сервиса, нужно получить ключ доступа:
- Зарегистрируйтесь в личном кабинете Platform Manager.
- Создайте демо-ключ или купите ключ для доступа к API: см. инструкцию Ключи доступа.
Работать с ключами можно в личном кабинете Platform Manager: подробнее см. в разделе Platform Manager.
Пример запроса
Чтобы определить местоположение устройства, нужно отправить POST-запрос на endpoint https://radar.api.2gis.com/v2/geolocation
. В строке запроса укажите ваш ключ API в качестве значения параметра key
.
https://radar.api.2gis.com/v2/geolocation?key=API_KEY
Информацию об окружении и другие параметры нужно передать в виде 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% находится устройство. Информацию о каждом поле можно посмотреть в Справочнике API.
{
"statusCode": 200,
"state": "geoposition_located",
"location": {
"longitude": 82.92399186193771,
"latitude": 55.02973009154781,
"accuracy": 100
}
}