Какой самый простой способ получить пользовательскую широту и долготу от ip-адреса
Я всегда нуждаюсь в местоположении пользователя в большинстве веб-проектов, над которыми я работаю. Я использовал Maxmind GeoIp, но это связано с тем, что вы импортируете свой набор данных и нуждаетесь в постоянном обновлении. Есть и другие бесплатные и платные услуги, но я просто хотел что-то простое, что я мог бы добавить на любой сайт за считанные секунды.
Итак, это своего рода наживка, потому что у меня есть простое решение, подробно описанное ниже, но я хотел посмотреть, использует ли кто-нибудь еще эту технику, и если есть какие-то лучшие решения или есть какие-то непредвиденные подводные камни.
Ответы
Ответ 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 и название организации, если известно.