web-dev-qa-db-ja.com

Shapelyでポリゴンがマルチポリゴンかどうかを確認します

ポリゴンエンティティが実際にマルチポリゴンであるかどうかを確認するにはどうすればよいですか?私はもう試した:

if len(polygon) > 1:

しかし、エラーが発生します:

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

NillNoneなどを試しましたが、何も機能しませんでした。

14
Yair

使用 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.')
21
jmsinusa

わかりました、これは私のために働きました:

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

出力:

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

ポリゴンの場合、および:

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

マルチポリゴンの場合。

変数がポリゴンであるかマルチポリゴンであるかを確認するには、次のようにします。

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