空間連接¶
警告
本教學已經過時,如需閱讀新的版本請前往 空間連接 (QGIS3)。
空間連接是個經典的 GIS 課題:如何基於空間關係,把相關屬性值從一個圖層轉到另一個圖層?在 QGIS 中,有個稱為 由空間連結屬性 的工具,可以實現此一功能。
內容說明¶
我們要使用 2 個圖層,分別為紐約市鄰里的邊界,以及紐約市護理之家的所在地。最終目標是使用空間連接,找出每個區的護理之家的總乘載人數。
你還會學到這些¶
從圖層的屬性表格中刪除整欄
取得資料¶
NYC Open Data Portal 是紐約市不錯的免費資料來源。
你可以使用介面上的
Export
鈕下載 Borough Boundaries 的 zip 檔。

使用介面上的
Export
鈕下載 Nursing Homes 的 zip 檔。

為了方便起見,你也可以直接用下面的連結下載:
操作流程¶
選擇
,選擇剛才下載的nybb_12c.zip
,然後按 開啟。

選擇
nybb.shp
圖層並點選 確定。

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

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

選擇
。

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

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

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

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

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

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

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

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