簡體   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