複数のポリゴンの交差点を取得したいです。Pythonのshapely
パッケージを使用すると、intersection
関数を使用して2つのポリゴンの交差を見つけることができます。複数のポリゴンの交差を取得するための同様の効率的な機能はありますか?
これが私の意味を理解するためのコードスニペットです。
from shapely.geometry import Point
coord1 = ( 0,0 )
point1 = Point(coord1)
circle1 = point1.buffer(1)
coord2 = ( 1,1 )
point2 = Point(coord2)
circle2 = point2.buffer(1)
coord3 = ( 1,0 )
point3 = Point(coord3)
circle3 = point3.buffer(1)
2つの円の交点はで見つけることができますcircle1.intersection(circle2)
。で3つすべての円の交差点を見つけることができますcircle1.intersection(circle2).intersection(circle3)
。ただし、このアプローチは、より多くのコードを必要とするため、多数のポリゴンに対応できません。任意の数のポリゴンを取り、それらの交差を返す関数が欲しいです。
おそらく、座標をディクショナリに保存し、itertoolsからのインポートの組み合わせを使用しながらループをループすることを考えています。私はすぐに掲載されます
—
ジギー
「それらの交差点」とはどういう意味ですか?少なくとも1つの他のポリゴンと交差するすべてのエリア、またはすべての入力が交差するエリアを意味しますか?
—
jpmc26
少なくとも1つではなく、すべてのポリゴンの交差を意味します。
—
破片
上記のことを明確にする必要があります(おそらく出力例を使用して)。答えのほとんどがあなたが望むように振る舞わないことはかなり確信しています。(そして、いくつかの回答者が誤解しているという事実は、質問が明確化を必要とする十分な証拠です。)
—
jpmc26
@ jpmc26 rtreeが使用されている回答に更新を追加しました。このアプローチは、より効率的でスケーラブルになりました。お役に立てれば!
—
アントニオファルチャーノ