【问题标题】:Nearest zip code of a zip code?邮政编码的最近邮政编码?
【发布时间】:2011-04-11 22:12:59
【问题描述】:

我需要找到一个邮政编码中最近的 5 个邮政编码。 比如我有33304,需要找最近的,比如33309、33308……

是否有数据库或网络服务可以帮助我解决这个问题?

我想我必须建立自己的数据库才能做到这一点?我知道该怎么做,但万一它已经完成了......

【问题讨论】:

    标签: geolocation zipcode


    【解决方案1】:

    【讨论】:

    【解决方案2】:

    这个答案是为了响应最近请求美国邮政编码位置的赏金。

    美国人口普查局的web site 上有一个邮政编码列表(包括经纬度)。

    zip code tabulation areas 是一个 CSV,其中包含(如文件格式说明中所述)以及其他字段:

    Column 1    GEOID   Five digit ZIP Code Tabulation Area Census Code
    ...
    Column 6    INTPTLAT    Latitude (decimal degrees) First character is blank or "-" denoting North or South latitude respectively
    Column 7    INTPTLONG   Longitude (decimal degrees) First character is blank or "-" denoting East or West longitude respectively
    

    我将使用来自Census Bureau's county business patterns CSV 的数据交叉引用上述内容,以获取城市、州和县的名称。此文件格式被描述为包含(以及其他字段)(描述在您选择下载的文件中):

    ZIP             C       ZIP Code
    NAME            C       ZIP Code Name
    ...
    CITY            C       ZIP City Name
    STABBR          C       ZIP State Abbreviation
    CTY_NAME        C       ZIP County Name
    

    【讨论】:

      【解决方案3】:

      这是一个免费的网络服务,可以完全满足您的需求: http://www.zipwise.com/webservices/

      【讨论】:

      • zipwise 似乎比 geonames.org 更可靠。你知道他们存在多久了吗?
      • 据该网站称,“自 2002 年以来”
      【解决方案4】:

      我测试了地名,但发现它不够好。测试您的邮政编码附近的区域,您不会找到所有的邮政编码。这些有很好的结果,但还没有找到任何 API http://www.searchbug.com/tools/zip-radius.aspx

      【讨论】:

      • 您将找不到任何最新的免费数据源。根据我的经验,您必须为当前数据付费。
      【解决方案5】:

      对于最近的邮政编码,有两种方法:查找相邻的(相邻的)邮政编码和/或根据纬度和经度从一个邮政编码的中心到另一个邮政编码的中心的距离查找最近的邮政编码.

      要选择连续邮政编码方式,您需要邮政编码边界数据。 Alignstar 制造了一个我们非常满意的产品(我们转售它),但 ESRI 和其他几家公司也有很好的产品。我的公司 GreatData.com 开发了一个连续的县产品,并且可以开发一个连续的邮政编码产品,但到目前为止,没有人要求它。这可以是数据文件或 API。

      要根据质心(邮政编码的纬度/经度中心点)查找最近的邮政编码,您需要一个包含纬度/经度数据的邮政编码数据库(我们提供了一个,或者转到此处获取一些免费资源的链接: //http://uszipcodes.com/free-zip-code-lookup.htm。如果您只想要一个 API 而不是自己做的麻烦,请告诉我们。我们已经开始开发类似的 API,并将根据需求开发。

      通过质心这样做的一个警告:我们过去已经看到,如果您有一个大(或长)的相邻邮政编码,则该邮政编码的中心可能比另一个小邮政编码更远,所以您的5 个最近的列表可能会错过相邻的 ZIP。

      【讨论】:

        【解决方案6】:

        PostgreSQL 在 9.1 中有一个名为“KNN”的新特性。它专门用于“最近邻”距离搜索,并且我自己对其进行基准测试和测试,它非常快,并且可以用于邮政编码。这是quick introduction to KNN

        您还可以找到一个 thread about applying KNN to zipcodesmore recent follow-up

        【讨论】: