首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用PostGIS计算图形数据

用PostGIS计算图形数据
EN

Database Administration用户
提问于 2015-11-04 21:03:04
回答 2查看 514关注 0票数 0

我有一个查询,它返回二维数据:

代码语言:javascript
运行
复制
SELECT POINT(value , extract(EPOCH FROM datetime)) AS pseudo_geom
FROM table

挖洞给我

代码语言:javascript
运行
复制
pseudo_geom
---------------
(18,1439679940)
(29,1439680000)
(16,1439680060)

我想要做的是将这些数据转换成path类型,以便能够通过接受几何类型的ST_Simplify来简化。

我的目标实际上是减少要在图上显示的点数。

我尝试使用path函数,并尝试使用point()、string_agg()和分组数据,但没有结果.

做这件事最简单和最短的方法是什么?

EN

回答 2

Database Administration用户

回答已采纳

发布于 2015-11-06 16:31:20

我最终使用这个方案解决了这个问题(并不像最初预期的那样简单):

代码语言:javascript
运行
复制
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

希望这能帮助别人。

票数 1
EN

Database Administration用户

发布于 2015-11-05 12:55:51

在PostGIS中,path称为line

您可以使用ST_MakeLine将您的点连接到一行。因此,可以这样扩展您的查询:

代码语言:javascript
运行
复制
SELECT ST_Simplify(ST_MakeLine(POINT(value , extract(EPOCH FROM datetime)))) AS simplified_line
FROM table;

您应该考虑定义一个order by子句。

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/120124

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档