0
点赞
收藏
分享

微信扫一扫

通过经纬度获取两地之间的距离

小龟老师 2022-01-12 阅读 65
java后端

最近项目中遇到了,在两个经纬度的数据之间获取之前的距离,查了半天没有找到,以下是我实现的代码

{
        String lon ="104.075931";
        String yg_lon ="106.513309";
        String lat ="30.651651";
        String yg_lat ="29.611235";
        final double EARTH_RADIUS = 6378137;
        // 纬度
        double lat1 = Math.toRadians(Double.parseDouble("".equals(lat)? "0.00" :lat));
        double lat2 = Math.toRadians(Double.parseDouble("".equals(yg_lat)? "0.00" :yg_lat));
        // 经度
        double lng1 = Math.toRadians(Double.parseDouble("".equals(lon)? "0.00" :lon));
        double lng2 = Math.toRadians(Double.parseDouble("".equals(yg_lon)? "0.00" :yg_lon));
        // 纬度之差
        double a = lat1 - lat2;
        // 经度之差
        double b = lng1 - lng2;
        // 计算两点距离的公式
        double distance = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) +
                Math.cos(lat1) * Math.cos(lat2) * Math.pow(Math.sin(b / 2), 2)));
        // 弧长乘地球半径, 返回单位: 米
        distance =  distance * EARTH_RADIUS;
        return distance;
    }
举报

相关推荐

0 条评论