2012-03-08 2 views
1

Я пытаюсь использовать функцию GeoLocation в HTML5. Я пробовал это, например: html5demos.com, а когда открываю его с помощью Firefox 10.0.2 под Ubuntu, я нахожу меня в городе, которого нет. В Chrome он корректно определяет меня. Город, который находит меня, довольно далеко от города, в котором я нахожусь, хотя я был в этом городе месяц назад.HTML5 Geolocation отличается в Chrome и Firefox

Кто-нибудь знает, что может случиться? Как работает HTML5-Geolocation (с точки зрения программирования), что может быть неудачным в этом аспекте?

+0

Попробуйте этот вопрос http://stackoverflow.com/questions/4213410/how-does-html5-geolocation-work –

ответ

4

Я подтвердил тот же эффект. Хром прибивает меня к тому, что слишком близко ... страшно близко. Принимая во внимание, что Firefox пропустил около 500 миль и целое состояние.

Так что же дает?

Когда вы входите в документацию geoLocation HTML5, вы обнаружите, что API по определению агностик об источнике вашей службы geoLocation.

Это может быть устройство с поддержкой GPS, это может быть сеть Cell Tower, это может быть через горячие точки WIFI, или это может быть через Geo-IP.

Таким образом, в качестве фона я сформулировал гипотезу о том, что Chrome использует горячие точки WIFI, но Firefox возвращается к GeoIP. (Многие сайты легко предоставят вам GeoIP ... и, конечно же, мой GeoIP появится в Hood Oregon или где-то вдали от того, где я на самом деле. - Виноват это в ISP, я думаю.)

Так что с этим info in hand, когда я проверяю свою геолокацию с помощью Firefox, достаточно уверен: Hood Oregon.

Но, как я уже сказал, когда я проверяю свое геолокация с помощью Chrome: практически на месте.

Что я не упоминал до сих пор, но то, что критично для моей гипотезы, заключается в том, что до этого времени я проводил свои тесты с помощью своего ноутбука с поддержкой WIFI.

На тесту 2:

Отключить WIFI на ноутбуке, подключить ноутбук к маршрутизатору через сетевой кабель, и повторите описанные выше тест GeoLocation с помощью Chrome.

Результаты: Chrome помещает меня прямо там, где сделал Firefox, далеко в Худ Орегоне.

Эмпирические Вывод:

Chrome рассчитывает GeoLocation с использованием WIFI точек доступа, если имеется, в то время как Firefox не делает.

API-интерфейс GeoLocation HTML5 имеет флаг «Высокая точность», который по умолчанию установлен в False. Возможно, это так же просто, как Chrome устанавливает значение True, а FireFox - нет.

последующий вопрос:

Как можно подглядывать поток данных, чтобы проверить это?

+0

Я только что включил флаг «enableHighAccuracy», и у меня все еще есть разница в 850 метров между Chrome и Firefox. Не было никакой разницы между включением или выключением флага. – kiwicomb123

Смежные вопросы