
Finding City and Zip Code for a Location给定纬度和经度,最简单的方法是查找城市名称和该位置的美国邮政编码。 (这类似于https://stackoverflow.com/questions/23572/latitude-longitude-database,除了我想沿相反的方向进行转换。) 相关问题:获取经纬度的街道地址 提及的任何在线服务及其竞争对手都提供"反向地理编码",您可以按照自己的要求进行操作-将lon / lat坐标转换为某种街道地址。 如果您只需要邮政编码和/或城市,则可以从美国人口普查局免费获得邮政编码数据库和市区数据库(由您的税金支付)。 http://www.census.gov/geo/www/cob/zt_metadata.html。 从那里,您可以针对空间数据提出自己的搜索算法,也可以使用空间数据库之一,例如Microsoft SQL Server,PostGIS,Oracle Spatial,ArcSDE等。
更新:2010年人口普查数据可在以下位置找到:
这是要调用的Web服务。
该站点具有正常的Web服务,但与您在此处所要求的不完全相同。 您有两个主要选择: 使用反向地理编码服务
使用邮政编码列表 美国人口普查在此处发布美国邮政编码地图。他们从最小的统计单位人口普查区构建该数据,在大多数情况下,其与城市街区相对应。对于每个块,他们找到该块上最常见的邮政编码(大多数块只有一个邮政编码,但是邮政编码之间的边界附近的块可能有多个)。然后,它们将具有给定邮政编码的所有块聚合到一个称为"邮政编码表区域"的区域中。他们以ESRI shapefile格式发布这些区域的地图。 我知道这一点是因为我编写了Java库和Web服务(除其他外)使用此地图返回给定纬度和经度的邮政编码。它是一种商业产品,因此并非所有人都可以使用,但是它快速,易于使用,并且无需API即可解决此特定问题。您可以在这里阅读有关此产品的信息: http://askgeo.com/database/UsZcta2010 以及这里有关您所有地理区域的信息: http://askgeo.com 与反向地理编码解决方案不同,反向地理编码解决方案只能作为Web API使用,因为运行自己的服务非常困难,您可以在自己的服务器上运行此库,而不必依赖外部资源。 或Google的反向地理编码 链接 http://maps.google.com/maps/geo?output=xml&q={0},{1}&key={2}&sensor=true&oe=utf8 其中0是纬度1是经度 您可以在以下位置购买价格相对便宜的带有lat和长信息的邮政编码:http://www.zipcodedownload.com/ 如果您致电该服务的电话流量过高,则绝对应该考虑获取自己的邮政数据集。在大多数情况下,这将提供您所需的所有信息,并且有很多数据库工具可用于为位置数据建立索引(例如,PostgreSQL的PostGIS)。 尚未在此处列出的另一个反向地理编码提供程序是OpenStreetMap:您可以使用其Nominatim搜索服务。 OSM(可能吗?)增加了额外的好处,就是用户可以完全编辑(类似于Wiki),因此对所有这些数据都拥有非常宽松的许可方案。考虑一下开源地图数据。 geonames具有广泛的ws集合,可以处理此问题(以及其他): http://www.geonames.org/export/web-services.html#findNearbyPostalCodes |