给定纬度和经度,找到城市名称和该位置的美国邮政编码的最简单方法是什么。
(这类似于https://stackoverflow.com/questions/23572/latitude-longitude-database,除了我想在相反的方向转换。)
相关问题:获取经纬度对的街道地址
给定纬度和经度,找到城市名称和该位置的美国邮政编码的最简单方法是什么。
(这类似于https://stackoverflow.com/questions/23572/latitude-longitude-database,除了我想在相反的方向转换。)
相关问题:获取经纬度对的街道地址
提到的任何在线服务及其竞争对手都提供“反向地理编码”,可以满足您的要求 - 将经度/纬度坐标转换为某种街道地址。
如果您只需要邮政编码和/或城市,那么我会从美国人口普查局免费获得邮政编码数据库和市区数据库(由您的税金支付)。http://www.census.gov/geo/www/cob/zt_metadata.html。
从那里,您可以为空间数据提出自己的搜索算法,也可以使用空间数据库之一,例如 Microsoft SQL Server、PostGIS、Oracle Spatial、ArcSDE 等。
更新:2010 年人口普查数据可在以下网址找到: http ://www2.census.gov/census_2010/
这是要调用的 Web 服务。 http://developer.yahoo.com/search/local/V2/localSearch.html
这个网站有不错的网络服务,但不完全是你在这里要求的。 http://www.usps.com/webtools/
您有两个主要选择:
美国人口普查局在此处发布美国邮政编码地图。他们从他们最小的统计单位——人口普查街区——在大多数情况下对应于一个城市街区——来构建它。对于每个街区,他们会找到该街区最常见的邮政编码(大多数街区只有一个邮政编码,但靠近邮政编码边界的街区可能不止一个)。然后,他们将具有给定邮政编码的所有块聚合到一个称为邮政编码制表区的区域中。他们以 ESRI shapefile 格式发布了这些区域的地图。
我知道这一点是因为我编写了一个 Java 库和 Web 服务,它(除其他外)使用此地图返回给定纬度和经度的邮政编码。它是一种商业产品,因此并不适合所有人,但它快速、易于使用,并且无需 API 即可解决此特定问题。您可以在此处阅读有关此产品的信息:
http://askgeo.com/database/UsZcta2010
关于您在此处提供的所有地理产品:
与仅作为 Web API 提供的反向地理编码解决方案不同,因为运行您自己的服务非常困难,您可以在自己的服务器上运行此库,而不依赖于外部资源。
如果您对该服务的呼叫量太高,您绝对应该考虑获取自己的邮政数据集。在大多数情况下,这将提供您需要的所有信息,并且有大量用于索引位置数据的数据库工具(即 PostGIS for PostgreSQL)。
您可以在这里购买相当便宜的邮政编码订阅,其中包含经纬度信息:http ://www.zipcodedownload.com/
或者google的反向地理编码
http://maps.google.com/maps/geo?output=xml&q= {0},{1}&key={2}&sensor=true&oe=utf8
其中 0 是纬度 1 是经度
geonames 有一套广泛的 ws 可以处理这个(除其他外):
http ://www.geonames.org/export/web-services.html#findNearbyPostalCodes
http://www.geonames.org/export/web-services .html#findNearbyPlaceName
此处尚未列出的另一个反向地理编码提供商是OpenStreetMap:您可以使用他们的Nominatim搜索服务。
OSM 具有(可能?)完全用户可编辑(类似于维基)的额外好处,因此对所有这些数据具有非常自由的许可方案。想想开源地图数据。