PostGIS:同じ属性値を共有する隣接するフィーチャをマージする方法は?


9

ラインフィーチャを格納する大きなPostGISテーブルがあります。

互いに接続されていて、属性値が同じであるフィーチャをマージしたいと思います。以下は私が達成したいことの例です。

  • 最も外側のフィーチャ(黒と青のフィーチャ)は、属性値が同じであっても隣接していないため、マージされません
  • 緑と赤の機能は両方の条件に一致するため、統合されます
  • フィーチャーイエローは以前のままです。

SQLクエリでそれをどのように実現しますか? ここに画像の説明を入力してください

回答:


7

これを行うには、ST_ClusterIntersectingを使用します。

SELECT attr, unnest(ST_ClusterIntersecting(geom))
FROM lines
GROUP by attr;

@dbastonに感謝!近いうちに試してみて、お知らせします。
wiltomap

この関数ST_ClusterIntersecting()はPostGIS 2.2から利用できます...古いバージョンのソリューションはありますか?私はPostGIS 2.1.8を使用していますが、現時点ではPostGISをアップグレードできません。
wiltomap 2016

私が良いと思うことは何もない。……実際にこの状況が私を書く動機となったST_ClusterIntersecting。2.2より前のいくつかのアイデアはgis.stackexchange.com/q/94203/18189にあります
dbaston
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.