我从中获取了邮政编码及其经度/纬度等的数据库 This page .它有以下字段:
ZIP, LATITUDE, LONGITUDE, CITY, STATE, COUNTY, ZIP_CLASS
数据在文本文件中,但我将其插入到 MySQL 表中。我现在的问题是,我如何利用上面的字段来计算用户可以在网站上输入的两个邮政编码之间的距离? PHP 中的工作代码将不胜感激
最佳答案
这是迈克的回答,带有一些关于魔数(Magic Number)的注释。对于 some test data,它似乎对我来说很好用:
function calc_distance($point1, $point2)
{
$radius = 3958; // Earth's radius (miles)
$deg_per_rad = 57.29578; // Number of degrees/radian (for conversion)
$distance = ($radius * pi() * sqrt(
($point1['lat'] - $point2['lat'])
* ($point1['lat'] - $point2['lat'])
+ cos($point1['lat'] / $deg_per_rad) // Convert these to
* cos($point2['lat'] / $deg_per_rad) // radians for cos()
* ($point1['long'] - $point2['long'])
* ($point1['long'] - $point2['long'])
) / 180);
return $distance; // Returned using the units used for $radius.
}
关于php - 在PHP中计算邮政编码之间的距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/407989/