我想从用户当前位置(纬度,经度)获取邮政编码,我曾使用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这样的地理编码解决方案可能会导致很多查询出现重大错误.这样做的原因是GeoNames通过在他们的数据库中查找最接近您的查询点的记录,然后返回他们在该点记录的邮政编码.当您的查询点位于其数据库中的记录之上时,这非常有用,但否则会导致错误.例如,如果他们最近的记录在几个街区之外的不同邮政编码,你会得到错误的答案.
美国人口普查局创建了邮政编码的地图:
https://www.census.gov/geo/reference/zctas.html
请在该页面上查看他们的说明.
我还参与了一个使用Census地图的项目,该项目提供了一个API,用于返回给定纬度和经度的邮政编码.它是在:
我们提供可以在您自己的服务器上运行的Web API和Java库.图书馆表现出色.由于我们的网站提供的信息不仅仅是邮政编码,您可以在这里阅读我们的邮政编码服务:
http://askgeo.com/database/UsZcta2010
您在此处阅读了有关Web API的文档:
对于这种类型的查询,GeoNames方法存在根本缺陷.如果要查找包含给定查询点的多边形,则需要包含多边形的地图,并且需要空间索引来提供快速查找.GeoNames没有.AskGeo有两个.
| 归档时间: |
|
| 查看次数: |
22079 次 |
| 最近记录: |