tp5 getDistance函数计算两点经纬度之间距离

/**
     * 计算两点之间距离
     * @param float $lat1 起始纬度
     * @param float $lng1 起始经度
     * @param float $lat2 终点纬度
     * @param float $lng2 终点经度
     * @return string
     */
    function getDistance($lat1, $lng1, $lat2, $lng2)
    {
        $radLat1 = deg2rad(floatval($lat1));// deg2rad()函数将角度转换为弧度
        $radLat2 = deg2rad(floatval($lat2));
        $radLng1 = deg2rad(floatval($lng1));
        $radLng2 = deg2rad(floatval($lng2));
        $a = $radLat1 - $radLat2;
        $b = $radLng1 - $radLng2;
        $s = 2 * asin(sqrt(pow(sin($a / 2), 2) + cos($radLat1) * cos($radLat2) * pow(sin($b / 2), 2))) * 6378.137;
        if ($s * 1000 < 1000) {
            return round($s * 1000, 2) . "m";
        } else {
            return round($s, 2) . "km";
        }
    }

  

posted @ 2022-09-16 10:28  路三千  阅读(267)  评论(0)    收藏  举报