Подтвердить что ты не робот

Какой самый простой способ получить пользовательскую широту и долготу от ip-адреса

Я всегда нуждаюсь в местоположении пользователя в большинстве веб-проектов, над которыми я работаю. Я использовал Maxmind GeoIp, но это связано с тем, что вы импортируете свой набор данных и нуждаетесь в постоянном обновлении. Есть и другие бесплатные и платные услуги, но я просто хотел что-то простое, что я мог бы добавить на любой сайт за считанные секунды.

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

4b9b3361

Ответ 1

Реализация, которую я использую в настоящее время, я видел в нескольких других вопросах, но я не видел ее в качестве выбранного ответа.

Я подробно описал это в своем блоге thenullreference.com, но здесь он кратко:


По существу, все, что вам нужно сделать, это загрузить загрузчик Google API script:

<script type="text/javascript" src="http(s)://www.google.com/jsapi"></script>

Затем у вас есть доступ к нескольким свойствам, которые дают вам подробную информацию о местоположении.

Объект, который вы хотите посмотреть, google.loader.ClientLocation

  • ClientLocation.latitude
  • ClientLocation.longitude
  • ClientLocation.address.city
  • ClientLocation.address.country
  • ClientLocation.address.country_code - код страны ISO 3166-1
  • ClientLocation.address.region - региональный регион в США, это состояние.

* Обратите внимание, что некоторые из них могут быть пустыми

Подробнее об этом API читайте здесь

Использует ли кто-нибудь еще это? У кого-нибудь есть что-то, что они используют, так просто и лучше? Существуют ли проблемы с этим подходом?

Я не знаю о том, насколько я уверен в этом решении, но я думаю, что Google сохранит его и, вероятно, очень хорошо.

Ответ 2

Я использовал wipmania бесплатный сервис JSONP, я не совсем уверен в его точности, но он очень прост в использовании:

// an example using jQuery
$.getJSON('http://api.wipmania.com/jsonp?callback=?', function (data) { 
  alert('Latitude: ' + data.latitude + 
        '\nLongitude: ' + data.longitude + 
        '\nCountry: ' + data.address.country); 
});

Отметьте фрагмент здесь.

Ответ 3

Я использую MaxMind GeoIP City/ISP/Organization (Web Service), это стоит $20 за 50 000 запросов и всегда обновляется (см. http://www.maxmind.com/app/web_services#city). Мне нравится то, что мне не нужно беспокоиться о обновлениях баз данных, так как все это делается на сервере.

Я использую PHP для отправки IP-адреса клиента, и взамен я получаю широту, долготу, а также другую полезную информацию, такую ​​как код региона, город, столичный код, код зоны, страну, ISP и название организации, если известно.