将点加入单点

时间:2013-02-24 08:37:29

标签: sql postgresql postgis spatial-query

我正在使用带有postgis的postgres用于空间数据。我有一个包含一组交叉点的表格,下面是表格的结构;

enter image description here

每个点代表两条道路之间的交叉点。但我有一些道路,三条道路相遇而不是两条道路,为此,正在创建3个不同的点。下图显示了该问题;

enter image description here

我想在一个点上收集三个不同的点,这个点代表所有三条道路的交汇点,而不是三条不同的道路。

我正在考虑使用st_collect和st_convexhull而不是st_centroid来从点中找到单个点。但我不能使它工作,可能我采取了错误的方法。

如何最好地解决这个问题?

1 个答案:

答案 0 :(得分:1)

这个例子展示了如何从3点计算质心点,而不使用st_convexhull,我不确定我理解你为什么要使用凸包。

with mypoints as (
    select 1 id, 1 cat, ST_MakePoint(5, 5) geom
    union all
    select 2 id, 1 cat, ST_MakePoint(5, 10) geom
    union all
    select 3 id, 1 cat, ST_MakePoint(8, 8) geom
)
select st_astext(st_centroid(st_collect(geom))) from mypoints group by cat;