美文网首页
2020-08-05 java 计算gps 两个坐标之间的距离

2020-08-05 java 计算gps 两个坐标之间的距离

作者: lancelot123 | 来源:发表于2020-09-25 14:43 被阅读0次
/**
 * by llf
 */
public class GoogleMapHelper {

    private static double EARTH_RADIUS = 6378.137;  //地球半径
    //将用角度表示的角转换为近似相等的用弧度表示的角 Math.toRadians
    private static double rad(double d)
    {
        return d * Math.PI / 180.0;
    }

    /**
     * 谷歌地图计算两个坐标点的距离
     * @param lng1  经度1
     * @param lat1  纬度1
     * @param lng2  经度2
     * @param lat2  纬度2
     * @return 距离(米)
     */
    public static double getDistance(double lng1, double lat1, double lng2, double lat2)
    {
        double radLat1 = Math.toRadians(lat1);
        double radLat2 = Math.toRadians(lat2);
        double a = radLat1 - radLat2;
        double b = Math.toRadians(lng1) - Math.toRadians(lng2);
        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;
        s = Math.round(s * 1000);
        return s;
    }

    public static void main(String[] args) {
        // 北湖十六峯 114.51074,36.668875
        // 邯郸信息工程学校 114.506859,36.664793
        double dist1 = getDistance(114.51074,36.668875, 114.506859,36.664793) ;

        System.out.println("两点相距:" + dist1 + "米");

    }
}

相关文章

网友评论

      本文标题:2020-08-05 java 计算gps 两个坐标之间的距离

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