JAVA 通过经纬度点(边界)计算面积

示例数据为美国 怀俄明州 边界 谷歌他的实际面积为253,300 平方公里(25.3 万 平方公里),谷歌地球地球计算为253,694.01 平方公里,以下算法计算的面积为254427.11970185622 




package com.ky.area;

import java.util.ArrayList;
import java.util.List;

public class PolygonAreaCalculator {
    // 将经纬度转换为弧度
    private static double toRadians(double degrees) {
        return degrees * Math.PI / 180;
    }

    // 使用 Haversine 公式计算两个经纬度点之间的距离
    private static double haversine(double lat1, double lon1, double lat2, double lon2) {
        final double R = 6371.0; // 地球半径,单位为公里
        double dLat = toRadians(lat2 - lat1);
        double dLon = toRadians(lon2 - lon1);

        double a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +
                   Math.cos(toRadians(lat1)) * Math.cos(toRadians(lat2)) *
                   Math.sin(dLon / 2) * Math.sin(dLon / 2);
        double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));

        return R * c; // 距离,单位为公里
    }

    // 计算多边形的
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值