2011-03-01 127 views
5

如何从纬度经度位置获取国家代码?经纬度位置的国家代码(不使用地理编码服务)

我知道有很多可用的地理编码服务,但它们没有满足我的要求,因为我的应用程序在上线后几个小时(许多地理编码请求)被阻止。

大多数地理编码服务也提供商业服务,但它们还不是一种选择,因为该项目在其中起始块。

我做了一些研究,并认为我找到了一个办法: 获取一个包含所有国家(多边形)边界的形状文件(或其他数据文件)。 接下来只需查看哪个多边形是lat/lng的位置即可。 最后从特定的多边形中读取元数据。

有没有人知道我可以得到一个形状文件(或其他格式),其中包括多边形(或只是线),显示世界上所有国家的边界​​?

或者有没有更简单的方法来解决这个问题?

回答

3

考虑到世界上的国家(多边形)的数量,您可能需要细分一组国家多边形,以便首先进行粗略过滤(例如,如果该点位于西半球和北半球,则只需检查北美,中美洲和加勒比国家,这可能会给你一个速度提升。

另外,请记住,许多国家由多个多边形的,只要记住这一点,你的代码。

我的天堂未使用这些来源中的任何一个来获取国家/地区边界数据,但结帐: http://geocommons.com/overlays/33578http://geospatial.edublogs.org/2010/06/29/world-country-boundary-files/

+0

团队感谢您的答复另一个来源。我刚刚运行了postgis,现在我正在尝试导入数据文件。 – 2011-03-03 13:07:44

0

我假设你想要ISO 3166-1 alpha-2国家代码(vs. FIPS 10 = 4,将于2012年12月结束)。 ISO列出了248个国家,地区和依赖项。维也纳迈克的做法是通过做一个快速过滤器来减少检查大陆听起来像一个很好的性能方法。

您将需要使用国家shapefile来了解lat/lng位于哪个国家(即,检查点是否在多边形内)。

有很多免费来源(但可能有商业许可限制)。下面是来自开源项目(OpenStreetMap的)

http://downloads.cloudmade.com/

安德鲁,在OpenGeoCode.Org

+0

我也可以谢谢你的回复。我将仔细研究哪些数据文件在openstreetmap上可用,这是我从过去知道的,但与前一段时间相比,他们似乎拥有更多的数据。 – 2011-03-03 13:11:06

相关问题