Mysql 根据经纬度计算距离

 

方式1:st_distance_sphere

st_distance_sphere函数返回以米为单位
SELECT *,
st_distance_sphere(point(lng,lat),point(116.3424590000,40.0497810000)) as juli 
FROM table ORDER BY juli ASC 


 

 



方式2:st_distance

 

st_distance返回的度
st_distance 计算的结果单位是度,需要乘111195(地球半径6371000*PI/180)是将值转化为米。

 

SELECT
    *,st_distance (
    point ( longitudes, latitudes ),
    point ( 113.264435, 23.129163 )) AS juli 
FROM
    zxh_distance 
ORDER BY
    juli ASC;

 

 

方式3 直接计算

 

复制代码
SELECT
    *,ROUND(
        6378.138 * 2 * ASIN(
            SQRT(
            POW( SIN(( 23.129163 * PI()/ 180-latitudes * PI()/ 180 )/ 2 ), 2 )+ COS( 23.129163 * PI()/ 180 )* COS( latitudes * PI()/ 180 )* POW( SIN(( 113.264435 * PI()/ 180-longitudes * PI()/ 180 )/ 2 ), 2 )))* 1000 
    ) AS juli 
FROM
    zxh_distance 
ORDER BY
    juli ASC
复制代码

 

posted @   小陈子博客  阅读(1514)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示