检查多边形是否为 Shapely 中的多多边形

Check if a polygon is a multipolygon in Shapely

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

if len(polygon) > 1:

但随后出现错误:

TypeError: object of type 'Polygon' has no len()

我试过 NillNone 和其他方法,都没有用。

好的,这对我有用:

print ('type = ', type(poly))

输出:

type =  <class 'shapely.geometry.polygon.Polygon'>

如果是多边形,并且:

type =  <class 'shapely.geometry.multipolygon.MultiPolygon'>

如果是多面体。

要检查变量是多边形还是多多边形,我这样做了:

if (isinstance(poly, shapely.geometry.multipolygon.MultiPolygon)):
    code...

使用 object.geom_type 字符串(参见 general attributes and methods)。

例如:

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

你可以简单地做到这一点。

import shapely.geometry.multipolygon as sh

if isinstance(polygon, sh.MultiPolygon):
    print('yes I am')