我试图找出两个多边形是否相互交叉。我所说的“交叉”是指它们的外部可以相互接触,但它们的内部不能:
只允许使用下面最右边的两个解决方案:
我试过使用匀称的相交或交叉(以及其他一些),但找不到有效的内置函数(它们通常与内部和外部有关)。
你看touches方法了吗?它似乎做你想做的事。
如果没有,您可以“自己动手”。例如,以下的一些变体:
def myTouches(poly1, poly2):
return poly1.intersects(poly2) and not poly1.crosses(poly2) and not poly1.contains(poly2)
Run Code Online (Sandbox Code Playgroud)
或者,假设您的形状只是多边形,您可以查看 . 返回的集合intersection。如果它仅包含LineStrings或单个,Point那么它们只是“接触”。如果它包含其他任何东西(多个Points和/或其他多边形),那么它们就会重叠。
编辑:
既然我看到了你的图片,disjoint除了touches.
| 归档时间: |
|
| 查看次数: |
2626 次 |
| 最近记录: |