从纬度,经度获取邮政编码?

Mat*_*rix 17 iphone

我想从用户当前位置(纬度,经度)获取邮政编码,我曾使用MKReverse Geocoder委托方法,但有时我无法获得基于纬度和经度(有效值)的邮政编码信息.MKReverseGeocoder还有其他选择吗?ZipCode数据库特定于国家,这就是我不想使用它们的原因.还有其他想法或线索吗?

谢谢

Dan*_*Ray 34

考虑 GeoNames Web服务.它是Creative Commons归属许可下的完整地理编码/反向地理编码套件.您可以下载他们的数据,也可以点击他们的网络服务.最好的是,他们不需要任何API密钥或许可证愚蠢 - 你只需点击他们的网络应用程序,然后就可以获得数据.

这里有一个例子:http://ws.geonames.org/findNearbyPostalCodesJSON?formatted=true&lat=36&lng=-79.08那你一份JSON对象为各地教堂山,NC领域的邮政编码.

它也是国际性的.这里的希福德,英国,唯一的区别是纬度/经度对我送:http://ws.geonames.org/findNearbyPostalCodesJSON?formatted=true&lat=50.5&lng=0.08

然后,你需要学习Web请求和解析JSON(如果您还没有这些东西抓地力),和你所有的设置.

  • 使用GeoNames会导致重大错误.他们返回最接近查询点的数据库中记录的邮政编码.如果他们的数据库中最近的记录使用不同的邮政编码,则会出错,这种情况会在您接近两个邮政编码之间的边界时发生.请参阅本页的答案,了解获取此信息的正确方法. (4认同)

Jam*_*s D 5

这实际上是一个棘手的问题.使用像GeoNames这样的地理编码解决方案可能会导致很多查询出现重大错误.这样做的原因是GeoNames通过在他们的数据库中查找最接近您的查询点的记录,然后返回他们在该点记录的邮政编码.当您的查询点位于其数据库中的记录之上时,这非常有用,但否则会导致错误.例如,如果他们最近的记录在几个街区之外的不同邮政编码,你会得到错误的答案.

美国人口普查局创建了邮政编码的地图:

https://www.census.gov/geo/reference/zctas.html

请在该页面上查看他们的说明.

我还参与了一个使用Census地图的项目,该项目提供了一个API,用于返回给定纬度和经度的邮政编码.它是在:

http://askgeo.com

我们提供可以在您自己的服务器上运行的Web API和Java库.图书馆表现出色.由于我们的网站提供的信息不仅仅是邮政编码,您可以在这里阅读我们的邮政编码服务:

http://askgeo.com/database/UsZcta2010

您在此处阅读了有关Web API的文档:

http://askgeo.com/#web-api

对于这种类型的查询,GeoNames方法存在根本缺陷.如果要查找包含给定查询点的多边形,则需要包含多边形的地图,并且需要空间索引来提供快速查找.GeoNames没有.AskGeo有两个.