php - 在PHP中计算邮政编码之间的距离

标签 php mysql algorithm math distance

我从中获取了邮政编码及其经度/纬度等的数据库 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/

相关文章:

php - 记住我没工作

php - 使用 Docker 的 Nginx 504 网关超时

java - 在哪里初始化 Jersey REST 服务中的 MySQL 连接池?

java - 在java中找到所有正数的最小值

php - 如何更喜欢前缀而不是一般的 "like"结果?

php - cronjob执行php错误

mysql - 删除 ID 最低的条目

Mysql - 在价格表中选择低于,等于或高于的计数

python - 复杂度为 O(N) 的字符串中的回文切片数

SQL Numeric 的 C# 正确替代