Hive計算兩個經緯度座標的直線距離

計算公式如下

6378137*2*ASIN(SQRT(POWER(SIN((ta.start_point_lat-ta.end_point_lat)*ACOS(-1)/360),2) +
COS(ta.start_point_lat*ACOS(-1)/180)*COS(ta.end_point_lat*ACOS(-1)/180)
*POWER(SIN((ta.start_point_lng-ta.end_point_lng)*ACOS(-1)/360),2))) 
as  distance

其中
start_point_lat 爲起點 latitude(緯度)
start_point_lng 爲起點 longitude (經度)
end_point_lat 爲終點 latitude(緯度)
end_point_lng 爲起點 longitude (經度)

結束和開始 不用區分前後順序。

計算結果單位是 米。
如果要取整,將整個式子放在 round() 括號內。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章