ポリゴン間のオーバーラップを分割し、PostGISを使用して最も近いポリゴンに割り当てますか?
私の質問は、私がを使用していないことを除いて、ポリゴン間の素朴なセットへの未回答の分割オーバーラップにかなり関連していshapelyます。PostgreSQL10でPostGIS 2.4を使用しています。 管理ユニットのマルチポリゴンを含むテーブルがあります。形状は陸域のみをカバーしています。私の目標は、それらを水中に一定距離伸ばすことです。 現在のポリゴンを水中に拡張するために、バッファを実行してから、テーブル内の他のすべてのジオメトリを差し引きます。これにより、ジオメトリに隣接するバッファーがクリップされ、レイヤーに現在何もないバッファーが保持されます。だから、次のようなもの: SELECT c1.name , ST_Difference( ST_Buffer( ST_Union(c1.geom), 250 ) , (SELECT ST_Union(c2.geom) FROM foo.county AS c2 WHERE c2.name <> c1.name) ) FROM foo.county AS c1 GROUP BY c1.name; ただし、これはもちろん、2つのポリゴンが水の端で互いに出会うオーバーラッピングバッファーと、狭い海峡をまたがって与えます。 (付録のような半島のため、ジオメトリのポイントが赤よりも青に近くないため、左側の小さな紫のスライバーは完全に赤のポリゴンに割り当てられていることに注意してください。) これは私が行き詰まっているところです。オーバーラップ(紫の部分)を、バッファリングされていないポリゴンと等距離の線に沿って2つのばらばらのポリゴンにカットし、それらのスリーバーをバッファリングされた郡から減算します。 バッファが3つ以上重なるケースはないと思います。そこに着いたら、私はその橋を渡ります。 ST_VoronoiPolygonsポイントの代わりにポリゴンの周りを使用するのと似ていますが、まったく同じではないような匂いがします。 これは、理想的には、PostGIS関数として、QGISジオプロセシング機能として、または一部のPythonライブラリに存在しますか?