我允许用户绘制一个多边形,我想看看是否有一种方法可以根据纬度/经度路径计算面积。
以前有人做过吗?如果可能的话,我也想考虑地球的球形面积。
我允许用户绘制一个多边形,我想看看是否有一种方法可以根据纬度/经度路径计算面积。
以前有人做过吗?如果可能的话,我也想考虑地球的球形面积。
是的,这实际上只是一个数学问题,但我很乐意提供一些帮助。
所以,除非你有一个正多边形可以使用(听起来你没有)并且你需要考虑曲率,否则你将需要求解描述在球体上绘制的多边形的参数方程的二重积分.
或者您可以使用此方法http://www.mathsisfun.com/geometry/area-irregular-polygons.html 并忽略地球的球形性质...
您可能只想使用 google api。 计算在谷歌地图上绘制的多边形的面积
你可以做到(没有曲率)。我曾经遇到过同样的问题,并得出了这个基于几何的公式。
给定一个由 N 个二维点 P[i]:= (X[i], Y[i]), i 从 1 到 N 且 P[1] = P[N] (它是封闭的)的封闭多边形,那么该区域可以计算如下:
Area = Abs(Sum(Z value of cross product (P[i]-P[1]) X (P[i+1]-P[1])))/2
with i ranging from 2 to N-1
作为伪代码:
Area:= 0
for i:= 2 to N-1 do
Area:= Area + ((X[i]-X[1]) * (Y[i+1]-Y[1]) - (Y[i]-Y[1]) * (X[i+1]-X[1]))
Area:= Abs(Area)/2
此代码适用于 2D 上的非凸多边形、简单或带有子多边形的凸多边形。
如果点在 3D 中,您将仅使用 X 和 Y(设置 Z:= 0)来获得 2D XY 平面上 3D 多边形的投影区域。