编程 mysql 计算附近的人

2024-11-18 13:51:11 +0800 CST views 2644

###数据库的一种写法

$lat="24.88718";
$lng="118.60347";
$fujin=\think\Db::name("zhiyuan")
        ->field("warehouseName,lat,lng,
        (  3959 * acos (cos ( radians({$lat}) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians({$lng}) )  + sin ( radians({$lat}) )  * sin( radians( lat ) )  )  
        ) AS distance")
       ->order("distance asc")
       ->select();

###函数写法

/**单位为米

 * @param $lat1

 * @param $lon1

 * @param $lat2

 * @param $lon2

 * @param float $radius  星球半径 公里

 * @return float

 */

function distance($lat1, $lon1, $lat2,$lon2,$radius = 6378.137)

{

    $rad = floatval(M_PI / 180.0);




    $lat1 = floatval($lat1) * $rad;

    $lon1 = floatval($lon1) * $rad;

    $lat2 = floatval($lat2) * $rad;

    $lon2 = floatval($lon2) * $rad;
    $theta = $lon2 - $lon1;
     $dist = acos(sin($lat1) * sin($lat2) +
     cos($lat1) * cos($lat2) * cos($theta)
 );




    if ($dist < 0 ) {

        $dist += M_PI;

    }

    $dist = $dist * $radius;

    return round($dist,2);

}
复制全文 生成海报 数据库 编程 地理信息

推荐文章

#免密码登录服务器
2024-11-19 04:29:52 +0800 CST
动态渐变背景
2024-11-19 01:49:50 +0800 CST
使用Rust进行跨平台GUI开发
2024-11-18 20:51:20 +0800 CST
如何在Rust中使用UUID?
2024-11-19 06:10:59 +0800 CST
Linux 常用进程命令介绍
2024-11-19 05:06:44 +0800 CST
FastAPI 入门指南
2024-11-19 08:51:54 +0800 CST
Vue中如何使用API发送异步请求?
2024-11-19 10:04:27 +0800 CST
Nginx 防止IP伪造,绕过IP限制
2025-01-15 09:44:42 +0800 CST
deepcopy一个Go语言的深拷贝工具库
2024-11-18 18:17:40 +0800 CST
js生成器函数
2024-11-18 15:21:08 +0800 CST
2025,重新认识 HTML!
2025-02-07 14:40:00 +0800 CST
nuxt.js服务端渲染框架
2024-11-17 18:20:42 +0800 CST
Nginx rewrite 的用法
2024-11-18 22:59:02 +0800 CST
mysql 优化指南
2024-11-18 21:01:24 +0800 CST
如何在Vue3中定义一个组件?
2024-11-17 04:15:09 +0800 CST
联系我们
2024-11-19 02:17:12 +0800 CST
乐观锁和悲观锁,如何区分?
2024-11-19 09:36:53 +0800 CST
Go 1.23 中的新包:unique
2024-11-18 12:32:57 +0800 CST
前端项目中图片的使用规范
2024-11-19 09:30:04 +0800 CST
使用Python提取图片中的GPS信息
2024-11-18 13:46:22 +0800 CST
程序员茄子在线接单