【问题标题】:how to select zip codes in specific area/range?如何选择特定区域/范围内的邮政编码?
【发布时间】:2013-01-07 09:14:35
【问题描述】:

我有一个客户要求用户可以添加他/她的邮政编码,然后管理员可以选择特定区域范围内的用户

例如:

user - zip code
1    - 24533
2    - 56924
3    - 35993
4    - 13435

管理员的邮政编码是 39824

他需要按邮政编码选择 5 公里范围内的人。 使用 php 或任何其他解决方案怎么会发生这种情况?

【问题讨论】:

    标签: php range distance area zipcode


    【解决方案1】:

    非常简单 您只需要要获取邮政编码的邮政编码的纬度和经度。如果您没有经度和纬度,请从谷歌获取它是免费的。您可以通过邮政编码轻松获取纬度和经度。

    例如,您想获取 'H8t' 周围 100 英里的邮政编码

    我有一张包含纬度和经度信息的邮政编码表。

    首先我向我的表写入一个查询以获取纬度和经度

    SELECT * FROM Tbl_Master_ZIPCodes WHERE ZIPcode ='H8T' 
    

    在获得纬度和经度后,我在下面写了一个查询,以获取 'H8T' 100 英里范围内的所有邮政编码

    SELECT distinct zipcode, 
    3963 * (ACOS((SIN(45.456700/57.2958) * SIN(latitude/57.2958)) + (COS(45.456700/57.2958) * COS(latitude/57.2958) * COS(longitude/57.2958 - -73.712000/57.2958)))) AS distance 
    FROM Tbl_Master_ZIPCodes 
    WHERE 3963 * (ACOS((SIN(45.456700/57.2958) * SIN(latitude/57.2958)) + (COS(45.456700/57.2958) * COS(latitude/57.2958) * COS(longitude/57.2958 - -73.712000/57.2958)))) <= 100 Order by Distance 
    

    【讨论】:

      【解决方案2】:

      php/mysql zip code proximity search

      但是,就我个人而言,我喜欢为您提供邮政编码范围和距离计算解决方案。如果你有 lat 和 long 我会建议另一个,但这似乎与你需要的相似。

      http://www.micahcarrick.com/php-zip-code-range-and-distance-calculation.html

      【讨论】:

      • 第二个链接失效了。
      【解决方案3】:

      如果您收到带有邮政编码的地址,则可以查询Google geocode Api 以获取这些地址的地理编码。

      获得这些地理编码后,可以使用来自this site 的代码示例来计算距离

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-09
        相关资源
        最近更新 更多