你可以使用 Haversine 公式来计算两个经纬度之间的直线距离。以下是一个示例代码:

public class DistanceCalculator {
    private static final int EARTH_RADIUS = 6371; // 地球半径,单位千米

    public static double calculateDistance(double lat1, double lon1, double lat2, double lon2) {
        // 将经纬度转换为弧度
        double radLat1 = Math.toRadians(lat1);
        double radLon1 = Math.toRadians(lon1);
        double radLat2 = Math.toRadians(lat2);
        double radLon2 = Math.toRadians(lon2);

        // 使用 Haversine 公式计算两点间的距离
        double a = Math.sin((radLat2 - radLat1) / 2) * Math.sin((radLat2 - radLat1) / 2) +
                   Math.cos(radLat1) * Math.cos(radLat2) *
                   Math.sin((radLon2 - radLon1) / 2) * Math.sin((radLon2 - radLon1) / 2);
        double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
        double distance = EARTH_RADIUS * c;

        return distance;
    }

    public static void main(String[] args) {
        double lat1 = 39.908722; // 第一个点的纬度
        double lon1 = 116.397499; // 第一个点的经度
        double lat2 = 31.230393; // 第二个点的纬度
        double lon2 = 121.473704; // 第二个点的经度

        double distance = calculateDistance(lat1, lon1, lat2, lon2);
        System.out.println("两点间的直线距离为:" + distance + "千米");
    }
}

上述代码中,calculateDistance 方法接受四个参数:第一个点的纬度(lat1)、经度(lon1)、第二个点的纬度(lat2)和经度(lon2)。它使用 Haversine 公式计算两点间的距离,并返回结果。

main 方法中,我们传入了两个经纬度坐标,然后调用 calculateDistance 方法计算两点间的直线距离,并打印结果。

Java 计算两个经纬度之间的直线距离 - Haversine 公式实现

原文地址: https://www.cveoy.top/t/topic/ptcN 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录