ポリゴンエンティティが実際にマルチポリゴンであるかどうかを確認するにはどうすればよいですか? 私が試した:その後、python shapely:ポリゴンがマルチポリゴンであるかどうかを確認します
if len(polygon)>1:
が、エラーが出ます:
TypeError: object of type 'Polygon' has no len()
私はNill
、None
などを試した、何も働きました。
ポリゴンエンティティが実際にマルチポリゴンであるかどうかを確認するにはどうすればよいですか? 私が試した:その後、python shapely:ポリゴンがマルチポリゴンであるかどうかを確認します
if len(polygon)>1:
が、エラーが出ます:
TypeError: object of type 'Polygon' has no len()
私はNill
、None
などを試した、何も働きました。
[OK]を、これは私の仕事:
print ('type = ', type(poly))
出力を持つ:
type = <class 'shapely.geometry.polygon.Polygon'>
ポリゴンの場合
、および:
type = <class 'shapely.geometry.multipolygon.MultiPolygon'>
マルチポリゴンの場合には
変数が多角形または私はこれやったmultypolygonであるかどうかを確認するには:(general attributes and methodsを参照)
if (isinstance(poly, shapely.geometry.multipolygon.MultiPolygon)):
code...
これは、多ポリゴンにいくつのリングがあるかは分かりません。マルチポリゴンは1つの外部リングのみを持つことができます。あなたのユースケースでは問題ではないかもしれません。 – jpmc26
が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.')
あなたは、マニュアルを確認してください。ここで 'class MultiPolygon'について読むことができます:http://toblerity.org/shapely/manual.html#collections-of-polygons –
これは変数が複数ポリゴンの場合にのみ機能します。そうでない場合は、そのエラーが表示されます。このため、変数がポリゴンかマルチポリゴンかをチェックしたいのです。 – Yair