将qgis上不同多边形层上的每个点元素分开

Posted

技术标签:

【中文标题】将qgis上不同多边形层上的每个点元素分开【英文标题】:separate each points element on different polygon layers on qgis 【发布时间】:2019-07-29 11:57:49 【问题描述】:

我有一个名为 all_the_points 的表,其中包含一行中每个元素的多个点,现在所有元素都在名为 origin 的列中, 现在每个元素都可以有几个点,我可以在一个视图中通过 PostGIS 上不同图层上的元素将所有点分开,我尝试使用 group by 但当我拖动到我的qgis。 谢谢你

 with 
bounds as (
    select
     origin
    ,min(x) as xmin
    ,min(y) as ymin
    ,max(x) as xmax
    ,max(y) as ymax
    from all_the_points
    group by  WHERE ((all_the_points.origin)::text = '126af84e-0a9b-407d-8036-1ffc316106dd'::text);
)
select 
 origin
,st_makepolygon(st_makeline(array[
     st_makepoint(xmin,ymin)
    ,st_makepoint(xmax,ymin)
    ,st_makepoint(xmax,ymax)
    ,st_makepoint(xmin,ymax)
    ,st_makepoint(xmin,ymin)
]))
from bounds

【问题讨论】:

【参考方案1】:

PostGIS 上的不同图层在一个视图中

不,这是不可能的。

有几种选择:

只有一个图层,并为 QGIS 中的每个类别应用不同的符号系统

在 QGIS 中有一个图层并过滤单个类别的数据。最终第二次(甚至更多次)添加同一层并过滤另一个类别

在 Postgres 中对每一层都有不同的视图

【讨论】:

“在 Postgres 中对每一层都有不同的视图”我可以用 SQL 做到这一点 是的,就像你做的那样。它也可以自动化,尽管有点复杂。但是选项 1 是最典型的选项,选项 2 在较小程度上是。为表中的每个值创建一个视图听起来是错误的(维护起来是一场噩梦) 你好,当我尝试执行 select 时,我正试图从 all_the_points 表中获取我的 geom 列,但它不起作用我不知道你是否可以帮助谢谢你的界限(选择原点,min(x) as xmin ,min(y) as ymin ,max(x) as xmax ,max(y) as ymax from all_the_points group by 1 ) 选择原点 ,st_makepolygon(st_makeline(array[ st_makepoint(xmin,ymin) , st_makepoint(xmax,ymin) ,st_makepoint(xmax,ymax) ,st_makepoint(xmin,ymax) ,st_makepoint(xmin,ymin) ])) 从边界

以上是关于将qgis上不同多边形层上的每个点元素分开的主要内容,如果未能解决你的问题,请参考以下文章

QGIS入门实战精品教程4.4:QGIS如何将点自动连成线线生成多边形?

QGIS入门实战精品教程009:QGIS构建泰森多边形(Thiessen Polygon)实例精解

QGIS入门实战精品教程9.1:QGIS构建泰森多边形(Thiessen Polygon)实例精解

提升几何:从多个点组成多边形

OpenGL在多个地方多次绘制同一个多边形

多边形中的 r 点