You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

多转一空间连接:将点要素HN字段值合并至多边形新字段

我来帮你搞定这个一对多空间连接并合并字段的需求,下面分主流GIS工具给出具体可操作的步骤:


需求回顾

  • 点要素表:包含IDHNStreet字段,数据如下:
    IDHNStreet
    15Examplestreet
    26Examplestreet
    32Otherstreet
    42Anotherstreet
  • 多边形要素表:包含Name字段,值为FirstpolygonSecondpolygonOtherpolygon
  • 核心目标:执行一对多空间连接,将落入对应多边形的点的HN字段值合并,在多边形表中生成新字段all_HN(例如Firstpolygon对应5,6,如果ID1、ID2的点落入该多边形)

1. QGIS 实现步骤

第一步:建立空间关联(一对多)

  1. 加载点图层和多边形图层到QGIS
  2. 菜单栏选择 矢量 > 数据管理工具 > 连接属性(空间)
    • 输入图层:选择你的多边形图层
    • 连接图层:选择点图层
    • 连接类型:选「每个要素连接到最匹配的要素(一对多)」
    • 空间谓词:选「包含」(如果需要点和多边形边界接触也算,可换「相交」)
    • 点击「运行」,得到包含所有匹配点属性的临时图层

第二步:合并HN字段值

  1. 打开 处理工具箱 > 矢量表 > 聚合 工具
    • 输入图层:选择刚才生成的空间连接结果图层
    • 分组依据:选择多边形的Name字段(或其他唯一标识字段)
    • 聚合函数:添加新字段all_HN,函数选「连接」,输入字段选HN,分隔符填,
    • 点击「运行」,最终输出的图层就是带合并后all_HN字段的多边形图层

2. ArcGIS Pro 实现步骤

第一步:创建一对多空间连接

  1. 加载点和多边形图层到ArcGIS Pro
  2. 打开 分析 > 工具 > 空间连接
    • 目标要素:选择多边形图层
    • 连接要素:选择点图层
    • 连接操作:选「保留所有目标要素并连接所有匹配的连接要素(一对多)」
    • 匹配选项:选「包含」(按需调整空间关系)
    • 运行工具,得到带所有点属性的临时图层

第二步:汇总合并HN字段

  1. 打开 分析 > 工具 > 汇总统计数据
    • 输入表:选择空间连接生成的结果表
    • 案例分组字段:选择多边形的Name字段
    • 统计字段:添加HN,统计类型选「连接」,分隔符输入,
    • 运行后得到汇总表,再通过「连接字段」工具把汇总的all_HN关联回原多边形图层即可

3. PostGIS(SQL)实现方法

如果用PostgreSQL+PostGIS,直接用SQL就能一步完成:

-- 假设点表名为points,多边形表名为polygons,几何字段分别为geom
SELECT 
  p.name,
  STRING_AGG(pt.hn::TEXT, ', ') AS all_HN
FROM polygons p
LEFT JOIN points pt ON ST_Contains(p.geom, pt.geom)
GROUP BY p.name;
  • 说明:ST_Contains判断点是否完全在多边形内,STRING_AGG把匹配的HN值用, 拼接起来,GROUP BY按多边形名称分组

内容的提问来源于stack exchange,提问作者Max Mustermann

火山引擎 最新活动