Определение местоположения пользователя мобильного веб-сайта - PullRequest
4 голосов
/ 22 февраля 2012

Есть ли способ отследить местоположение (как можно точнее) пользователя мобильного веб-сайта?

Я знаю, что лучший способ найти кого-то - это через GPS, но я не уверен, возможно ли это через мобильный веб-сайт? Я также знаю, что вы можете приблизительно отслеживать местоположение пользователя через IP-адрес устройства, но я не уверен, что это лучший метод?

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

Веб-сайт, который я планирую создать, в идеале будет способен работать на устройствах смартфонов (таких как Android / iPhone / Blackberry / Windows Phone и т. Д.), Но также может работать на устройствах, не принадлежащих смартфонам, которые могут не иметь GPS встроенная технология для запроса текущего местоположения.

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

Заранее спасибо.

1 Ответ

9 голосов
/ 22 февраля 2012

Вы можете использовать API геолокации HTML5 на устройствах, которые его поддерживают. Он вернет наиболее точное доступное местоположение, которое может быть местоположением A-GPS или Wi-Fi.

См., Например, это руководство по использованию геолокации с JavaScript.

В основном вы проверяете поддержку геолокации и запрашиваете позицию:

if (navigator.geolocation) { // device can return its location
    navigator.geolocation.getCurrentPosition(function(position) {
         console.log(position.coords.latitude);
         console.log(position.coords.longitude);
    }
}

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

...