Существует ли способ получить пользовательское местоположение, не имея пользовательского Google Gears установки?

Решение:
OrderByChild отсортировано по Firebase ( https://www.firebase.com/docs/web/guide/retrieving-data.html#section- упорядоченные данные )
Таким образом, я экспортировал базу данных (файл .json), отредактировал записи, используя не лексикографически ключ (проверьте ключи полученных данных ранее), сохранил и импортировал.

7
задан Yuval F 24 November 2008 в 10:10
поделиться

4 ответа

Это обычно называют Геолокацией IP.

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

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

В PHP это, кажется, работает вполне прилично:

<?php
 if(isset($_GET["ip"])){
   echo geolocate($_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";
   }
 }
9
ответ дан 6 December 2019 в 06:15
поделиться

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

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

Когда приложение использует Ajax загрузчик API, попытки загрузчика к гео-определяют местоположение клиента на основе, он - IP-адрес. Если этот процесс успешно выполняется, местоположение клиента, ограниченное по объему к уровню метро, сделано доступным в 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 заполняется со следующими свойствами гранулярности уровня метро:

  • 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-адресом клиента
10
ответ дан 6 December 2019 в 06:15
поделиться

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

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

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

5
ответ дан 6 December 2019 в 06:15
поделиться

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

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

1
ответ дан 6 December 2019 в 06:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: