4
合并所有相邻多边形
我想在宗地(多边形)层上进行邻接测试,并在它们符合特定条件(可能是大小)的情况下合并它们。根据下面的图片,我想合并多边形1、2、3和4,但不合并5。 我有两个问题: ST_TOUCHES如果仅接触角而不是线段,则返回TRUE。我想我需要ST_RELATE检查共享的线段。 理想情况下,我想将所有相邻的多边形合并为一个,但是我不确定如何缩放到两个以上,例如在一轮中合并1,2,3和4(可能合并更多的实际数据)。 我现在拥有的结构基于上的自我联接ST_TOUCHES。 玩具数据 CREATE TABLE testpoly AS SELECT 1 AS id, ST_PolyFromText('POLYGON ((0 0, 10 0, 10 20, 00 20, 0 0 ))') AS geom UNION SELECT 2 AS id, ST_PolyFromText('POLYGON ((10 0, 20 0, 20 20, 10 20, 10 0 ))') AS geom UNION SELECT 3 …