美文网首页
JAVA根据经纬度计算两点距离

JAVA根据经纬度计算两点距离

作者: 拒绝飞的鸟 | 来源:发表于2016-03-29 09:59 被阅读4817次

    开发附近的人需要用到计算两点距离。

    网上找到一个,是Google给出的一个公式:

    private static final  double EARTH_RADIUS = 6378137;//赤道半径
    private static double rad(double d){
        return d * Math.PI / 180.0;
    }
    public static double GetDistance(double lon1,double lat1,double lon2, double lat2) {
        double radLat1 = rad(lat1);
        double radLat2 = rad(lat2);
        double a = radLat1 - radLat2;
        double b = rad(lon1) - rad(lon2);
        double s = 2 *Math.asin(Math.sqrt(Math.pow(Math.sin(a/2),2)+Math.cos(radLat1)*Math.cos(radLat2)*Math.pow(Math.sin(b/2),2))); 
        s = s * EARTH_RADIUS;    
       return s;//单位米
    }
    

    然而认真查看百度API你会发现百度提供了一个计算工具,两者计算结果都差不多,还是百度提供的吧:

    //使用前需要在setContentView前初始化:
    SDKInitializer.initialize(getApplicationContext());
    
    double distance = DistanceUtil. getDistance(p1,p2);//单位米
    
    

    相关文章

      网友评论

          本文标题:JAVA根据经纬度计算两点距离

          本文链接:https://www.haomeiwen.com/subject/xzqslttx.html