- PVSM.RU - https://www.pvsm.ru -

Геолокация без GPS

wifi
Представляю публичную базу геопозиций телефонных вышек и Wi-Fi роутеров. Мне понадобилась стабильная и безлимитная база для приложения Android, в котором нужна была точная геолокация из всех доступных источников (GPS, Wi-Fi, Mobile). Пришлось создать базу данных положений сотовых вышек и Wi-Fi. Всех заинтересовавшихся прошу под кат.

Краткое описание работы приложения:

  1. Этап 1. Раз в несколько минут приложение запускает сбор информации о том, что «видно» мобильному телефону (GPS, Мобильные вышки, все видимые Wi-Fi) и сохраняет в локальную базу данных;
  2. Этап 2. Телефон раз в половину часа синхронизируется с удаленным сервером и сообщает свое местоположение для каждой записи из локальной базы. Каждый раз телефон узнает «а где он?», отправляя данные о мобильных вышках и Wi-Fi на сервера API.

Алгоритм определения местоположения:

  • Если виден GPS и данные «свежие» доверяем им;
  • Если есть Wi-Fi, отправляем запрос на получение положения Wi-Fi. Если найдено положение — доверяем ему;
  • Если есть мобильная станция, получаем ее положение и доверяем этому положению;
  • Если все неудачно получаем, положение по ip, к сожалению, очень не точно.

Самое интересное — это получение координат по Wi-Fi и Cell ID (идентификатор мобильной станции).

К сожалению, я не нашел ни одной публичной обширной и актуальной базы, которая предоставляла бы API без ключей и лимитаций. Пришлось создать свою базу. Точнее две — для Wi-Fi и мобильных вышек.

Определение местоположения по Wi-Fi (оригинальная статья [1]).

Здесь я представлю основные выкладки. Для использования API не нужно никаких ключей, не существует ограничений на количество запросов: api.mylnikov.org/wifi/main.py/get?bssid= [2]{wifi bssid}
{wifi bssid} — Bssid точки доступа (MAC адрес сетевой карты точки доступа).

Точность хранимых координат около 140 метров. Количество записей около 10.3М+. База постоянно обновляется и дополняется, но я буду благодарен, если кто-нибудь предложит дополнительную открытую базу.

Определение местоположение по сотовой станции мобильного оператора (оригинальная статья [3]).

Опять же представлю выкладки: api.mylnikov.org/mobile/main.py/get?mcc= [4]{mcc}&mnc={mnc}&cellid={cellid}&lac={lac}

  • mcc — Integer (Код страны);
  • mnc — Integer (Код телефонного оператора);
  • cellid — Integer (Код телефонной станции);
  • lac — Integer (Код региона или Area, Location).

Точность данных — около 1100-1600 метров. В базе 10M+ вышек. Средний возраст записи — 4 недели.

Скрипт API написан на Python, база данных - MySQL.

Надеюсь, кому-нибудь данная база будет полезной и кто-то сможет использовать данную базу как сервис.

Свободу информации!

Автор: mylnikov

Источник [5]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/wifi/89472

Ссылки в тексте:

[1] оригинальная статья: https://www.mylnikov.org/archives/1063

[2] api.mylnikov.org/wifi/main.py/get?bssid=: https://api.mylnikov.org/wifi/main.py/get?bssid=

[3] оригинальная статья: https://www.mylnikov.org/archives/1056

[4] api.mylnikov.org/mobile/main.py/get?mcc=: http://api.mylnikov.org/mobile/main.py/get?mcc=

[5] Источник: http://habrahabr.ru/post/256321/