3D 多边形形状 is_valid

shapely is_valid for polygons in 3D

我正在尝试验证一些在 is_valid 平面上的多边形,但我得到 Too few points in geometry component at or near point 对于 z 不恒定的多边形。

有没有办法验证这些其他多边形?

这是一个例子:

from shapely.geometry import Polygon


poly1 = Polygon([(0,0), (1,1), (1,0)])
print(poly1.is_valid)
# True

# z=1
poly2 = Polygon([(0,0,1), (1,1,1), (1,0,1)])
print(poly2.is_valid)
# True

# x=1
poly3 = Polygon([(1,0,0), (1,1,1), (1,1,0)])
print(poly3.is_valid) 
# Too few points in geometry component at or near point 1 0 0
# False

问题是 shapely 实际上忽略了 z 坐标。因此,就 shapely 而言,您正在构建一个多边形,其点 [(1,0),(1,1), (1,1)] 不足以构建多边形。

有关更多信息,请参阅其他 SO 问题:

恕我直言,shapely 不应该允许三维坐标,因为它会带来这种混乱。