根据经纬度计算多边形面积

该博客介绍了一种计算以经纬度定义的多边形面积的方法,通过求外接矩形面积与经纬度面积比例,得到以米为单位的多边形面积。提供了C++实现的代码示例,并指出此方法对于精度要求不高的应用,误差在1/1000左右。
摘要由CSDN通过智能技术生成

计算方法比较简单,主要是求出多边形外接矩形已米为单位面积和已经纬度为单位面积比值,然后用这个比值乘以多边形经纬度为单位面积,即可得出这个多边形以米为单位面积。

double GetArea(const vector<Coordinate>& ls)
{
    if (ls.size() < 4)
        return 0;

    double sum = 0;

    for (size_t i=0; i<ls.size()-1; ++i)
    {
        const Coordinate& p = ls[i];
        const Coordinate& q = ls[i+1];
        sum += (p.x + q.x) * (q.y - p.y);
    }

    return sum/2;
}

double GetPrjArea(const vector<Coordinate> &ls)
{
    if (ls.size() < 4)
        return 0;

    double dArea = GetArea(ls);
    dArea = abs(dArea);
    if (dArea == 0)
        return 0;

    double xmin, ymin, xmax, ymax;
    xmin = xmax = ls[0].x;
    ymax &

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值