Настольный компьютер не носят в кармане, у него нет спутникового приёмника, а операционная система всё равно уверенно сообщает погоде нужный район, подстраивает часовой пояс в поездке с ноутбуком и находит украденный планшет на карте. За этим стоит не механика и не спутник, а взвешенная смесь косвенных сигналов: идентификаторы видимых беспроводных сетей, адрес интернет-провайдера, радиомаяки поблизости, измерения сотовой вышки на модемных устройствах и, в крайнем случае, положение, которое пользователь указал руками. Windows собирает эти крохи в единый поток координат, оценивает их достоверность и раздаёт приложениям через современный программный интерфейс, пряча всю неопределённость за одной аккуратной цифрой радиуса погрешности.

Видимые WiFi-сети как главный источник координат

Самый точный источник положения на устройстве без спутникового приёмника- это пассивное сканирование эфира. Адаптер беспроводной сети видит вокруг себя точки доступа с их идентификаторами BSSSID, то есть аппаратными адресами, и уровнями сигнала. Система отправляет этот список в облачную геобазу, где годами копится соответствие между адресом точки и её координатами, собранными миллионами телефонов со спутниковой навигацией. Ответ возвращается в виде широты, долготы и оценки радиуса погрешности.

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

Важно, что само сканирование пассивно и не требует подключения к чужим сетям. Адаптер слушает широковещательные кадры идентификаторов, которые точки доступа рассылают постоянно. Подключение к интернету нужно лишь для запроса в геобазу, и при его отсутствии источник молчит, даже если сетей вокруг хоть отбавляй.

Отдельная тонкость- кэширование ответов. Система запоминает соответствие недавних наборов сетей и координат, поэтому повторный запрос из той же комнаты обслуживается локально и почти мгновенно. Это заметно на ноутбуке, который ходит между домом и офисом: привычные точки привязки узнаются по кэшу даже при кратковременном пропадании соединения. Устаревание кэша тоже просчитано: записи живут ограниченное время, чтобы переехавший роутер соседа не тянул положение устройства за собой неделями.

Грубая оценка по IP и резервные сигналы

Когда беспроводной адаптер выключен, отсутствует физически, как у большинства настольных машин, или геобаза не ответила, система переходит к оценке по адресу, выданному провайдером. Это самый грубый метод: базы соответствия адресов и регионов знают, какой оператор владеет блоком адресов и где находятся его узлы. Точность колеблется от города до района области, ошибка в пятьдесят-двести километров- обычное дело, а при магистральных провайдерах с централизованным выходом в сеть оценка может указывать на столицу, когда пользователь сидит за тысячу километров от неё.

Несмотря на грубость, метод почти всегда доступен: адрес есть у любой машины с работающим соединением. Система не подменяет им более точные источники, а использует как страховочный слой. Если WiFi-оценка внезапно заявляет положение на другом континенте, хотя минуту назад машина стояла в Казани, адресный слой помогает отбросить выброс: фильтр сравнивает новое значение с предыдущим и с физически возможной скоростью перемещения.

Bluetooth-маяки занимают нишу между этими крайностями. Короткодействующие передатчики в торговых центрах, вокзалах и музеях рассылают идентификаторы, которые приложения и система могут связать с известными координатами. Дальность приёма ограничена десятками метров, поэтому факт приёма конкретного маяка уже локализует устройство внутри здания точнее, чем WiFi. Для обычного дома или офиса маяки почти не играют роли, но на устройствах, которые бывают в общественных пространствах, они заметно уточняют картину.

На планшетах и ноутбуках со встроенным модемом добавляются сотовые измерения. Модем знает идентификатор обслуживающей вышки и соседних секторов, а уровни сигнала позволяют оценить расстояние до них. По одной вышке точность невелика- радиус сектора может достигать километров, но в городе с плотной сетью пересечение нескольких измерений сужает область до сотен метров. Этот источник работает и без подключения к интернету, что делает его ценным в поле.

Крайний резерв- положение по умолчанию. Пользователь вручную указывает на карте точку, которую система считает штатной, когда все радиоисточники молчат. Для стационарной машины это даже не компромисс, а разумное решение: компьютер не двигается, и ручная точка точнее любой косвенной оценки.

Приоритет, фильтрация и борьба с проколами

Служба геолокации не складывает источники арифметически, а выстраивает их по ожидаемой точности и свежести. Ответ геобазы по WiFi перекрывает адресную оценку, сотовые измерения перекрывают молчание эфира, ручная точка включается последней. Каждое значение приходит с меткой времени и радиусом погрешности, и фильтр отбрасывает устаревшие или физически невозможные проколы.

Типичный прокол- скачок на тысячи километров из-за устаревшей записи о переехавшей точке доступа или мобильного роутера, который путешествует в поезде и сбрасывает ложные привязки в геобазу. Фильтр сравнивает новую координату с предыдущей траекторией: перемещение быстрее скорости самолёта отклоняется, если его не подтверждает независимый источник. Повторяющиеся стабильные показания усиливают уверенность системы, одиночные всплески сглаживаются. Приложения видят уже очищенный поток, поэтому карточная программа не дёргает маркер туда-сюда между реальным домом и условным Китаем.

Location Provider API против старой Sensor API

В ранних версиях системы положение представляли как датчик наряду с акселерометром и датчиком освещённости. Старый Sensor API требовал от разработчика самому выбирать источник, разбираться в его типе и обрабатывать сырые данные. Модель оказалась громоздкой: приложению не нужен способ получения координат, ему нужны сами координаты с честной оценкой точности.

Современный интерфейс предоставления положения перевернул логику: приложение запрашивает желаемую точность- грубую или точную, а система сама решает, какие источники задействовать, и возвращает единый объект с координатами, радиусом погрешности, высотой и временем фиксации. Появились разовые запросы для карт и подписка на обновления для навигации, событие изменения статуса службы и явное перечисление прав. Старая модель датчиков сохранилась для обратной совместимости, но новый код пишут против современного интерфейса, а драйверы спутниковых приёмников на ноутбуках подключаются к нему через прослойку, чтобы не ломать чужие программы.

Индикатор, права приложений и журнал активности

Когда служба выдаёт координаты любому приложению, в области уведомлений появляется значок круга с точкой- видимое напоминание, что положение сейчас используется. Права разделены на уровни: системный переключатель отключает службу целиком, дальше каждое приложение получает или теряет доступ по отдельному тумблеру, а настольные программы классического типа управляются одним общим рубильником, потому что система не может проверить их поведение так же строго, как упакованные приложения из каталога.

Раздел «Журнал активности расположения» в параметрах показывает, какое приложение и когда запрашивало положение за последние сутки. Это удобный инструмент аудита: внезапная активность программы, которой карта вовсе не нужна- повод отозвать у неё разрешение. Хранится история локально, она не уходит в облако, и очистка происходит автоматически по мере устаревания записей.

Отключается механизм на нескольких уровнях. Служба геолокации, видимая в консоли управления службами под именем lfsvc, при остановке прекращает раздачу координат всем потребителям сразу. Корпоративные администраторы делают то же самое централизованно через групповую политику, где отдельный параметр запрещает работу службы, а смежные параметры управляют уведомлениями и доступом приложений. Полный запрет не ломает систему: приложения получают вежливый отказ, карты показывают пустое поле, погода просит указать город вручную.

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

Сценарии и приватный контур

Практическая польза аккуратно расходится по точности источников:

  1. Автоматическая подстройка часового пояса и местного прогноза погоды спокойно работает на грубой оценке по адресу- для этого достаточно определить город, и километровая ошибка ничего не портит.
  2. Карточные приложения на ноутбуках и планшетах требуют WiFi-триангуляции или маяков: построить маршрут по ошибке в сто километров невозможно.
  3. Функция поиска устройства сохраняет последнее известное положение пропавшего планшета на сервере учётной записи, и здесь критичны свежесть и шифрование записи, а не идеальная точность.
  4. Астрономические расчёты времени рассвета для автоматического тёмного оформления довольствуются точностью в десятки километров.

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

Карточные приложения на устройствах с ограниченным каналом давно научились жить в автономном режиме. Пользователь заранее загружает области карты домашнего региона, и программа строит маршруты и показывает положение без единого сетевого запроса: геобаза не нужна, если условную координату дают измерения модема или последняя зафиксированная точка. Для ноутбука в дороге это часто оптимальный баланс между приватностью и полезностью.

Стационарная машина под столом- особый случай. Ей не нужны ни триангуляция, ни маяки: компьютер не перемещается, и грубой адресной оценки хватает для погоды, пояса времени и региональных настроек магазина. Ручная точка по умолчанию закрывает задачу ещё элегантнее- система получает идеально точное положение без единого радиозапроса, а владелец- спокойствие от того, что никакие данные о домашней сети никуда не отправляются. Геолокация без спутника в таком сценарии перестаёт быть компромиссом и становится честной инженерной оценкой: ровно та точность, которая нужна задаче, и ни метром больше.

Итоговая картина проста: геолокация без спутника- это не один прибор, а вежливый комитет сигналов, где у каждого члена своя цена и свой радиус ошибки. WiFi-точки дают десятки метров в цивилизованном эфире, адрес провайдера- десятки километров в худшем случае, маяки и вышки закрывают ниши помещений и полевых условий, а ручная точка честно фиксирует неподвижную машину. Служба фильтрует выбросы, журнал и индикатор держат процесс прозрачным, политики и остановка lfsvc оставляют последнее слово за владельцем устройства. Кто понимает, как собирается эта оценка, тот спокойно решает, какие источники кормить системе, какие приложения допускать до координат и где вообще обойтись ручной отметкой на карте.