PHP通过经纬度计算距离
SQL语句查询并计算距离
$lat = 40.003661; // 当前纬度 纬度最高90
$lng = 116.326510; // 当前经度
// latitude 纬度
// longitude 经度
$page= $page> 0 ? $page - 1 : $page;
$distance = "(2 * 6378.137* ASIN(SQRT(POW(SIN(3.1415926535898*(" . $lat . "-latitude)/360),2)+COS(3.1415926535898*" . $lat . "/180)* COS(latitude * 3.1415926535898/180)*POW(SIN(3.1415926535898*(" . $lng . "-longitude)/360),2))))*1000";
$sql = "select *," . $distance . " as juli from About where " . $where . " order by juli ASC, addtime DESC limit " . $page. "," . $limit;
$arr = Db::query($sql);
$count = count($arr);
php自定义函数计算距离
/* * 地图计算距离 * $lat1:起点纬度 * $lng1:起点经度 * * $lat2:终点纬度 * $lng2:终点经度 * */ function TX_Map_Api_distance($lat1, $lng1, $lat2, $lng2) { // 将角度转为狐度 $radLat1 = deg2rad($lat1); // deg2rad()函数将角度转换为弧度 $radLat2 = deg2rad($lat2); $radLng1 = deg2rad($lng1); $radLng2 = deg2rad($lng2); $a = $radLat1 - $radLat2; $b = $radLng1 - $radLng2; $s = 2 * asin(sqrt(pow(sin($a / 2), 2) + cos($radLat1) * cos($radLat2) * pow(sin($b / 2), 2))) * 6378.137; return bcadd($s, 0, 2); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术