Как именно работает 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 также будут регистрировать данные о местоположении точек доступа.