如何使用 PostGIS 从调查记录生成线段
How to generate line segments from survey records using PostGIS
我有 table 个调查地点
id,from,to,azimuth,x,y
'L1',0,5,120,508776,7098873
'L1',5,10,141,null,null
'L1',10,24,121,null,null
'L2',0,12,135,507882,8020098
'L2',12,15,121,null,null
'L2',15,25,null,null
每行 "id" 可以有 2 条或更多记录定义它们的几何形状。
使用 postgis 查询,如何为这些记录中的每一个创建线段,假设线开始的 x 和 y 值在 EPSG:3578 中?
我试过 LAG 和 LEAD OVER(按 "id" 按 "from_m" 排序),但我迷失了所需的递归。我正在尝试的是可能的吗?
如果您 select 整个 table 数据库将 运行 每个 select 行的 LAG/LEAD OVER。您可以 return 一个包含结果的新列。我想这已经是你需要的递归了。
我曾经用基于时间的位置来做到这一点,并创建了一条从时间上的最新点到他的祖先的线。我按时间订购 - 在您的情况下,您需要按 'from' 或 'to' 订购。有时 运行对每个 ID 进行独立查询比一次完成所有操作更容易。
看看 this thread,他们的尝试与你想要的几乎相反,但也许它会帮助你澄清事情。
我有 table 个调查地点
id,from,to,azimuth,x,y
'L1',0,5,120,508776,7098873
'L1',5,10,141,null,null
'L1',10,24,121,null,null
'L2',0,12,135,507882,8020098
'L2',12,15,121,null,null
'L2',15,25,null,null
每行 "id" 可以有 2 条或更多记录定义它们的几何形状。
使用 postgis 查询,如何为这些记录中的每一个创建线段,假设线开始的 x 和 y 值在 EPSG:3578 中? 我试过 LAG 和 LEAD OVER(按 "id" 按 "from_m" 排序),但我迷失了所需的递归。我正在尝试的是可能的吗?
如果您 select 整个 table 数据库将 运行 每个 select 行的 LAG/LEAD OVER。您可以 return 一个包含结果的新列。我想这已经是你需要的递归了。
我曾经用基于时间的位置来做到这一点,并创建了一条从时间上的最新点到他的祖先的线。我按时间订购 - 在您的情况下,您需要按 'from' 或 'to' 订购。有时 运行对每个 ID 进行独立查询比一次完成所有操作更容易。
看看 this thread,他们的尝试与你想要的几乎相反,但也许它会帮助你澄清事情。