给定经度和纬度,如何找到国家

Posted

技术标签:

【中文标题】给定经度和纬度,如何找到国家【英文标题】:Given longitude and latitude, how to find country 【发布时间】:2013-01-25 06:28:22 【问题描述】:

如果我有纬度和经度,我如何找出该位置所在的国家/地区.. 如果发现Google Reverse Geocoding,但不幸的是,它需要该服务与谷歌地图一起使用,这不是我的情况..

是否有静态数据库或我可以参考的东西?如果我有一个静态数据库而不是服务会更好..

【问题讨论】:

【参考方案1】:

没有服务,工作量很大。

首先,您需要具有指定国家代码的国家多边形。一个国家平均有大约 50.000 个顶点。

那么这是一个简单的多边形点搜索。

使用空间索引来限制要搜索的国家多边形。 如果你必须考虑飞地,它会变得有点困难。

【讨论】:

谢谢!我实际上找到了这个 kml 文件here.. 这就是你所说的多边形数据,对吧? 不错!这是有用的,但在边界上它当然不是准确的。【参考方案2】:

您可以使用 Bing Maps Api,据我所知,它不需要显示地图,

http://dev.virtualearth.net/services/v1/geocodeservice/geocodeservice.asmx/ReverseGeocode?latitude=22.98&longitude=35.43637&key=[YOU_KEY]&culture=%22en-us%22&format=json

【讨论】:

【参考方案3】:

您可以使用geonames.org "Country code / reverse geocoding" 网络服务,例如:

http://api.geonames.org/countryCode?lat=47.03&lng=10.2&username=demo -> AT

【讨论】:

谢谢,这很有用! GeoNames 服务很棒,但它有 API 限制。每个注册用户 ID 每天 2000 个请求。

以上是关于给定经度和纬度,如何找到国家的主要内容,如果未能解决你的问题,请参考以下文章

如何获取给定纬度和经度的状态(没有地图显示并且需要存储)?

如何从经度和纬度中筛选国家?

给定 GPS 的地理位置,如何在给定的 x 米半径内找到纬度和经度

如何找到给定纬度/经度以北 x 公里的纬度/经度?

给定两个区域的经度和纬度,如何找到它们之间的距离(以米为单位)。如何在 SQL 中查询..?

给定(纬度,经度)点,距离和方位,如何获得新的经纬度