检查特定的地理位置(纬度和经度)是否属于“纽约”?

时间:2012-02-17 10:55:11

标签: php jquery geolocation latitude-longitude

我想知道某个特定的地理位置是否属于“纽约,美国”,以便根据位置显示不同的内容。我只有相应位置的纬度和经度细节,是否有人知道处理这种情况的解决方案。

1 个答案:

答案 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

解析的XML

示例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');

});