python shapely:检查多边形是否是多边形

Yai*_*air 13 python shapely

如何检查多边形实体是否实际上是多面?我试过了:

if len(polygon) > 1:
Run Code Online (Sandbox Code Playgroud)

但后来得到错误:

TypeError: object of type 'Polygon' has no len()
Run Code Online (Sandbox Code Playgroud)

我试过了Nill,None其他人没有用.

jms*_*usa 18

使用object.geom_type字符串(请参阅常规属性和方法).

例如:

if poly.geom_type == 'MultiPolygon':
    # do multipolygon things.
elif poly.geom_type == 'Polygon':
    # do polygon things.
else:
    # raise IOError('Shape is not a polygon.')
Run Code Online (Sandbox Code Playgroud)


Yai*_*air 6

好的,这对我有用:

print ('type = ', type(poly))
Run Code Online (Sandbox Code Playgroud)

输出:

type =  <class 'shapely.geometry.polygon.Polygon'>
Run Code Online (Sandbox Code Playgroud)

如果是多边形,则:

type =  <class 'shapely.geometry.multipolygon.MultiPolygon'>
Run Code Online (Sandbox Code Playgroud)

在多边形的情况下.

要检查变量是多边形还是多边形,我执行了以下操作:

if (isinstance(poly, shapely.geometry.multipolygon.MultiPolygon)):
    code...
Run Code Online (Sandbox Code Playgroud)