两个经纬度之间的距离

admin2年前Laravel756


    public function haversineGreatCircleDistance($latitude1, $longitude1, $latitude2, $longitude2)

    {

        

       

         

        // 地球半径(单位:米)

        $earthRadius = 6371009;

        // 将角度转换为弧度

        $latitude1 = deg2rad($latitude1);

        $latitude2 = deg2rad($latitude2);

        $longitude1 = deg2rad($longitude1);

        $longitude2 = deg2rad($longitude2);

        // 计算经纬度差值

        $latitudeDelta = $latitude2 - $latitude1;

        $longitudeDelta = $longitude2 - $longitude1;

        // 计算Fn

        $y = sin($latitudeDelta / 2) ** 2 + cos($latitude1) * cos($latitude2) * sin($longitudeDelta / 2) ** 2;

        $distance = 2 * atan2(sqrt($y), sqrt(1 - $y)) * $earthRadius;

        $distance = substr($distance,0,8);

      

        $distance = bcdiv($distance, 1000, 2);

        return $distance;

    }


返回列表

上一篇:过滤违禁词

下一篇:手机号替换

相关文章

修改密码

/** * 修改密码 */publicfunction setpass(){    $type = request()->input('type');// 1...

过滤违禁词

/** * 内容验证 */public function check($content){    $count = 0; //违规词的个数    $list =...

下载文件

public function img_url() { $id = request()->param('id', 1122); $info = Db::name('...

php 优化

使用 gc_collect_cycles() 强制进行垃圾回收 PHP 的垃圾回收机制会自动释放不再使用的变量所占用的内存。然而,在某些情况下,尤其是在长时间运行的脚本(如 CLI...

抖音小程序登录

$code = request()->input('code');$nickname = request()->input('nickName');$ava...

微信退款v3

/** * 微信 退款 操作 */ public function refund($out_trade_no, $refund_money) { $time = time();...