5
PostGISで「細長い」ポリゴンを特定する
私は、都市の近所など、広いエリアを表す一連のポリゴンを持っています。それらの間の大きな重なり合う領域を識別したいと思います。 しかし、問題があります。これらのポリゴンは、周囲に沿ってオーバーラップすることがあります(精度がほとんどないために描画されたため)。これは、私が気にしない長くて狭いオーバーラップを生成します。 ただし、ロバストポリゴンの大きなオーバーラップが発生する場合もあります。これは、近隣のポリゴンが別のポリゴンとオーバーラップする大きな領域を意味します。これらだけを選択したい。 オーバーラップのみの以下の図を参照してください。左下隅の青いポリゴンだけを選択したいと想像してください。 エリアを確認することもできますが、狭いエリアが非常に長く、青いポリゴンと同じ大きさのエリアになることがあります。面積/周長の比率を計算しようとしましたが、それでも結果はまちまちです。 私もを使用してみましST_MinimumClearanceたが、広い領域に狭いパーツがアタッチされていたり、2つの非常に近い頂点がある場合があります。 他のアプローチのアイデアはありますか? 最後に、@ Cyrilと@FGregで提案されているように、ネガティブバッファーを使用するのが最も効果的でした。 私は次のようなものを使用しました: ST_Area(ST_Buffer(geom, -10)) as neg_buffer_area 私の場合、単位はメートルなので、10 mのネガティブバッファーです。 狭いポリゴンの場合、この領域はゼロを返しました(また、ジオメトリは空になります)。次に、この列を使用して狭いポリゴンを除外しました。