Как именно работает HTML5 GeoLocation? - PullRequest
81 голосов
/ 15 июня 2010

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

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

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

Ответы [ 2 ]

68 голосов
/ 15 июня 2010

Данные, отправляемые 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.

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

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

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

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

6 голосов
/ 15 июня 2010

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

...