算法:根据两点经纬度算两点距离

2018-03-30


这其实有一个求球面距离的公式,忘了,搜索到的……嘿嘿 

 

Java代码 

  1. // lat是纬度,lung是经度  

  2. //a=Lat1 – Lat2 为两点纬度之差  b=Lung1 -Lung2 为两点经度之差;  

  3. //6378.137(KM) 为地球半径 - -@  

  4.   

  5. //恩,结果也是km……  

  6.   

  7. //另外,google的api其实已经实现好了的  

  8.    

  9. // 计算两点距离    

  10. private final double EARTH_RADIUS = 6378137.0;      

  11. private double gps2m(double lat_a, double lng_a, double lat_b, double lng_b) {    

  12.        double radLat1 = (lat_a * Math.PI / 180.0);    

  13.        double radLat2 = (lat_b * Math.PI / 180.0);    

  14.        double a = radLat1 - radLat2;    

  15.        double b = (lng_a - lng_b) * Math.PI / 180.0;    

  16.        double s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2)    

  17.               + Math.cos(radLat1) * Math.cos(radLat2)    

  18.               * Math.pow(Math.sin(b / 2), 2)));    

  19.        s = s * EARTH_RADIUS;    

  20.        s = Math.round(s * 10000) / 10000;    

  21.        return s;    

  22.     }   


服务支持

我们珍惜您每一次在线询盘,有问必答,用专业的态度,贴心的服务。

让您真正感受到我们的与众不同!

0.044732s