空間連接

警告

本教學已經過時,如需閱讀新的版本請前往 空間連接 (QGIS3)

空間連接是個經典的 GIS 課題:如何基於空間關係,把相關屬性值從一個圖層轉到另一個圖層?在 QGIS 中,有個稱為 由空間連結屬性 的工具,可以實現此一功能。

內容說明

我們要使用 2 個圖層,分別為紐約市鄰里的邊界,以及紐約市護理之家的所在地。最終目標是使用空間連接,找出每個區的護理之家的總乘載人數。

你還會學到這些

  • 從圖層的屬性表格中刪除整欄

取得資料

NYC Open Data Portal 是紐約市不錯的免費資料來源。

  1. 你可以使用介面上的 Export 鈕下載 Borough Boundaries 的 zip 檔。

../_images/1197.png
  1. 使用介面上的 Export 鈕下載 Nursing Homes 的 zip 檔。

../_images/2161.png

為了方便起見,你也可以直接用下面的連結下載:

nybb_12c.zip

OEM_NursingHomes_001.zip

操作流程

  1. 選擇 圖層 ‣ 加入向量圖層,選擇剛才下載的 nybb_12c.zip ,然後按 開啟

../_images/3101.png
  1. 選擇 nybb.shp 圖層並點選 確定

../_images/464.png
  1. 對另一個檔案 OEM_NursingHomes_001.zip 重複步驟 3 與 4,載入 OEM_NursingHomes_001.shp 圖層。兩個圖層都載入後,右鍵點選 OEM_NursingHomes_001 圖層然後選擇 開啟屬性表格

../_images/558.png
  1. 查閱每個圖徵的屬性,由於我們要計算的是每個區護理之家的總承載人數,因此我們可使用 Capacity (乘載人數)屬性來連接行政區的邊界圖層。

../_images/656.png
  1. 選擇 向量 ‣ 資料管理工具 ‣ 由空間連結(Join)屬性

../_images/755.png
  1. 目標向量圖層 是我們要加入新屬性的圖層,因此在本教學中為區邊界的 nybb 圖層。而 結合(Join)向量圖層 則是護理之家的分布圖層 OEM_NursingHomes_001。由於我們想要把所有在同一區的護理之家乘載人數加總,因此請選擇 相交圖徵概要 然後選擇 總合。輸出檔命名為 nyc_borough_join.shp,在 輸出表格 一欄中,選擇 保留所有紀錄

../_images/853.png
  1. 處理結束時,程式會問你要不要把圖層加入 TOC (QGIS 主視窗),選擇 。新的圖層 nyc_borough_join 含有從 nybb 複製過來的圖徵,而且屬性已與 OEM_NursingHomes_001 連接完成。右鍵點選新圖層,選擇 開啟屬性表格

../_images/952.png
  1. 可以看到屬性表中出現了新的欄位 SUMCapacit,這就是原本屬於同一區的護理之家的 Capacity 屬性加總。

../_images/1060.png
  1. 我們已經找到想要的資訊了,但是在輸出中還存在著其他我們不需要的欄位,讓我們來清理一下。點選 切換編輯模式,然後選擇 刪除欄 按鈕。

../_images/1198.png
  1. 刪除屬性 視窗中按下 Control+A 以選擇所有欄位,然後按住 Control 鍵,取消選取你想保留的屬性,最後按下 確定

../_images/1262.png
  1. 回到屬性表格,再次按下 切換編輯模式 以儲存剛才的更動。

../_images/1359.png
  1. 回到 QGIS 主畫面中,我們可以使用 識別圖徵 工具,驗證輸出檔中每個區的圖徵只具有我們想要的屬性。

../_images/1456.png

If you want to give feedback or share your experience with this tutorial, please comment below. (requires GitHub account)