通过两个点的经纬度计算距离


  1. private static final double EARTH_RADIUS = 6378.137 * 1000
  2.     private static double rad(double d) 
  3.     { 
  4.        return d * Math.PI / 180.0
  5.     } 
  6.     public static double GetDistance(double lat1, double lng1, double lat2, double lng2) 
  7.     { 
  8.        double radLat1 = rad(lat1); 
  9.        double radLat2 = rad(lat2); 
  10.        double a = radLat1 - radLat2; 
  11.        double b = rad(lng1) - rad(lng2); 
  12.        double s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a/2),2) +  
  13.         Math.cos(radLat1)*Math.cos(radLat2)*Math.pow(Math.sin(b/2),2))); 
  14.        s = s * EARTH_RADIUS ; 
  15.        s = Math.round(s * 10000) / 10000
  16.        return s; 
  17.     }