编程 mysql 计算附近的人

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

###数据库的一种写法

$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);

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

推荐文章

Go 协程上下文切换的代价
2024-11-19 09:32:28 +0800 CST
批量导入scv数据库
2024-11-17 05:07:51 +0800 CST
linux设置开机自启动
2024-11-17 05:09:12 +0800 CST
Vue 3 路由守卫详解与实战
2024-11-17 04:39:17 +0800 CST
Python 基于 SSE 实现流式模式
2025-02-16 17:21:01 +0800 CST
维护网站维护费一年多少钱?
2024-11-19 08:05:52 +0800 CST
PHP来做一个短网址(短链接)服务
2024-11-17 22:18:37 +0800 CST
解决python “No module named pip”
2024-11-18 11:49:18 +0800 CST
免费常用API接口分享
2024-11-19 09:25:07 +0800 CST
MySQL死锁 - 更新插入导致死锁
2024-11-19 05:53:50 +0800 CST
Claude:审美炸裂的网页生成工具
2024-11-19 09:38:41 +0800 CST
回到上次阅读位置技术实践
2025-04-19 09:47:31 +0800 CST
一个数字时钟的HTML
2024-11-19 07:46:53 +0800 CST
JavaScript设计模式:桥接模式
2024-11-18 19:03:40 +0800 CST
markdowns滚动事件
2024-11-19 10:07:32 +0800 CST
避免 Go 语言中的接口污染
2024-11-19 05:20:53 +0800 CST
程序员茄子在线接单