我将 postgres 与 postgis 一起用于空间数据。我有一个包含一组交点的表格,下面是表格的结构;
每个点代表两条道路之间的交叉点。但是我有一些道路是三条道路相交而不是两条,为此,正在创建 3 个不同的点。下图显示了问题;
我想将三个不同的点收集到一个点中,该点将代表所有三条道路的交叉点,而不是三个不同的道路。
我正在考虑使用 st_collect 和 st_convexhull 而不是 st_centroid 从点中找到一个点。但我无法让它工作,可能我采取了错误的方法。
如何最好地解决这个问题?
最佳答案
这个例子展示了如何在不使用 st_convexhull 的情况下从 3 个点计算质心点,我不确定我是否理解你为什么要使用 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;
关于sql - 将点连接到一个点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15050053/