shapely is_valid 对于 3D 多边形

use*_*260 4 python gis shapely

我正在尝试验证平面上的一些多边形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
Run Code Online (Sandbox Code Playgroud)

egu*_*aio 8

问题在于shapely实际上忽略了 z 坐标。因此,据 shapely 所知,您正在构建一个多边形,其中的点[(1,0),(1,1), (1,1)]不足以构建多边形。

有关更多信息,请参阅另一个 SO 问题:python-polygon-does-not-close-shapely

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