叉积算法计算多边形面积,算法的公式如下
具体算法描叙参考多边形面积计算_GISVertex的博客-CSDN博客
js代码如下
const getArea = (vertexes) => { let area = 0.0 //第一点坐标(x0,y0) const x0 = vertexes[0][0] const y0 = vertexes[0][1] //从第二点开始遍历节点 for (let i = 1; i < vertexes.length - 1; i++) { const ax = vertexes[i][0] const ay = vertexes[i][1] const bx = vertexes[i + 1][0] const by = vertexes[i + 1][1] //向量a const va_x = ax - x0; const va_y = ay - y0; //向量b const vb_x = bx - x0; const vb_y = by - y0; //叉乘 area += va_x * vb_y - vb_x * va_y } return Math.abs(area / 2) }
代码在https://download.csdn.net/download/zsm0131/87881705,跟这个差不多,只是多了个输入参数的赋值