mysql中間 mysql中兩點之間距離的計算

2021-10-17 11:29:18 字數 1035 閱讀 8957

需求背景

最近做電商專案,要求跟根據使用者當前位置顯示距離使用者當前位置十五公里內的商品。 使用者當前位置由移動端(android,ios)傳遞到後台,商品表裡面儲存當前商品所在店鋪的經緯度。也就是已知兩個點的經緯度資訊求兩點間的距離。 對於兩點之間的距離,在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)

執行結果為:

這裡的單位是公尺,可以看出這裡兩點的距離大概為25公里,跟用高德地圖搜尋的距離相差不大。

職場中兩點體會

今日記下,也望自己時時牢記,不要逞能 1.大家對時間的敏感度是高於質量的,如果發出乙個文件給大家,時間是周五,寧可周五發乙個還為完善的,但也要發出去,事後仍有機會改善 若錯過時間,即使質量 遠 高過預期,也不會有好的回報 2.和老闆意見相左,如果兩人的想法差距半斤八兩,可以順從老闆的意思 如果你認為...

根據經緯度計算兩點距離 MySQL

先不說其他的,直接上sql語句吧 convert 6371 acos cos radians cos radians substring index a.coords,1 cos radians substring index substring index a.coords,1 1 radians...

1102 兩點距離

兩點距離 time limit 1000ms memory limit 65536k total submit 495 accepted 227 description 輸入4個絕對值在1000000以內的整數 x1,y1,x2,y2,輸出平面座標系中點 x1,y1 到點 x2,y2 之間的距離 保...