Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 多边形面积的计算_Javascript_Google Maps Api 3 - Fatal编程技术网

Javascript 多边形面积的计算

Javascript 多边形面积的计算,javascript,google-maps-api-3,Javascript,Google Maps Api 3,我允许用户绘制一个多边形,我想看看是否有一种基于lat/lng路径计算面积的方法 以前有人这样做过吗?如果可能的话,我也想解释一下地球的球面面积。是的,这其实只是一个数学问题,但我很乐意帮点忙 所以,除非你有一个正多边形要处理(听起来你没有),并且你需要考虑曲率,否则你需要解一个参数方程的二重积分,这个参数方程描述在球体上绘制的多边形 或者你可以用这个方法 忽略地球的球形特性 您可能只想使用GoogleAPI。 你可以做到(没有曲率)。我曾经遇到过同样的问题,得出了这个基于几何的公式 给定一个由

我允许用户绘制一个多边形,我想看看是否有一种基于lat/lng路径计算面积的方法


以前有人这样做过吗?如果可能的话,我也想解释一下地球的球面面积。

是的,这其实只是一个数学问题,但我很乐意帮点忙

所以,除非你有一个正多边形要处理(听起来你没有),并且你需要考虑曲率,否则你需要解一个参数方程的二重积分,这个参数方程描述在球体上绘制的多边形

或者你可以用这个方法 忽略地球的球形特性

您可能只想使用GoogleAPI。 你可以做到(没有曲率)。我曾经遇到过同样的问题,得出了这个基于几何的公式

给定一个由N个2D点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
此代码适用于二维上非凸多边形的凸多边形,简单多边形或带有子多边形

如果点位于三维中,则仅使用X和Y(设置为Z:=0)获取二维X-Y平面上三维多边形的投影区域