根据经纬度计算距离公式
其中:
(Lng1, lat1)
表示A点经纬度对应弧度,(lng2, lat2)
表示B点经纬度对应弧度;- $a=Lat1-Lat2$为两点纬度的弧度之差,$b=Lng1-Lng2$为两点经度的弧度之差;
- R为地球半径,$R=6378.137km$
- 公式计算出来的结果单位为千米。若将半径改以米为单位,则计算的结果单位为米;
- 计算经度与谷歌地图的距离经度差不多,相差范围在0.2米以下
- 这种计算方式一般都是直线距离
一般地图上显示的左边顺序为:纬度在前(范围-90 ~ 90),经度在后(范围-180 ~ 180)
使用SQL计算距离的代码
1 | SELECT *, |
使用JAVA计算距离的代码
1 | private static final double EARTH_RADIUS = 6378137;//赤道半径 |