Рабочая демоверсия
с использованием javascript и jquery: - Рабочая демоверсия - просто нажмите «Выполнить» вверху страницы.
API GEO Yahoo
Некоторое время назад я делал нечто подобное, используя GEO API от Yahoo. Вы можете посмотреть местонахождение определенной широты и долготы с помощью следующего запроса YQL: -
select locality1 from geo.places where text="40.714623,-74.006605"
Вы можете увидеть XML, который возвращается в консоли YQL здесь
Чтобы получить этот XML из вашего кода javascript / php, вы можете передать запрос в виде строки GET, например: -
http://query.yahooapis.com/v1/public/yql?q=[url encoded query here]
Это вернет только тот XML, который вы можете проанализировать, используя parseXML()
метод jquery
Пример кода Jquery
Вот несколько примеров javascript, чтобы сделать то, что вы ищете: -
// Lat and long for which we want to determine if in NY or not
var lat = '40.714623';
var long = '-74.006605';
// Get xml fromyahoo api
$.get('http://query.yahooapis.com/v1/public/yql', {q: 'select locality1 from geo.places where text="' + lat + ',' + long + '"'}, function(data) {
// Jquery's get will automatically detect that it is XML and parse it
// so here we create a wrapped set of the xml using $() so we can use
// the usual jquery selecters to find what we want
$xml = $(data);
// Simply use jquery's find to find 'locality1' which contains the city name
$city = $xml.find("locality1").first();
// See if we're in new york
if ($city.text() == 'New York')
alert(lat + ',' + long + ' is in new york');
else
alert(lat + ',' + long + ' is NOT in new york');
});