Java-高德地图根据经纬度计算两坐标之间的直线距离

Java-高德地图根据经纬度计算两坐标之间的直线距离

最近在做毕设项目,项目打卡需要用到高德地图,看了下高德地图计算两坐标距离的方法,官网上提供的开发包中也有相关的方法。

/**
 *
 * @author tangyong
 * @date 2022/12/14 4:15 下午
 * @param longitude 位置1经度
 * @param latitude 位置1纬度
 * @param latitude2 位置2经度
 * @param latitude2 位置2纬度
 */
public  float calculateLineDistance(double longitude, double latitude,double longitude2, double latitude2) {
        double var2 = longitude;
        double var4 = latitude;
        double var6 = longitude2;
        double var8 = latitude2;
        var2 *= 0.01745329251994329D;
        var4 *= 0.01745329251994329D;
        var6 *= 0.01745329251994329D;
        var8 *= 0.01745329251994329D;
        double var10 = Math.sin(var2);
        double var12 = Math.sin(var4);
        double var14 = Math.cos(var2);
        double var16 = Math.cos(var4);
        double var18 = Math.sin(var6);
        double var20 = Math.sin(var8);
        double var22 = Math.cos(var6);
        double var24 = Math.cos(var8);
        double[] var27 = new double[3];
        double[] var28 = new double[3];
        var27[0] = var16 * var14;
        var27[1] = var16 * var10;
        var27[2] = var12;
        var28[0] = var24 * var22;
        var28[1] = var24 * var18;
        var28[2] = var20;
        return (float)(Math.asin(Math.sqrt((var27[0] - var28[0]) * (var27[0] - var28[0]) + (var27[1] - var28[1]) * (var27[1] - var28[1]) + (var27[2] - var28[2]) * (var27[2] - var28[2])) / 2.0D) * 1.27420015798544E7D);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值