5

如何从经纬度位置获取国家代码?

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

大多数地理编码服务也提供商业服务,但它们还不是一种选择,因为该项目处于起步阶段。

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

有谁知道我在哪里可以获得包含显示世界上所有国家边界的多边形(或只是线条)的形状文件(或其他格式)?

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

4

2 回答 2

3

给定世界上国家(多边形)的数量,您可能希望先细分国家多边形集以进行粗过滤(例如,如果该点位于西半球和北半球,则只需检查 North American、Central美国和加勒比国家。这可能会提高您的速度。

另外,请记住,许多国家/地区由多个多边形组成,请在编写代码时牢记这一点。

我没有将任何这些来源用于国家边界数据,但结帐: http: //geocommons.com/overlays/33578http://geospatial.edublogs.org/2010/06/29/world-country-boundary -文件/

于 2011-03-01T18:50:17.867 回答
0

我假设您需要 ISO 3166-1 alpha-2 国家/地区代码(与 2012 年 12 月逐步淘汰的 FIPS 10=4 相比)。ISO 列出了 248 个国家、地区和属地。ViennaMike 的方法通过快速过滤以减少按大陆检查,这听起来像是一种很好的性能方法。

您将需要使用国家 shapefile 来了解纬度/经度所在的国家/地区(即检查点是否在多边形内)。

有很多免费资源(但可能有商业许可限制)。这是开源项目(openstreetmap)的另一个来源

http://downloads.cloudmade.com/

Andrew,OpenGeoCode.Org 团队

于 2011-03-02T18:36:48.177 回答