使用Python查找重叠多边形,并将其输出为特定要素类

数据为三个互相重叠但边界不同的多边形,用户使用overlaps只能输出1个重叠多边形
已邀请:

张国丽

赞同来自:

【解决办法】:
(1)关于overlaps,Python中定义如下:Indicates if the intersection of the two geometries has the same shape type as one of the input geometries and is not equivalent to either of the input geometries.
所以,用户数据中的3个多边形中只有多边形1和多边形2满足overlaps,多边形1和多边形3,多边形2和多边形3,重叠的地方和输入的几何相同,不满足overlaps的要求,这是“三个多边形互相重叠,但计算结果只有1个True”的原因所在。
     解决办法:使用intersect,判断getArea()>0,如果大于0,即满足条件,可以完全遍历并输出3个互相重叠的多边形。
geometry_intersect = geometry1.intersect(geometry2,4)
 b1= geometry_intersect.getArea()>0

参见:http://resources.arcgis.com/zh ... 00000

(2)采用两次记录,防止最后一个多边形遗漏的情况
 kqid1_xmmc = features[i][2]
 kqid2_xmmc = features[j][2]
print kqid1 + -- + kqid2 + -- OK
cursor.insertRow((kqid1, kqid2, datetime.datetime.now(),kqid1_xmmc,kqid2_xmmc,geometry1))
print kqid2 + -- + kqid1 + -- OK
cursor.insertRow((kqid2, kqid1, datetime.datetime.now(),kqid2_xmmc,kqid1_xmmc,geometry2))

要回复问题请先登录注册