Почему HTML5 геолокации? - PullRequest
       5

Почему HTML5 геолокации?

13 голосов
/ 25 сентября 2011

Почему геолокация HTML5 позволяет вам указывать ваше местоположение?Какова основная цель использования геолокации, поскольку вы также можете получить местоположение с IP-адресом.Есть ли разница между этими двумя методами?

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

Ответы [ 6 ]

13 голосов
/ 25 сентября 2011

HTML5 GeoLocation имеет тенденцию быть намного более точным, чем GeoLocation на основе IP.

GeoLocation на основе IP зависит от баз данных, связанных с интернет-провайдерами, чтобы выяснить, где вы находитесь.Это плохо работает, когда ваш провайдер обслуживает очень большую область и выдает динамические IP-адреса.Адрес в одном городе сегодня может быть на расстоянии 100 миль завтра.Кроме того, эти базы данных обычно не обновляются часто.Если ваш провайдер продает блоки IP-адресов или перемещает их в новый город, база данных все равно может неправильно думать, что вы где-то еще.

Местоположение HTML5 использует службы, предоставляемые вашим браузером, чтобы выяснить, где вы находитесь.Если ваш компьютер имеет встроенный GPS (например, на многих мобильных устройствах и некоторых ноутбуках), он будет знать точно , где вы находитесь.Это делает его гораздо более полезным для веб-приложений, которые имеют компонент навигации или местоположения.Для устройств без GPS это может быть очень хорошее приближение, основанное на близких известных беспроводных сигналах и других факторах, таких как отслеживание того, через что маршрутизатор проходит ваш компьютер при подключении к Интернету.Точная реализация зависит от компьютера, от того, какое аппаратное обеспечение у него имеется, и от того, как браузер решает что-то делать.

Например, когда я проверяю службу определения местоположения на основе IP, он говорит, что я вособый большой город в том же районе, в котором я живу, но на самом деле это около 50 миль.Когда я использую сервис на основе местоположения в HTML5, чтобы выяснить, где я нахожусь, он отключается только примерно на 20 блоков .

Если вы разрабатываете веб-приложение, для которого требуются данные о местоположении, попробуйте , если возможно, используя HTML5 GeoLocation.Настройте запасной вариант, чтобы в случае сбоя HTML5 можно использовать решение GeoIP.Таким образом, вы получите оптимальную точность на поддерживаемых браузерах и устройствах, но у вас останется решение, когда данные HTML5 недоступны.

Если вы использовали проект geolocation-javascript из Google Code, вы можете использовать следующий код:

//determine if device has geo location capabilities
if(geo_position_js.init()){
   geo_position_js.getCurrentPosition(success_callback,error_callback);
}
else{
   // use an AJAX request to look up the location based on IP address
}
8 голосов
/ 25 сентября 2011

Геолокация является лотом более точным, чем IP-адрес, хотя оба могут быть поддельными.

IP-адрес дает только страну и регион.

Геолокация дает вам:

  • Географические координаты (широта и долгота)
  • Скорость (если вы используете устройство, которое может это измерить; большинство планшетов и смартфонов могут)
  • Высота (это также зависит от устройства)
  • Градусы по часовой стрелке от севера (опять же, при условии, что устройство поддерживает это)

http://diveintohtml5.ep.io/geolocation.html содержит полезную информацию о геолокации и API геолокации HTML5. Вот Рекомендация кандидата W3C.

2 голосов
/ 25 сентября 2011

Получение местоположения по IP-адресу дает только расплывчатое местоположение (оно редко бывает точнее, чем в городе, и зачастую гораздо менее точно, в зависимости от вашего местоположения и интернет-провайдера).

Это также иногдасовершенно неточно: если я использую VPN для подключения к сети моей компании, я буду отображаться как находящийся в их офисе, потому что у меня будет IP-адрес из офиса, но я мог бы на самом деле подключаться из любой точки мира.

Геолокация HTML5 может быть гораздо более точной - если у вас есть GPS-приемник в вашем устройстве, то он абсолютно точный, но даже без этого в густонаселенных районах он может получить ваше местоположение с точностью до 20 метров или менеепутем сопоставления сигналов локальной беспроводной сети.И не имеет значения, как вы подключились, оно всегда будет точным.

Поскольку геолокация HTML5 настолько точна, это считается риском для конфиденциальности, поэтому в спецификации говорится, что вы должны дать разрешение перед сайтомможете использовать ваши данные геолокации.Кроме того, не все браузеры или машины могут предоставлять данные о геолокации.Таким образом, веб-сайт должен иметь возможность справляться с пользователями, которые его не предоставляют, и не могут полагаться на его предоставление.

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

Таким образом, они совершенно разные.

2 голосов
/ 25 сентября 2011

Получение местоположения пользователя через IP-адрес далеко не так точно.Расположение IP-адреса в основном зависит от местоположения фактического сервера, который может быть запрошен.Часто это далеко от фактического местоположения пользователя, поэтому он предоставляет только базовый регион.

С другой стороны, геолокация HTML5 более точна, но информация пользователя используется для определения местоположения и часто также для ускоренияс некоторыми другими вещами.Это основано на GPS устройства, если доступно, и в противном случае на информации, введенной пользователем.Очевидно, это гораздо точнее.Оба метода могут быть подделаны, хотя.

2 голосов
/ 25 сентября 2011

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

1 голос
/ 25 сентября 2011

Геолокация HTML5 дает клиенту (браузеру) возможность предоставить информацию о местонахождении машины.Это потенциально на несколько порядков точнее, чем местоположение IP.Например, клиент может установить фактическое оборудование GPS или иметь возможность триангуляции местоположения по точкам GSM или WiFi.С другой стороны, местоположение по IP очень грубое и где-то между не всегда точным и вводящим в заблуждение.

...