两个经纬度之间的距离

admin1年前Laravel625


    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;

    }


返回列表

上一篇:过滤违禁词

下一篇:手机号替换

相关文章

验证手机号

public function phone($phone){    $pat = '/'        . '^13...

excel 导出

header("Content-Type: application/vnd.ms-excel; name='excel'"); header("Content-Disposition:atta...

生成二维码

public function qrcode($uid){    require_once base_path() . '/public/phpqrcode/phpqrco...

腾讯云发送短信

<?phpnamespace App\Http\Controllers;use Illuminate\Http\Request;use Illuminate\Support\Facades\DB...

按照距离远近排序

   $distance = "ACOS(SIN(( $lat * 3.1415) / 180 ) *SIN((lat * 3.1415) / 180 ) +COS((...

不重复 的推荐码

public function getcode(){    do {        $code = rand(10000000, 99999...