首页  >  文章  >  数据库  >  如何使用纬度和经度计算两点之间的距离?

如何使用纬度和经度计算两点之间的距离?

Barbara Streisand
Barbara Streisand原创
2024-10-30 01:51:02865浏览

How Can I Calculate the Distance Between Two Points Using Latitude and Longitude?

使用纬度和经度计算点之间的距离

在许多情况下,有必要确定给定两点各自的距离纬度和经度坐标。一个典型的示例涉及从给定位置定位特定半径内的点。

要实现此目的,您可以利用数学公式来计算距离。考虑以下说明性函数:

<code class="php">function get_distance($latitude1, $longitude1, $latitude2, $longitude2, $unit = 'Mi') {
    $theta = $longitude1 - $longitude2;
    $distance = (sin(deg2rad($latitude1)) * sin(deg2rad($latitude2))) +
                (cos(deg2rad($latitude1)) * cos(deg2rad($latitude2)) *
                cos(deg2rad($theta)));
    $distance = acos($distance);
    $distance = rad2deg($distance);
    $distance = $distance * 60 * 1.1515;
    switch($unit) {
        case 'Mi':
            break;
        case 'Km':
            $distance = $distance * 1.609344;
    }
    return (round($distance, 2));
}</code>

或者,您可以使用 SQL 查询,使用如下公式计算半径内的距离:

<code class="sql">SELECT *,(((acos(sin((".$latitude."*pi()/180)) *
            sin((`Latitude`*pi()/180))+cos((".$latitude."*pi()/180)) *
            cos((`Latitude`*pi()/180)) * cos(((".$longitude."- `Longitude`)*
            pi()/180))))*180/pi())*60*1.1515
        ) as distance
        FROM `MyTable`
        HAVING distance >= ".$distance.";</code>

通过利用这些方法,您可以有效地根据经纬度坐标搜索指定半径内的点。

以上是如何使用纬度和经度计算两点之间的距离?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn