把地圖數位化¶
警告
A new version of this tutorial is available at Digitizing Map Data (QGIS3)
數位化操作是 GIS 專家最常進行的工作之一。把影像資料數位化、轉成向量圖層常常會花費許多的 GIS 操作時間。不過在 QGIS 中,有著強大的數位化螢幕編修功能,我們將會本教學中做個簡介。
內容說明¶
我們要把一張地形圖的圖檔轉化成數個向量圖層,內容包括地圖中一個公園附近的一些地理標記。
你還會學到這些¶
為大尺寸影像建立快取金字塔,增快瀏覽地圖的速度
Spatialite 資料庫的操作
取得資料¶
我們要使用 Land Information New Zealand (LINZ) 提供的 1:50,000 地形圖,包括紐西蘭本土與查塔姆群島(Chatham Islands)。
從 Christchurch Topo50 map download page 下載 GeoTIFF 影像 。
為了方便起見,你也可以直接用下面的連結下載(裁切過的版本):
資料來源 [LINZ]
操作流程¶
選擇
,選擇剛才下載的BX24_GeoTifv1-02.tif
,然後按 開啟。
這是張相當大的影像,當我們要拖曳或是縮放地圖時,都要花上一點時間讓程式調整影像的解析尺寸。QGIS 提供了簡單的解決方法來增進這些動作的速度,稱之為「影像金字塔」。這種方法其實就是預先產生不同解析度的相同影像,在地圖操作時,可以直接使用而不用再從全尺寸的影像做處理,加快瀏覽速度。請在
BX24_GeoTifv1-02
圖層上按右鍵選擇 屬性。
切換到 影像金字塔 分頁,在 解析度 欄位中把所有解析度都選取,其他選項使用預設值,然後按 建立快取金字塔。程式執行完畢後,按下 確定。
回到 QGIS 主視窗,使用 放大 鈕搜尋基督城的 Hagley Park,這就是等一下要數位化的區域。
在開始之前,先來調整預設的 數位化選項。選擇
。
在 選項 頁面中切換到 數位化 分頁,預設接合模式 選擇 自動接合 轉折點與線段。這個選項可以使相近的轉折點與線段黏在一起。筆者個人也偏好把 預設接合容許範圍 和 編輯轉控點的搜尋半徑 設成以像素為單位,而非以地圖單位為單位,這樣在不同的縮放尺度下,自動接合的距離會保持一樣。接著你可以依照你螢幕的解析度選擇適合的值,最後按下 確定。
現在可以開始數位化了!我們先來做個道路的圖層,然後把公園附近的道路數位化到此圖層上。選擇
,看你喜歡哪個都可以。Spatialite 是和 ESRI 的地理資料庫(包含 Shapefile)格式相似的開放資料庫,它的特點是可以在一個檔案內塞進不同種類的空間資料 (點、線、多邊形) 與其他種類的圖層,所以在複製或移動檔案時,不用像 shapefiles 那樣每次都得移動一堆檔案。本教學中,我們會建立數個多邊形和一個線圖層,所以 Spatialite 會比較適合我們。你當然也可以在讀取 Spatialite 檔案後,另存成 shapefile 或其他類型的檔案格式。
在 新增 Spatilaite 圖層 視窗中,按下 … 鈕,把圖層存成新的名為
nztopo.sqlite
的資料庫。在 圖層名稱 中輸入Roads
,然後在 類別 中選擇線
。我們的地形底圖使用的 CRS 是EPSG:2193 - NZGD 2000
,所以這邊就選個跟底圖一樣的 CRS 即可。請勾選 建立自動遞增的主鍵,這個功能會在屬性表格中新增一個叫做 pkuid 的欄位,程式會自動為每個圖徵指定獨特的數值到此欄位中。因為這是個道路圖層,我們應還需要 2 個基本屬性:道路名和道路種類。所以請在 新增屬性 欄位中加入Name
,然後按下 加入屬性列表。
以同樣的方法建立新屬性
Class
,類別選 文字資料。建立好後按下 確定。
圖層載入後,按一下 切換編輯狀態 以進入圖層編輯模式。
按下 加入圖徵 按鈕,然後在地圖上按滑鼠,就可以加入線段端點。沿著道路加入新的端點,直到全部的路都繞過後,按下右鍵結束圖徵的編輯。
備註
滑動滑鼠的滾輪鍵可以用來放大或縮小地圖,按住滾輪鍵則可以拖曳地圖。
按下右鍵之後,會有一個視窗跳出,你可以在其中為剛剛創造的圖徵輸入屬性。因為 pkuid 已經被自動指定了,所以只有它是不能手動設定的。輸入在地圖中的道路名字,以及道路的種類,當然你也可以都不輸入就是了。完成後,按下 確定。
線圖層的預設樣式是非常細的線,我們要把它改粗一點,以方便在地圖上瀏覽。在
Roads
圖層上按右鍵選擇 屬性。
在 圖層屬性 視窗中切換到 樣式 分頁,再從樣式庫中選擇一個較粗的樣式,像是 Primary。最後按下 確定。
現在就很容易在地圖上找到此圖徵了。按下 儲存圖層編輯,就可以把剛才的更動寫到檔案內。
在把其他道路數位化之前,有些設定還需要更新,才能保證接下來創造圖層時不會發生錯誤。選擇
。
在 自動接合選項 視窗中,勾選 使用拓撲(topological)編輯,這個選項可以確保圖徵共同的邊界可以在多邊形圖層中正確的調整。再來,勾選 開啟在相交處使用自動接合,此選項可以自動連接圖徵的截切點,例如底圖的道路轉角。
接下來就繼續使用 加入圖徵 鈕,加入其他環繞公園的道路吧。記得每一次加入新圖徵後,都要按下 儲存圖層編輯 才會儲存起來。有一個稱為 節點工具 的功能也非常的方便,我們就來試試看。請按下 節點工具 鈕。
節點工具啟用後,點選任一個圖徵,節點就會顯現出來。點選任一節點後,它的顏色會改變,以表示這個節點已經被選取了,這時就可以使用滑鼠拖曳此節點。此操作對修改已有的圖層非常的方便,如果我們要刪掉選取的節點,只要按下 Delete 鍵即可。(Mac 上是 Option+Delete 鍵)
所有的道路都數位化了之後,按一下 切換編輯狀態 關閉圖層編輯模式。
接下來我們要製作的是公園邊界的多邊形圖層。選擇
,資料庫要從下拉選單中選擇剛才的nztopo.sqlite
,新的圖層命名為Parks
, 類別 選擇多邊形
。另外,新增一個稱為Name
的屬性,最後按下 確定。
按下 加入圖徵 鈕,然後在地圖上點出多邊形的頂點。這些頂點圈住的多邊形,就是以數位化方式呈現的公園邊界。在用右鍵完成多邊形之前,請再次確認你有開啟自動接合選項,這樣公園多邊形和道路的線條中間就不會有任何空隙。
在跳出的 圖徵屬性 視窗中,輸入公園名字。
我們還可以為多邊形圖層選擇一個很有用的設定,稱為 避免相交。再次進入
,然後把Parks
圖層後方的 避免相交 欄勾選起來,最後按下 確定。
接著使用 加入圖徵 再加入另一個多邊形。當 避免相交 功能啟用時,我們就可以快速地創造另一個圖徵,不用擔心它跟先前的圖徵的接合點是否在正確的位置上。
按下右鍵完成此多邊形,然後輸入屬性的內容。新的多邊形會與鄰接的多邊形完美的接在一起!這功能對比較複雜的邊界非常有用,我們在設定邊界時可以不需要非常的精確,就可以製作已校正的多邊形。最後,再次按下 切換編輯狀態,結束
Parks
圖層的編輯。
是時候來數位化地圖上的建築了。這次我們選擇
,建立一個新的多邊形圖層,稱為Buildings
。
Buildings
圖層加入後,關掉Parks
和Roads
圖層,讓底下的地圖顯現出來,然後選擇Buildings
圖層,再按下 切換編輯狀態。
建築的數位化通常是件繁瑣的任務,而且有個困難點是要手動設定垂直的節點以形成長方形的多邊形。這裡我們要使用一個稱為 Rectangles Ovals Digitizing 的附加元件來幫助我們數位化。關於如何搜尋和安裝附加元件,請參考 使用附加元件。當 Rectangles Ovals Digitizing 安裝完成後,會看到一個新的工具列出現在畫布上方區塊。
放大到有建築的地方,然後按下 Rectangle by Extent 鈕,然後用滑鼠按下並拖曳出長方形。用類似的方法完成其餘的建築多邊形。
你會看到有些建築不是垂直的,這些形狀大概是傾斜成某種角度的多邊形。按下 Rectangle from center。
在建築物的中心按一下,用滑鼠拖曳出一個垂直的長方形。
接下來我們要旋轉此長方形,讓它符合地圖上的形狀。旋轉工具是放在 Advanced Digitizing 工具列中,在工具列上空白的地方按下右鍵,然後勾選 :guilabel:`Advanced Digitizing**,就可以讓它呈現在工具列上。
按下 旋轉(多個)圖徵 鈕,
使用 選擇單一圖徵 工具選擇你要旋轉的圖徵。在 旋轉(多個)圖徵 工具啟用的狀況下,被選取的圖徵中心會出現一個準心,點選此準心然後移動滑鼠,就會看到旋轉圖徵的預覽結果。在適當的角度按下滑鼠按鈕,讓多邊形對齊房屋的底座邊界。
儲存編輯的結果,全部完成後再次按下 切換編輯狀態。現在你可以拖曳調整圖層的顯示順序。
數位化的工作到此告一段落,接下來你可以在圖層屬性中調整標籤與樣式,利用你剛剛創造的資料製作一幅好看的地圖。
If you want to give feedback or share your experience with this tutorial, please comment below. (requires GitHub account)