Java-高德地图根据经纬度计算两坐标之间的直线距离
最近在做毕设项目,项目打卡需要用到高德地图,看了下高德地图计算两坐标距离的方法,官网上提供的开发包中也有相关的方法。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| /** * * @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); }
|