首页 > 编程知识 正文

mysql 经纬度,mysql经纬度范围查询

时间:2023-05-06 16:13:30 阅读:280480 作者:3045

网上流行的大概有两种sql写法,发现两种计算的结果不一样,也就是有一种不是很准确,试了下百度在线api计算结果,发现第二种和百度在线api计算结果一致,应该是最正确的。这里简单的整理下这种。

原文作者: xingguang
原文链接: https://www.tiance.club/post/2178671104.html

用户当前定位经纬度 纬度: l a t ( 23.100571 ) , 经 度 : lat (23.100571) ,经度: lat(23.100571),经度:lng (113.389937)

SELECTid,latitude,longituderound((2 * 6378.137 * ASIN(SQRT(POW( SIN( PI()*( $lat- latitude )/ 360 ), 2 )+ COS( PI()* $lat / 180 )* COS( latitude * PI()/ 180 )* POW( SIN( PI()*( $lng- longitude )/ 360 ), 2 )))) * 1000 ) AS juli FROMtable(表名)ORDER BY`juli`

这里的计算结果是米为单位,如果想要km为单位的话直接去掉最后面的 "1000",这里我是做了四拾伍入,不保留小数点,直接取整数米,如果只是排序的话建议不加round和1000,提高sql执行效率。

另外还有php版的根据当前定位经纬度排序具体文章地址:
https://www.tiance.club/post/1713014064.html

原文作者: xingguang
原文链接: https://www.tiance.club/post/2178671104.html

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。