根据经纬度计算两点距离(单位:km)

public class GeographicalSearchUtils {
 
 private static double EARTH_RADIUS = 6378.137;
 private static double rad(double d){
    return d * Math.PI / 180.0;
 }

 
 public static double getDistance(double latA, double lonA, double latB, double lonB){
  double distance=0;
  double radLat=rad(latA)-rad(latB);
  double radLon=rad(lonA)-rad(lonB);
  distance=2 * Math.asin(Math.sqrt(Math.pow(Math.sin(radLat/2),2) +
       Math.cos(rad(latA))*Math.cos(rad(latB))*Math.pow(Math.sin(radLon/2),2)));
  distance=distance*EARTH_RADIUS;
  distance=Math.round(distance*10000);
  distance=distance/10000;
  return distance;
 }
}

posted on 2013-03-14 14:01 Mr.lu 阅读(701) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航:
 
<2013年3月>
242526272812
3456789
10111213141516
17181920212223
24252627282930
31123456

导航

统计

常用链接

留言簿(2)

随笔档案

文章档案

搜索

最新评论

阅读排行榜

评论排行榜