如何在特定区域/范围内选择邮政编码?

时间:2013-01-07 09:14:36

标签: php range distance area zipcode

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

例如:

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

admin的邮政编码是39824

他需要通过邮政编码选择5公里范围内的人。 如何使用PHP或任何其他解决方案发生这种情况?

3 个答案:

答案 0 :(得分:1)

很简单 您只需要拉链码的纬度和经度,您想要获得zipcode的zipcode。如果你没有经度和latotude从谷歌获得它是免费的。你可以通过邮政编码轻松获得经纬度。

例如,您希望将邮政编码放在100英里的地方“H8t'

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

首先我向我的桌子写一个查询以获得纬度和经度

SELECT * FROM Tbl_Master_ZIPCodes WHERE ZIPcode ='H8T' 
获得纬度和经度后,我在下面写一个查询,以获得100英里范围内的所有邮政编码' H8T'

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 

答案 1 :(得分:0)

php/mysql zip code proximity search

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

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

答案 2 :(得分:0)

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

获得这些地理编码后,可以使用this site

中的代码示例计算距离