1

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

在此处输入图像描述

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

在此处输入图像描述

我想将三个不同的点收集到一个点中,该点将代表所有三条道路的交叉点,而不是拥有三条不同的道路。

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

如何最好地解决这样的问题?

4

1 回答 1

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;
于 2013-02-25T20:56:09.163 回答