Java根据坐标经纬度计算两点距离(5种方法)、校验经纬度是否在圆 多边形区域内的算法推荐 |
您所在的位置:网站首页 › 经纬坐标如何计算距离的公式 › Java根据坐标经纬度计算两点距离(5种方法)、校验经纬度是否在圆 多边形区域内的算法推荐 |
@return 返回的距离,单位m */ public static double getDistance3(double longitude1, double latitude1, double longitude2, double latitude2) { // 经纬度(角度)转弧度。弧度作为作参数,用以调用Math.cos和Math.sin // A经弧度 double radiansAX = Math.toRadians(longitude1); // A纬弧度 double radiansAY = Math.toRadians(latitude1); // B经弧度 double radiansBX = Math.toRadians(longitude2); // B纬弧度 double radiansBY = Math.toRadians(latitude2); // 公式中“cosβ1cosβ2cos(α1-α2)+sinβ1sinβ2”的部分,得到∠AOB的cos值 double cos = Math.cos(radiansAY) * Math.cos(radiansBY) * Math.cos(radiansAX - radiansBX) + Math.sin(radiansAY) * Math.sin(radiansBY); // System.out.println("cos = " + cos); // 值域[-1,1] // 反余弦值 double acos = Math.acos(cos); // System.out.println("acos = " + acos); // 值域[0,π] // System.out.println("∠AOB = " + Math.toDegrees(acos)); // 球心角 值域[0,180] // 最终结果 return EARTH_AVG_RADIUS * acos; } |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |