美文网首页
地理多边形面积计算

地理多边形面积计算

作者: 很好就这样吧 | 来源:发表于2022-06-30 23:50 被阅读0次

有个使用leaflet.pm绘制多边形后计算面积的需求,
绘制后拿到的点阵信息如下:

[
  {lat:39.96493472183506,lng:116.29163503646852},
  {lat:39.967401572621604,lng:116.29169940948488},
  {lat:39.967401572621604,lng:116.29515409469606},
  {lat:39.964836052530494,lng:116.29513263702394}
]

搜索解决方法有以下几种:
1、使用数学公式计算;
2、使用第三方工具计算,如turf.js这是个地理空间分析库,可处理各种地图算法
官网:http://turfjs.org/
中文网:https://turfjs.fenxianglu.cn/
3、使用超图的地图服务计算,参考文章:https://www.lmlphp.com/user/57791/article/item/1461826/

由于我需求简单,所以选择了直接使用数学公式计算,可减少代码体积。
如果需求复杂,需要多种计算和判断的话,推荐turf.js,工具函数超多

// 1、使用数学公式计算
export function computeSignedArea(path) {
  let radius = 6371009
  let len = path.length;
  if (len < 3) return 0;
  let total = 0;
  let prev = path[len - 1];
  let prevTanLat = Math.tan(((Math.PI / 2 - prev.lat / 180 * Math.PI) / 2));
  let prevLng = (prev.lng) / 180 * Math.PI;
  for (let i in path) {
    let tanLat = Math.tan((Math.PI / 2 -
      (path[i].lat) / 180 * Math.PI) / 2);
    let lng = (path[i].lng) / 180 * Math.PI;
    total += polarTriangleArea(tanLat, lng, prevTanLat, prevLng);
    prevTanLat = tanLat;
    prevLng = lng;
  }
  let area = Math.abs(total * (radius * radius))
  return (area / 1000000).toFixed(2);  // 我的面积单位是平方公里
}
function polarTriangleArea(tan1, lng1, tan2, lng2) {
  let deltaLng = lng1 - lng2;
  let t = tan1 * tan2;
  return 2 * Math.atan2(t * Math.sin(deltaLng), 1 + t * Math.cos(deltaLng));
}

相关文章

  • 地理多边形面积计算

    有个使用leaflet.pm绘制多边形后计算面积的需求,绘制后拿到的点阵信息如下: 搜索解决方法有以下几种:1、使...

  • Turf 地图地理空间分析

    简介 地理空间分析库,处理各种地图算法 效果图 引入 计算沿线的点 计算区域面积 计算边界框 计算多边形 更多案例...

  • ArcGIS 计算面要素A中含有面要素B的比例

    问题描述:A为白色的泰森多边形面,B为粉色的城区面积,如何计算每个泰森多边形的城区面积占比? 步骤: 相交利用相交...

  • GEE面积过滤器

    计算多边形面积属性用于过滤多边形对象 主要功能 找出美国所有面积小于3000平方千米的县 代码 步骤分析 使用已有...

  • 计算多边形的面积

    参考:https://zhuanlan.zhihu.com/p/285544731[https://zhuanla...

  • codeforces-1C Ancient Berland Ci

    题意:给定一个正多边形三点坐标,求能组成的正多边形的最小面积。思路:1、根据三点坐标计算三边长度,然后计算该三点所...

  • 5分钟理解外积计算多边形面积

    在矢量结构下,面状物体用其轮廓线构成的多边形表示,对于简单多边形,设有n个顶点,面积计算公式为: 公式如何得来的呢...

  • 计算任意多边形的面积

    需求 线段:算出地图上线段的实际长度面积:算出地图上不规则多边形的实际面积 解决方案 1.线段的实际长度 直接使用...

  • 极限法的思考

    1. 极限的起源 古代人们在解决圆的面积或圆周率计算问题时,通常取圆的内接正多边形的面积来近似表示圆的面积,进而计...

  • DEM按照海拔提取等高线对应湖面方法总结

    处理思路 我们用DEM进行对应海拔的湖面面积及水量变化计算之时,可以用矢量多边形投影来获取研究区的面积; 具体步骤...

网友评论

      本文标题:地理多边形面积计算

      本文链接:https://www.haomeiwen.com/subject/vfiqbrtx.html