首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在postgis中查找沿点的路径长度

在postgis中查找沿点的路径长度
EN

Stack Overflow用户
提问于 2012-05-16 02:31:32
回答 1查看 2.2K关注 0票数 1

我有一个postgis数据库(postgres 8.4.11,postgis 1.5.2),里面有gps-观察值,我想要计算一些旅行距离。

我计算了一个小时后从一个点到另一个点的行进距离,使用select observedid,ST_Distance(p1.shape_utm,p2.shape_utm) from gpspoint p1,gpspoint p2 where p2.datetime=p1.datetime+interval '1 hour‘

(当然还有一点,但这是其中的距离部分)我将它定义为一个视图,以便可以轻松地执行select * from movement_view where observedid=42

问题1:是否可以创建视图,以便我也可以定义时间间隔?

例如select * form movement_view where observedid=42 and interval='15分钟‘?

问题2:在SQL/postgis中是否可以计算一段时间内行驶的总距离?我有一个gpspoint每5秒,并想计算旅行距离,例如1小时以下的每个gps点。我可以使用与上面相同的方法计算每个点的行进距离,然后我也许能够使用sum()函数,但是如何计算呢?

表定义: id整数,

gpsstatus状态字符(2),

不带时区的datetime时间戳,

最新数字(9,6),

lon数字(9,6),

alt数字(9,4),

时间整数,

数据文件integer整数,

形状几何,

速度双精度,

dist双精度

shape_utm几何,

lokalitet字符(128),

cowid整数

Id:主键有datetime,lokalitet,cowid,gpsstatus,gist-index on shape和shape_utm的索引。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-23 17:59:25

问题1:

代码语言:javascript
复制
CREATE VIEW movement_view AS
SELECT observedid, ST_Distance(p1.shape_utm,p2.shape_utm) as distance, p1.datetime as datetime1, p2.datetime as datetime2
FROM gpspoint p1, gpspoint p2;

SELECT * from movement_view where observedid = 42 and datetime2 = datetime1 + interval '15 minutes'

问题2:

从您的点创建一条直线并计算长度:

代码语言:javascript
复制
SELECT hours,  st_Length(ST_MakeLine(t.shape_utm)) as distance FROM
    (SELECT date_trunc('hour', datetime::timestamp) as hours, shape_utm FROM gpspoint order by datetime) as t
GROUP by hours
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10606730

复制
相关文章

相似问题

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