Почему HTML5 Geolocation?

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

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

Ответ 1

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

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

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

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

Если вы разрабатываете webapp, которому нужны данные о местоположении, попробуйте использовать GeoLocation HTML5, если это вообще возможно. Настройте резервную копию, так что если местоположение 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
}

Ответ 2

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

IP-адрес просто дает вам страну и общий регион.

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

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

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

Ответ 3

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

Ответ 4

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

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

Ответ 5

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

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

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

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

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

Итак, они совершенно разные.

Ответ 6

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