Как именно работает HTML5 GeoLocation?

Я знаю, что браузер сообщает мой IP-адрес и информацию о ближайших беспроводных сетях, чтобы определить мое местоположение, но какую информацию он знает о близлежащих сетях Wi-Fi?

Например, там, где я живу, нет общедоступных беспроводных сетей, и из своего дома я вижу около 5 частных сетей, но мое местоположение определяется в пределах 20 метров. Поскольку поблизости нет открытых сетей, как Google определяет мое местоположение? Единственный способ, которым я могу думать, - это то, что Google отображал местоположения всех беспроводных сетей, когда они отображали улицы для просмотра улиц.

Я искал в Интернете, но все, что я не могу найти какие-либо конкретные детали.

2 ответа

Данные, отправляемые Firefox в Google, предназначены для всех видимых точек доступа, общедоступных или частных. Для каждой обнаруженной точки доступа она отправляет следующие данные https://www.google.com/loc/json:

  "mac_address": "01-23-45-67-89-ab",
  "signal_strength": 8,
  "age": 0,
  "SSID": "MyAccessPoint"

где

  • mac_address это MAC-адрес узла WiFi.
  • signal_strength текущая сила сигнала, измеренная в дБм.
  • age количество миллисекунд с момента обнаружения узла WiFi.
  • SSID это имя или ESSID узла WiFi.

Данные о Wi-Fi с географической привязкой, используемые для геокодирования вашего запроса, были собраны, когда Google катался, снимая фотографии для StreetView.

Однако важно отметить, что именно так API геолокации HTML5 внедряется в Firefox с использованием сервисов геолокации Google. Это реализация, а не спецификация. Если ваше устройство имеет встроенный GPS, вероятно, желательно, чтобы ваша реализация HTML5 запрашивала GPS напрямую, а не с помощью службы геолокации.

Даже Firefox реализует эту функцию по-разному в Windows и Linux. Используя текущий Firefox в Windows, информация обо всех видимых узлах WiFi отправляется в Google. При использовании текущего Firefox в Linux отправляются только сведения о подключенном в данный момент узле WiFi, поскольку libiw для данных точки доступа.

Как отметил другой участник, Safari использует сервис Skyhook Wireless, который делает то же самое, что и Google Location Services.

Данные собираются Skyhook Wireless (Википедия), и они не делают различий между общедоступными и частными точками Wi-Fi - они регистрируют местоположения всех из них. Я не удивлюсь, если фургоны Google Street View также будут регистрировать данные о местоположении точек доступа.

Другие вопросы по тегам