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