Открыть сервисСервис

Геолокация: принципы определения местоположения

Геолокация — это процесс определения географических координат (широты и долготы) объекта, устройства или пользователя. В широком смысле под геолокацией также понимают совокупность технологий, сервисов и программных средств, позволяющих устанавливать местоположение и отображать его на карте. Технология применяется в навигации, логистике, мобильной связи, социальных сетях, маркетинге и системах безопасности.

Основные способы определения местоположения

Спутниковая навигация (GNSS)

Наиболее точный и распространённый способ. Устройство принимает сигналы от группы спутников и вычисляет координаты по времени прохождения сигнала.

СистемаСтрана-разработчикОсобенности
GPS (NAVSTAR)СШАПервая глобальная система, запущена в 1973 году, полная операционная готовность — с 1995 года
ГЛОНАССРоссияРазработана в СССР, полностью развёрнута в 2011 году, широты России покрываются полностью
GalileoЕвропейский союзЗапущена в 2016 году, гражданское управление
BeiDouКитайПолная развёрнута в 2020 году

Точность бытовых GPS-приёмников составляет 3–10 метров. С использованием дифференциальных коррекций (DGPS, RTK) точность повышается до сантиметров — такие решения применяются в сельском хозяйстве и геодезии.

Определение по сотовым вышкам (triangulation)

Мобильный телефон определяется по расстоянию и углу к трём и более базовым станциям оператора связи. Точность — от 50 метров в городах до нескольких километров в сельской местности. Преимущество — работает там, где нет спутникового сигнала (в помещениях, под землёй).

Wi-Fi-позиционирование

Устройство сканирует доступные Wi-Fi-сети и сопоставляет их MAC-адреса с облачной базой данных, в которой адреса привязаны к координатам. Google, Apple и Mozilla ведут собственные базы таких сетей. Точность — 15–40 метров в городской застройке. Метод особенно полезен в помещении, где спутниковый сигнал недоступен.

Bluetooth-маяки (iBeacon, Eddystone)

Небольшие передатчики устанавливаются в магазинах, музеях, аэропортах. Приёмник определяет расстояние до маяка по мощности сигнала. Точность — 1–3 метра. Применяется для внутризданий навигации и геомаркетинга.

IP-геолокация

Определяется по IP-адресу устройства с помощью онлайн-баз данных (MaxMind, 2ГИС, Яндекс). Точность — от уровня города до улицы, зависит от качества базы. Используется в аналитике веб-сайтов, ограничении контента по регионам, антифрод-системах.

Как реализовать геолокацию в приложении

На мобильных устройствах

Android. Основной API — Google Play Services Location API (FusedLocationProviderClient). Он объединяет данные GPS, Wi-Fi, сотовых сетей и датчиков устройства, выбирая наименее энергозатратный источник. Для доступа требуется разрешение ACCESS_FINE_LOCATION (точные координаты) или ACCESS_COARSE_LOCATION (приблизительные). Начиная с Android 6.0 разрешения запрашиваются во время работы.

iOS. Используется фреймворк Core Location. Класс CLLocationManager запрашивает разрешение (requestWhenInUseAuthorization), подписывается на обновления координат через делегат или замыкание. Apple требует указывать в Info.plist ключи NSLocationWhenInUseUsageDescription и при необходимости NSLocationAlwaysAndWhenInuseUsageDescription с объяснением, зачем нужен доступ.

В веб-браузере

Стандарт W3C Geolocation API доступен во всех современных браузерах. Вызов:

``javascript navigator.geolocation.getCurrentPosition( (position) => { console.log(position.coords.latitude, position.coords.longitude); }, (error) => console.log(error.message) ); ``

Браузер запросит у пользователя разрешение. Точность зависит от источника: на настольном компьютере с Wi-Fi — уровень города, на смартфоне — до точности GPS. Для непрерывного отслеживания используется watchPosition().

На сервере

Серверная геолокация обычно сводится к определению региона по IP-адресу запроса. Библиотеки: GeoIP2 (MaxMind), ip2location, базы данных 2ГИС и Яндекса для российских адресов. Результат — страна, регион, город, иногда координаты центра города.

Отображение на карте

Для вывода координат на карту используются:

  • Яндекс.Карты API — широко используется в России, поддерживает российские адресные базы;
  • Google Maps JavaScript API — глобальное покрытие;
  • Leaflet — открытая библиотека, работает с тайлами OpenStreetMap;
  • 2ГИС API — детальные карты российских городов.

Типовой сценарий: получить координаты через Geolocation API, передать их в картографический SDK, отобразить маркер и при необходимости построить маршрут.

Точность и ограничения

Фактическая точность зависит от источника сигнала, окружения и настроек устройства. В помещении спутниковый сигнал отражается от стен, что даёт ошибку в десятки метров. Операторы систем Android и iOS ограничивают фоновое определение местоположения в целях экономии батареи и приватности: для постоянного отслеживания нужны отдельные разрешения и, в случае iOS, соответствующие ключи в манифесте.

Правовые ограничения в России

Сбор и обработка геоданных пользователей регулируется Федеральным законом «О персональных данных» № 152-ФЗ. Координаты, привязанные к идентифицируемому пользователю, относятся к персональным данным. Оператор обязан получить согласие пользователя, обеспечить защиту данных и, при определённых условиях, уведомить Роскомнадзор. Отдельные категории объектов (например, средства космической навигации) подлежат экспортному контролю.

Источники:

  • Документация Google Play Services Location API
  • Документация Apple Core Location Framework
  • Спецификация W3C Geolocation API
  • Официальные сайты систем ГЛОНАСС и GPS
  • Федеральный закон № 152-ФЗ «О персональных данных»
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru