我想知道某个特定的地理位置是否属于“纽约,美国”,以便根据位置显示不同的内容。我只有相应位置的纬度和经度细节,是否有人知道处理这种情况的解决方案。
答案 0 :(得分:2)
工作演示
使用javascript和jquery: - Working demo - 只需按页面顶部的“运行”即可。
Yahoo的GEO API
我使用雅虎的GEO API做了类似的事情。您可以使用以下YQL查询查找特定纬度和经度的位置: -
select locality1 from geo.places where text="40.714623,-74.006605"
您可以在YQL控制台here
中看到返回的XML要从您的javascript / php代码中获取此XML,您可以将查询作为GET字符串传递,如: -
http://query.yahooapis.com/v1/public/yql?q=[url encoded query here]
这将返回您可以使用jquery的parseXML()
method
示例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');
});