Java 判断两个经纬度之间的直线距离

public class GeoUtil {
    
    /**
     * zhe-获取两个经纬度之间的直线距离
     * @date 2022/1/6 10:00
     * @param lonA 地点A的经度
     * @param latA 地点A的维度
     * @param lonB 地点B的经度
     * @param latB 地点B的维度
     */
    public static int getDistance(Double lonA, Double latA, Double lonB, Double latB){
        // 地球半径
        double R = 6371;
        //开始经度
        double lon1 = (Math.PI / 180) * lonA;
        //开始纬度
        double lat1 = (Math.PI / 180) * latA;
        //结束经度
        double lon2 = (Math.PI / 180) * lonB;
        //结束纬度
        double lat2 = (Math.PI / 180) * latB;
        // 两点间距离 km,如果想要米的话,结果*1000就可以了
        double km = Math.acos(Math.sin(lat1) * Math.sin(lat2) + Math.cos(lat1) * Math.cos(lat2) * Math.cos(lon2 - lon1)) * R;
        
        return (int) (km * 1000);
    }

}

相关文章:

  • 2021-12-14
  • 2022-12-23
  • 2022-12-23
  • 2021-12-19
  • 2021-11-27
  • 2021-11-21
  • 2021-09-01
  • 2022-12-23
猜你喜欢
  • 2021-09-16
  • 2022-12-23
  • 2022-01-16
  • 2022-01-15
  • 2022-12-23
  • 2022-02-05
  • 2022-01-08
相关资源
相似解决方案