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() 括号内。

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