是否有一个标准的数据库记录映射城市/州/邮编到纬度/经度?我找到了这个数据库,以及USPS有一个简单(没有纬度/经度)的API,但是还有其他推荐的替代方案吗?
更新:也发现了http://www.geopostcodes.com/
是否有一个标准的数据库记录映射城市/州/邮编到纬度/经度?我找到了这个数据库,以及USPS有一个简单(没有纬度/经度)的API,但是还有其他推荐的替代方案吗?
更新:也发现了http://www.geopostcodes.com/
请注意,这些第三方城市/州/邮政编码转经/纬度数据库大多基于美国人口普查虎牙数据。从人口普查2000年开始,邮政编码数据被替换为ZCTA - 这是邮政编码的近似值。以下是来自人口普查网站(2011年)的解释:
ZIP Code Tabulation Areas(ZCTAs™)是美国人口普查局开发的一种新的统计实体,用于对Census 2000进行摘要统计。开发这个新的实体是为了克服精确定义每个Zip Code®所覆盖的土地面积困难。定义一个区域的范围是必要的,以便准确地对该区域的人口普查数据进行分析。
ZCTAs是U.S. Postal Service(USPS)邮政编码服务区域的广义区域表示。简单地说,每个ZCTA都是通过聚合使用给定邮政编码的地址的人口普查2000个数据块构建的,该ZCTA获得其ZCTA代码分配为其ZCTA代码。它们代表了在给定区域中发现的大多数USPS五位数字邮政编码。对于那些难以确定主导五位数字邮政编码的地区,将使用更高级别的三位数字邮政编码作为ZCTA代码。有关更多信息,请参阅ZCTA(FAQ)常见问题网页。
下面的链接是更新的说明(2013年):
http://www.census.gov/geo/reference/zctas.html
The OpenGeoCode.Org团队
添加于12/17/13:我们(免费)的州/城市/邮政编码数据集(CSV)可以在以下链接中找到。它是从公共领域的“政府”数据集派生的:
谷歌提供此功能作为查找。您的应用程序是否可以进行 ajax 调用?
这被称为 Web 服务。 http://code.google.com/apis/maps/documentation/webservices/index.html
您需要使用 Google 地理编码 API。 它很容易使用,只需调用此 URL: http://maps.googleapis.com/maps/api/geocode/json?address=sydney&sensor=false
将 "address=" 更改为您需要的任何内容(例如城市、州和邮政编码)
它还可以用 XML 格式回复。只需将 json 更改为 xml。 http://code.google.com/apis/maps/documentation/geocoding/
示例结果
{
"status": "OK",
"results": [ {
"types": [ "locality", "political" ],
"formatted_address": "Sydney New South Wales, Australia",
"address_components": [ {
"long_name": "Sydney",
"short_name": "Sydney",
"types": [ "locality", "political" ]
}, {
"long_name": "New South Wales",
"short_name": "New South Wales",
"types": [ "administrative_area_level_1", "political" ]
}, {
"long_name": "Australia",
"short_name": "AU",
"types": [ "country", "political" ]
} ],
"geometry": {
"location": {
"lat": -33.8689009,
"lng": 151.2070914
},
"location_type": "APPROXIMATE",
"viewport": {
"southwest": {
"lat": -34.1648540,
"lng": 150.6948538
},
"northeast": {
"lat": -33.5719182,
"lng": 151.7193290
}
},
"bounds": {
"southwest": {
"lat": -34.1692489,
"lng": 150.5022290
},
"northeast": {
"lat": -33.4245980,
"lng": 151.3426361
}
}
}
} ]
}
接下来你只需要打开results[0].geometry.location.lat
和results[0].geometry.location.lng
[编辑于2015年8月3日] 我之前提到的免费非商业邮政编码数据库已经迁移到softwaretools.com网站了。请注意:greatdata.com仍然提供企业级高级邮政编码数据。
小提示。大部分第三方城市/州/邮编转换成纬度/经度数据库都是基于美国人口普查Tiger数据。[安德鲁]
我是一家商用邮政编码数据库公司(GreatData)的开发者。对于低端数据,安德鲁的建议是正确的,并且如果您了解人口普查数据,获取数据也相当容易。只要知道一开始可能需要花费几个小时才能做到这一点。如果您不想自己处理工作,可以在这里获取我们的免费/非商业版本(基本上是安德鲁建议的带有次要增强功能的版本。每隔几个月更新一次)。
如果您想详细了解它缺少什么(更重要的是,大多数基于人口普查ZCTA数据的低端邮政编码数据缺少什么)与商业级别的邮政编码数据相比,请参见这里。
附:关于使用谷歌API的建议,我经常看到这个建议,但是除非您在谷歌地图中显示它,否则这违反了谷歌的服务条款。具体来说:"地理编码API只能与谷歌地图一起使用;禁止未在地图上显示地理编码结果"。您会发现StackOverFlow上有几个帖子中提到网站被封锁的情况。
希望这有益。