繁体   English   中英

查询以查找PostgreSQL中连续行的几何之间的距离

[英]Query for finding the distance between geometries from consecutive rows in postgreSQL

使用ST_Distance将需要两个几何点,其中我有一个带有50个几何记录的“ geom”列,为此我需要找到连续行之间的距离。

说我需要找到第一行和第二行之间的距离,然后找到第二行和第三行之间的距离,依此类推。

创建表“ gdata”(device_ID文本,data_ID bigserial NOT NULL,geom几何形状)

[创建表]

[ http://i.stack.imgur.com/gi9a3.png ]

我已使用以下查询进行排序。

选择device_ID,从“ gdata”中选择geom ORDER BY device_ID

因此我得到

[ http://i.stack.imgur.com/6RWig.png]

预期的输出是一个单独的列,称为“距离”,其中,对于“几何”中的连续点,我计算出第一几何点与第二几何点之间的距离,然后计算第二几何值与第三几何值之间的依此类推。

提前致谢 :) !

使用带有1作为偏移量的lag函数:

SELECT * FROM ( 
  SELECT (lag(data_ID,1) OVER (order by data_ID)) AS from_id,     
         data_ID as to_id,         
         ST_Distance(geom, lag(geom,1) OVER (order by data_ID )) AS distance 
  FROM gdata 
) AS foo WHERE distance IS NOT NULL;

不确定data_ID是否是订购依据的正确字段。 也许是device_ID?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM