如何计算一个多边形被另一个多边形覆盖的百分比

2024-04-19 01:22:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一组多边形,每一个都是python中的字典(坐标点符合非凸多边形),我想知道每一个多边形有多少%被其他多边形覆盖。在

我想举个例子让它更清楚。我在一个城市有不同的送货范围,我有那个城市不同街区的多边形。我的问题是我如何知道我所覆盖的每一个街区的百分比。在

我会很感激你的帮助


Tags: 字典多边形例子百分比我会
1条回答
网友
1楼 · 发布于 2024-04-19 01:22:36

你需要的东西有很多复杂的地方。在

  1. 点之间的纵向长度随着纬度的增加而减小。在
  2. 多边形是重叠的还是完全包含在另一个多边形中。在
  3. 是否有任何多边形与自身相交。在

在您的情况下,第1项在大多数情况下可以忽略。在

如果多边形不相交,并且一个多边形完全包含在另一个多边形中,则可以将以下javascript函数转换为python。在

function polygonArea(X, Y, numPoints) 
{ 
  area = 0;         // Accumulates area in the loop
  j = numPoints-1;  // The last vertex is the 'previous' one to the first

  for (i=0; i<numPoints; i++)
    { area = area +  (X[j]+X[i]) * (Y[j]-Y[i]); 
      j = i;  //j is previous vertex to i
    }
  return area/2;
}

其中X&Y是坐标数组。这个然后将两个多边形的结果用于%。在

如果任何一个坐标穿过本初子午线,所有多边形的坐标都必须标准化。在

如果需要实际面积,计算可能相当复杂。在

向函数的Darel Rex Finley确认。在

Here是谷歌地图上显示绿色多边形中粉红色多边形面积百分比的演示。这里粉红色的多边形在绿色多边形内。在

相关问题 更多 >