空间连接

警告

本教学已经过时,如需阅读新的版本请前往 空间连接 (QGIS3)

空间连接是个经典的 GIS 课题:如何基于空间关系,把相关属性值从一个图层转到另一个图层?在 QGIS 中,有个称为 由空间连结属性 的工具,可以实现此一功能。

内容说明

我们要使用 2 个图层,分别为纽约市邻里的边界,以及纽约市护理之家的所在地。最终目标是使用空间连接,找出每个区的护理之家的总乘载人数。

你还会学到这些

  • 从图层的属性表格中删除整栏

取得资料

NYC Open Data Portal 是纽约市不错的免费资料来源。

  1. 你可以使用介面上的 Export 钮下载 Borough Boundaries 的 zip 档。

../_images/1172.png
  1. 使用介面上的 Export 钮下载 Nursing Homes 的 zip 档。

../_images/2132.png

为了方便起见,你也可以直接用下面的连结下载:

nybb_12c.zip

OEM_NursingHomes_001.zip

操作流程

  1. 选择 图层 ‣ 加入向量图层,选择刚才下载的 nybb_12c.zip ,然后按 开启

../_images/372.png
  1. 选择 nybb.shp 图层并点选 确定

../_images/450.png
  1. 对另一个档案 OEM_NursingHomes_001.zip 重复步骤 3 与 4,载入 OEM_NursingHomes_001.shp 图层。两个图层都载入后,右键点选 OEM_NursingHomes_001 图层然后选择 开启属性表格

../_images/551.png
  1. 查阅每个图征的属性,由于我们要计算的是每个区护理之家的总承载人数,因此我们可使用 Capacity (乘载人数)属性来连接行政区的边界图层。

../_images/649.png
  1. 选择 向量 ‣ 资料管理工具 ‣ 由空间连结(Join)属性

../_images/748.png
  1. 目标向量图层 是我们要加入新属性的图层,因此在本教学中为区边界的 nybb 图层。而 结合(Join)向量图层 则是护理之家的分布图层 OEM_NursingHomes_001。由于我们想要把所有在同一区的护理之家乘载人数加总,因此请选择 相交图征概要 然后选择 总合。输出档命名为 nyc_borough_join.shp,在 输出表格 一栏中,选择 保留所有纪录

../_images/846.png
  1. 处理结束时,程式会问你要不要把图层加入 TOC (QGIS 主视窗),选择 。新的图层 nyc_borough_join 含有从 nybb 复制过来的图征,而且属性已与 OEM_NursingHomes_001 连接完成。右键点选新图层,选择 开启属性表格

../_images/945.png
  1. 可以看到属性表中出现了新的栏位 SUMCapacit,这就是原本属于同一区的护理之家的 Capacity 属性加总。

../_images/1044.png
  1. 我们已经找到想要的资讯了,但是在输出中还存在着其他我们不需要的栏位,让我们来清理一下。点选 切换编辑模式,然后选择 删除栏 按钮。

../_images/1173.png
  1. 删除属性 视窗中按下 Control+A 以选择所有栏位,然后按住 Control 键,取消选取你想保留的属性,最后按下 确定

../_images/1245.png
  1. 回到属性表格,再次按下 切换编辑模式 以储存刚才的更动。

../_images/1343.png
  1. 回到 QGIS 主画面中,我们可以使用 识别图征 工具,验证输出档中每个区的图征只具有我们想要的属性。

../_images/1442.png