no-image

MYSQL中两点之间距离的计算

SQL实现:

SELECT
    round(
        6378.138 * 2 * asin(sqrt(pow(sin(
                        (A点的纬度 * pi() / 180 - B点的纬度 * pi() / 180) / 2
                    ),2) + cos(A点的纬度 * pi() / 180) * cos(B点的纬度 * pi() / 180) * pow(
                    sin((A点的经度 * pi() / B点的经度 * pi() / 180) / 2),2))
        ) * 1000
    )

具体操作
现在已知两点坐标为:天府广场(104.066546,30.657462) 天府公园(104.072704,30.431714),将这两点的坐标填入上面的sql为:

select  round(6378.138*2*asin(sqrt(pow(sin((
30.657462    #A点的纬度
*pi()/180-
30.431714    #B点的纬度
*pi()/180)/2),2)+cos(
30.657462    #A点的纬度
*pi()/180)
*cos(
30.431714     #B点的纬度  
*pi()/180)* pow(sin((
104.0665460   #A点的经度
*pi()/180-
104.072704    #B点的经度
*pi()/180)/2),2)))*1000)