Как работает HTML5 Geolocation?

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

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

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

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

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

Update3: Таким образом, браузеры действительно обнюхивают маршрутизаторы с помощью вашей беспроводной сетевой карты?

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

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

Ответ 1

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

И мы можем надеяться, что будущие браузеры предоставят определенный выбор провайдера. Я согласен с тем, что было бы хорошо для конфиденциальности и функциональности пользователей, если браузеры поддерживали геолокационные технологии, которые не требовали отправки списка идентификаторов WiFi третьим лицам; Я подозреваю, что поскольку GPS-датчики чаще интегрируются в смартфоны и ноутбуки, мы увидим браузеры, которые позволят вам использовать GPS-зондирование для API-интерфейсов W3C Geolocation. Также неплохо бы иметь функцию для настольных компьютеров, где местоположение может быть указано вручную в настройках браузера, это также будет совместимо с текущей спецификацией.

Ответ 2

Во-первых, удивительная демонстрация

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

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

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

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

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

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

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

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

Что касается базы данных (службы геолокации Google), this, вопрос SO поможет вам получить к ней доступ.

Ответ 3

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

Ответ 4

От Firefox "Как это работает" :

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

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

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

Ответ 5

Мое предположение о последнем вопросе в 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