在 QGIS 中,“把一个图层的字段复制到另一个图层”通常指:将源图层(Source Layer)的属性字段(含字段名、类型、长度等结构,以及对应值)添加/追加到目标图层(Target Layer)中。这并非简单复制粘贴字段定义,而是需确保几何匹配(如空间连接)或逻辑关联(如按ID Join),并保留数据完整性。
方法一:使用位置或字段连接属性
适用场景: 两图层存在空间关系(如点落于面内、线与面相交)或唯一键字段可关联(如 id 字段一致)
预处理: 确保两个图层已加载,且坐标系一致
空间连接(推荐用于面提取网格类场景):
- 算法名称:Join attributes by location(按位置连接属性)
- 算法 ID:qgis:joinattributesbylocation
- 输入图层:目标图层(如你的网格图层)
- 连接图层:源图层(如你的范围面图层)
- 几何预测:选 intersects(相交)或 within(在内部)等,依需求选
- 连接类型:勾选 Take all matching features(若一对多)或 Take only first matched feature(一对一)
- 字段前缀:可留空,或填 src_ 避免重名冲突
- 运行 → 输出新图层,自动包含源图层所有字段及对应值
字段连接(推荐用于 ID/名称等属性匹配):
- 算法名称:Join Attributes Table(按字段连接属性)
- 算法 ID:qgis:joinattributestable
- 输入图层:目标图层
- 输入字段:目标图层中用于关联的字段(如 "grid_id")
- 连接图层:源图层
- 连接字段:源图层中对应字段(如 "grid_id")
- 连接类型:默认 1:1(一对一)或 1:m(一对多,需勾选“创建多部分要素”)
- 运行 → 输出新图层,字段已合并
方法二:使用「字段计算器」新增字段 + 表达式取值
适用场景:仅需复制1–2 个字段,且两图层有明确空间或属性对应关系。
打开矢量图层字段计算器,在表达式中输入如下内容:
attribute(
get_feature('行政区', 'name',
overlay_within('行政区', "name")[0]
), 'population'
)
注意:'行政区' 是源图层名称(引号内为图层名,非字段名);"population" 是要复制的字段名(双引号)。
更多QGIS使用问题,欢迎留言或联系我们。转载须注明出处。