Есть ли способ узнать местоположение пользователя без установки пользователем Google Gears?

StackOverflow https://stackoverflow.com/questions/313805

Вопрос

Я не хочу, чтобы пользователь устанавливал Google Gears, чтобы я мог показать ему его предполагаемое местоположение.Есть ли способ узнать местоположение без использования Google Gears?

Я нашел http://www.wipmania.com/de/blog/google-geolocation-api/ но это не является примером.

Это было полезно?

Решение

Обычно это называется IP-геолокацией.

Пример здесь .

Дело в том, что большинство сайтов (если вы планируете называть это веб-службой) взимают с вас плату. В противном случае соберите веб-сервис, который захватывает страницу геолокации, анализирует ее по адресу и возвращает эту информацию.

В PHP это работает довольно хорошо:

<?php
 if(isset(

Обычно это называется IP-геолокацией.

Пример здесь .

Дело в том, что большинство сайтов (если вы планируете называть это веб-службой) взимают с вас плату. В противном случае соберите веб-сервис, который захватывает страницу геолокации, анализирует ее по адресу и возвращает эту информацию.

В PHP это работает довольно хорошо:

<*>GET["ip"])){ echo geolocate(

Обычно это называется IP-геолокацией.

Пример здесь .

Дело в том, что большинство сайтов (если вы планируете называть это веб-службой) взимают с вас плату. В противном случае соберите веб-сервис, который захватывает страницу геолокации, анализирует ее по адресу и возвращает эту информацию.

В PHP это работает довольно хорошо:

<*>GET["ip"]); } function geolocate($ip){ $raw_html = file_get_contents("http://www.geody.com/geoip.php?ip=$ip"); if(preg_match('/Location:(.*)/',$raw_html,$matches)){ $location_raw = $matches[1]; //Get rid of pesky HTML tags $location = preg_replace("/<[^>]*>/","",$location_raw); return $location; }else{ return "ERROR"; } }

Другие советы

Google предоставляет способ узнать местоположение пользователя с помощью Загрузчик AJAX API.Это будет работать даже без установленных шестеренок.Просто включите тег script, указывающий на JsAPI:

<script type="text/javascript" 
   src="http://www.google.com/jsapi?key=ABCDEFG">
</script>

Когда приложение использует загрузчик AJAX API, загрузчик пытается определить географическое местоположение клиента на основе его IP-адреса.Если этот процесс завершится успешно, местоположение клиента, ограниченное до уровня metro, станет доступным в свойстве Google.loader.ClientLocation.Если процессу не удается найти соответствие, этому свойству присваивается значение null.

if (google.loader.ClientLocation){
  var center = new google.maps.LatLng(
    google.loader.ClientLocation.latitude,
    google.loader.ClientLocation.longitude
  );
  map.setCenter(center);
}

При заполнении объект google.loader.ClientLocation заполняется следующими свойствами детализации уровня metro:

  • ClientLocation.latitude — предоставляет широту с низким разрешением, связанную с IP-адресом клиента
  • ClientLocation.longitude — предоставляет долготу с низким разрешением, связанную с IP-адресом клиента
  • ClientLocation.address.city — предоставляет название города, связанного с IP-адресом клиента
  • ClientLocation.address.country — предоставляет название страны, связанное с IP-адресом клиента
  • ClientLocation.address.country_code — предоставляет название кода страны ISO 3166-1, связанного с IP-адресом клиента
  • ClientLocation.address.region — предоставляет название региона конкретной страны, связанное с IP-адресом клиента

С гео-сервисом или библиотекой следует обратить внимание на то, что они никогда не будут на 100% точными. Мы используем один из них, IP2Location , и он фактически является постоянным источником жалоб в наш отдел обслуживания клиентов. Мы ищем способы изменить поведение сайта и учитываем факторы его полного удаления.

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

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

Вы можете использовать HTML5 для этой цели. Это довольно просто. Здесь - пример.

Если ваши пользователи используют мобильные устройства, Xitfy также является бесплатным вариантом. У них есть небольшой клиент, который после того, как пользователь соглашается, может быть легко установлен на их телефон. Затем вы можете вызвать API, основанный на REST, чтобы получить их точный широту / долготу от gps / wifi или сотовой вышки.

Они поддерживают Android, Windows Mobile, BlackBerry и Symbian, которые охватывают практически все смартфоны.

Вы можете геокодировать IP-адрес с помощью этого простого кода. Работает отлично. Попробуйте это:

function functionname(Your IP Here)
{

    $ip = $ClientIP;

    $json = file_get_contents("http://api.easyjquery.com/ips/?ip=".$ip."&full=true");

    $json = json_decode($json,true);

    return $json;
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top