将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)实例精解