Как работает геолокация HTML5? - PullRequest
67 голосов
/ 18 ноября 2010

В Chrome и Firefox реализована геолокация HTML.

Мой вопрос: как это работает? Есть ли у них база данных локально, и она получает информацию от провайдера, а затем пытается сопоставить ее?

Где хранится БД? Можно ли получить к нему доступ?

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

Обновление 2: Firefox использует Google WebService для определения местоположения. Теперь это кажется очень странным, учитывая, что они сейчас конкуренты. Кроме того, это поведение действительно неожиданно для меня ... Я подумал, что в каждом браузере будет включено (возможно, в автономном режиме) решение.

Обновление 3: Значит, браузеры действительно ищут маршрутизаторы, использующие вашу беспроводную сетевую карту?

Update4: В конце концов, какую информацию браузер отправляет в веб-сервис Google? Обнаруженный SSID выглядит нормально (и имеет смысл, что если они отслеживаются Google на основании их физического положения, чтобы выполнить поиск в базе данных на предмет соответствия информации), но как это работает так хорошо в стране, где Google не сканировал это? Другая информация, которую посылает ваш браузер, это ваш ip, но этого недостаточно, чтобы точно указать ваше точное местоположение, верно?

Относительно других браузеров, которые могут реализовать это. Как они должны это сделать? API не задокументирован, только старый устаревший API GEAR дает некоторую подсказку. Так что это не совсем публично.

Ответы [ 5 ]

48 голосов
/ 18 ноября 2010

Во-первых, потрясающая демка

Попробуйте это в Chrome.

Как это работает

Здесь ваш ответ. Нажмите "Как Google Chrome определяет ваше местоположение".

С этой страницы:

Если вы разрешите Google Chrome делиться вашим местоположением с сайтом, браузер отправит информацию о локальной сети в Google Location Services, чтобы получить оценку вашего местоположения. Затем браузер может поделиться вашим местоположением с запрашивающим сайтом. Информация о локальной сети, используемая Службами определения местоположения Google для оценки вашего местоположения, включает информацию о видимых точках доступа WiFi, в том числе об уровне сигнала; информация о вашем локальном роутере; IP-адрес вашего компьютера. Точность и охват служб определения местоположения Google зависят от местоположения.

Google Chrome сохраняет информацию о вашем местоположении, чтобы ее можно было легко найти. Эта информация периодически обновляется; частота обновлений зависит от изменений информации о вашей локальной сети.

Кроме того, я считаю, что Google Location Services содержит базу данных, созданную на основе данных, собранных фургонами Google Street View, поскольку они сопоставляют местоположения с сигналами WiFi от маршрутизаторов (или, по крайней мере, используется для ).

Доступ к базе данных

Что касается базы данных (Google Location Services), этот ТАК вопрос поможет вам получить к ней доступ.

20 голосов
/ 19 ноября 2010

Несмотря на то, что спецификация API сама по себе не зависит от реализации геолокации.Таким образом, хотя Mozilla Firefox и Google Chrome полагаются на геолокацию с поддержкой сети через базу данных Google Location Service, это не является обязательным требованием стандарта.Например, Mobile Safari на вашем iPhone в некоторых случаях будет использовать GPS, а не WiFi-триангуляцию или геолокацию сотовых сайтов, в зависимости от того, какая служба определения местоположения наиболее точна и доступна в данный момент.что будущие браузеры предоставят некоторый выбор поставщика местоположения.Я согласен, что для конфиденциальности и функциональности пользователей было бы хорошо, если бы браузеры поддерживали технологии геолокации, которые не требовали отправки списка идентификаторов WiFi третьей стороне;Я подозреваю, что, поскольку GPS-датчики чаще всего интегрируются в смартфоны и ноутбуки, мы увидим браузеры, которые позволяют использовать GPS-зондирование для API геолокации W3C.Также было бы неплохо иметь функцию для настольных компьютеров, где местоположение можно указать вручную в настройках браузера, это также будет совместимо с текущей спецификацией.

11 голосов
/ 18 ноября 2010

В Firefox откройте новую вкладку и введите адрес about:config. Пройдите мимо предупреждающего сообщения и введите geo.wifi.uri в поле фильтра, теперь вы просматриваете веб-сервис, который Firefox использует для определения вашего местоположения.

8 голосов
/ 07 января 2013

Из «Как это работает» в Firefox :

Когда вы посещаете сайт с информацией о местоположении, Firefox спросит вас, хотите ли вы поделиться своим местоположением.
Если вы соглашаетесь, Firefox собирает информацию о ближайших точках беспроводного доступа и IP-адресе вашего компьютера.Затем Firefox отправляет эту информацию поставщику услуг геолокации по умолчанию, Google Location Services, чтобы получить оценку вашего местоположения.Затем эта оценка местоположения передается запрашивающему веб-сайту.
Если вы скажете, что не согласны, Firefox ничего не сделает.

и «Как Chrome определяет ваше местоположение»:

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

3 голосов
/ 08 марта 2012

По последнему вопросу в update4, я думаю, они время от времени обновляют ваше местоположение в зависимости от того, какое устройство вы используете.Например, если вы использовали только свой компьютер для доступа в Интернет, и поблизости нет известных сетей Wi-Fi, тогда ваше местоположение будет определяться по IP-адресу, однако информация о вашей сети будет собираться, позже, скажем, вы подключите iPhone или любое другое устройство сGPS к вашей сети Wi-Fi, и используйте GPS на нем, Google сопоставит эти координаты GPS с вашим SSID или IP-адресом Wi-Fi.Таким образом, после этого всякий раз, когда ваш браузер на ПК отправляет запрос на геолокацию, он проверяет, совпадают ли IP и SSID (и, может быть, куча других вещей, таких как SSID в окрестности и т. Д.), И если они совпадают, он вернетсяместоположение, которое было ранее определено вашим устройством с GPS.Это всего лишь предположение, конечно, но это может быть так ... также, даже если вы никогда не подключали какое-либо устройство, оборудованное GPS, к вашей сети, но оно все равно точно определяет его, что может быть из-за соседних сетей Wi-Fi, чтоGoogle уже знает ... это потрясающая работа, которую они выполняют, наверняка:)

Обновление:
Firefox
Google Chrome

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...