[英]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.