Я как-то сел читать, что такое WPS - "WiFi positioning system". Было интересно, как мой полудохлый ноутбук умудряется определять геолокацию?
После прочтения некоторое время пребывал в шоке.⠀
Даже бегал за женой и кричал "Нет, ты дослушай!! Мы все под колпаком!!!"
Но писать пост постеснялся. Решил, что все и так знают...
...Беглый опрос знакомых погромистов показал, что не знает примерно никто.
Читайте и ужаснитесь.
Телефон, планшет и прочие девайсы умеют определять ваше местоположение с точностью до 0.6 метра даже с отключенным GPS. И не только телефоны, но и безобидные ноутбуки, плейстейшены, VR-шлемы и смарт-ТВ, в которых GPS вообще отсутствует физически. Делается это по Wi-Fi сетям.
Apple, Google, MS, Facebook и остальные техгиганты ведут огромные реестры точных координат wifi-рутеров. Это не какая-то там геолокация по IP-адресу (как я раньше думал), а прямо точная-преточная гео-координата Вашего. Домашнего. Роутера.
Откуда их берут? Да от телефонов, которые подключаются к вашему WiFi и тут же стучат - где и к чему подключились (вы замечали, что при сканировании сетей в смартфонах загорается иконка GPS? Айфон заботливо уверяет что это для повышения эффективности поиска, ага).
Даже если вы отключите GPS в телефонах всей семьи, к вам рано или поздно зайдут гости, спросят пароль от вайфая и засветят его на карте.
Да что там гости. Соседи тоже не слепые и видят ваш SSID в эфире. И тоже репортят. Даже если вы живете в деревне, а соседи - в другом доме.
Можно отобрать телефоны у всех гостей, соседей, гостей соседей и детей-гостей-соседей, и все равно останутся способы. Ну например, машины Google Street View. Они не только ездят по городу и фоткают улицы - они (доказанный факт) еще и сканируют, где какая сеть. И записывают в книжечку. Фингерпринт составляют по SSID, каналу, стандарту, мак-адресу и так далее.
Итак, координаты сетей у нас есть. Дальше понятно? Ваш ноутбук всегда видит несколько сеток (даже если подключен только к одной). Если их три и более - зная их точные координаты и расстояние до них, можно с помощью триангуляции легко прикинуть, где вы.
Вообще-то правильно говорить "трилатерация". Запомнить легко: трилатерация меряет расстояния, триангуляция - меряет УГЛЫ. Типа, если ты в открытом море видишь маяк - ты не знаешь расстояния, может 2 км, а может и 20. Но измерь угол (пеленг) и получишь свою точку. Это - триангуляция. А вот если ты "слышишь" радиомаяк с известными координатами - тогда все наоборот. Пеленг неизвестен, зато можем прикинуть расстояние. Ловим три маячка, рисуем три окружности, в области пересечения - мы. Это - трилатерция. Обязательно блесните где-нибудь.
Расстояние до wifi-точки рассчитывается несколькими способами. Мощность сигнала, ToF (time of flight) по сетевым пакетам, в которых есть таймстэмп с точностью до наносекунды и тд. Все, как в gps.
Такие дела.
И не надо никаких доп.устройств, никаких "разрешить этому приложению доступ к геолокации". Просто спроси у сетевой карты парочку параметров.
Кстати, есть неутвержденный стандарт, как из этого выпилиться. Надо добавить к названию домашней сети "_nomap". Гугл, Эппл и Мозилла уважают эту настройку и никуда вашу сеть не запишут. Обещают, по крайней мере.
P.S. если вы уже начали придумывать стартап (в комментах уже упомянули один - навигация внутри торговых центров) и теперь ищете, где взять все эти данные - публичные АПИ легко гуглятся. Вот карта покрытия Мозиллы например. Найди свой роутер.
Post #147
8.61K