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

时间:2016-06-21 15:57:33

标签: python geolocation geocoding polygon

我有一组多边形,每一个都是python中的字典(符合非凸多边形的坐标点),我想知道每个多边形覆盖一个多边形的百分比。

我想举个例子让它更清楚。我在整个城市有不同的交付范围,我有该城市不同社区的多边形。我的问题是我怎么知道我所涵盖的每个社区的百分比。

我将不胜感激任何帮助

1 个答案:

答案 0 :(得分:0)

您需要的许多并发症。

  1. 点之间的纵向长度随纬度减小。
  2. 多边形重叠或完全包含在另一个中。
  3. 是否有任何多边形交叉。
  4. 在您的情况下,在大多数情况下可以忽略项目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&amp; Y是坐标数组。然后两个多边形的结果用于%。

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

    如果需要实际区域,计算可能会非常复杂。

    确认Darel Rex Finley的功能。

    Here 是Google地图上的一个演示,显示了绿色多边形内粉红色多边形的%面积。这里粉红色多边形在绿色多边形内。