我有一个查询,它返回二维数据:
SELECT POINT(value , extract(EPOCH FROM datetime)) AS pseudo_geom
FROM table
挖洞给我
pseudo_geom
---------------
(18,1439679940)
(29,1439680000)
(16,1439680060)
我想要做的是将这些数据转换成path
类型,以便能够通过接受几何类型的ST_Simplify来简化。
我的目标实际上是减少要在图上显示的点数。
我尝试使用path函数,并尝试使用point()、string_agg()和分组数据,但没有结果.
做这件事最简单和最短的方法是什么?
发布于 2015-11-06 16:31:20
我最终使用这个方案解决了这个问题(并不像最初预期的那样简单):
SELECT ST_X(geom) as value, ST_Y(geom) as datetime from (
select (ST_DumpPoints(simplifiedLine)).* as g1 from (
SELECT ST_Simplify(ST_MakeLine(the_geom.resulted), 15) as simplifiedLine FROM (
SELECT ST_MakePoint(value, extract(EPOCH FROM datetime)) as resulted FROM table
ORDER BY datetime ASC
) as the_geom
) as g
) as pt
希望这能帮助别人。
发布于 2015-11-05 12:55:51
在PostGIS中,path
称为line
。
您可以使用ST_MakeLine将您的点连接到一行。因此,可以这样扩展您的查询:
SELECT ST_Simplify(ST_MakeLine(POINT(value , extract(EPOCH FROM datetime)))) AS simplified_line
FROM table;
您应该考虑定义一个order by
子句。
https://dba.stackexchange.com/questions/120124
复制相似问题