编程 mysql 计算附近的人

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

###数据库的一种写法

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

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

推荐文章

CSS 媒体查询
2024-11-18 13:42:46 +0800 CST
jQuery `$.extend()` 用法总结
2024-11-19 02:12:45 +0800 CST
JavaScript 的模板字符串
2024-11-18 22:44:09 +0800 CST
php curl并发代码
2024-11-18 01:45:03 +0800 CST
JavaScript数组 splice
2024-11-18 20:46:19 +0800 CST
JavaScript 流程控制
2024-11-19 05:14:38 +0800 CST
PHP如何进行MySQL数据备份?
2024-11-18 20:40:25 +0800 CST
12 个精选 MCP 网站推荐
2025-06-10 13:26:28 +0800 CST
CSS Grid 和 Flexbox 的主要区别
2024-11-18 23:09:50 +0800 CST
Nginx 负载均衡
2024-11-19 10:03:14 +0800 CST
前端开发中常用的设计模式
2024-11-19 07:38:07 +0800 CST
Boost.Asio: 一个美轮美奂的C++库
2024-11-18 23:09:42 +0800 CST
2024年微信小程序开发价格概览
2024-11-19 06:40:52 +0800 CST
IP地址获取函数
2024-11-19 00:03:29 +0800 CST
ElasticSearch集群搭建指南
2024-11-19 02:31:21 +0800 CST
Golang 中你应该知道的 Range 知识
2024-11-19 04:01:21 +0800 CST
PHP 微信红包算法
2024-11-17 22:45:34 +0800 CST
JavaScript设计模式:装饰器模式
2024-11-19 06:05:51 +0800 CST
程序员茄子在线接单