【问题标题】:How to generate line segments from survey records using PostGIS如何使用 PostGIS 从调查记录中生成线段
【发布时间】:2019-08-07 16:43:24
【问题描述】:

我有一个调查位置表

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 (Partition BY "id" order by "from_m"),但我迷失在所需的递归中。我正在尝试的可能吗?

【问题讨论】:

    标签: postgresql postgis survey


    【解决方案1】:

    如果您选择整个表,数据库将为每个选定的行运行 LAG/LEAD OVER。您可以使用结果返回一个新列。我想这已经是你需要的递归了。

    我曾经使用基于时间的位置来执行此操作,并创建了一条从时间最新点到他的祖先的线。我按时间订购 - 在您的情况下,您需要按“从”或“到”订购。有时,为每个 id 运行独立查询比一次完成所有事情更容易。

    看看this thread,他们正在尝试与您想要的几乎相反的东西,但也许它会帮助您澄清事情。

    【讨论】:

    • 谢谢。只有“开始”测量点具有用于计算的坐标。每个其他测量线段都需要通过遍历“先前”测量线段的数组来获得其起点,以到达其开始位置的正确位置。
    猜你喜欢
    • 2017-05-19
    • 1970-01-01
    • 1970-01-01
    • 2018-10-14
    • 2022-01-07
    • 2018-06-24
    • 2012-04-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多