把地圖數位化

文章推薦指數: 80 %
投票人數:10人

數位化操作是GIS 專家最常進行的工作之一。

把影像資料數位化、轉成向量圖層常常會花費許多的GIS 操作時間。

不過在QGIS 中,有著強大的數位化螢幕編修功能,我們將會本 ... QGISTutorialsandTips v1 TutorialsList 簡介 製作地圖(QGIS3) WorkingwithAttributes(QGIS3) 匯入工作表或CSV檔(QGIS3) BasicVectorStyling(QGIS3) CalculatingLineLengthsandStatistics(QGIS3) BasicRasterStylingandAnalysis(QGIS3) RasterMosaicingandClipping(QGIS3) WorkingwithTerrainData(QGIS3) WorkingwithWMSData(QGIS3) WorkingwithProjections(QGIS3) 為紙本地圖進行空間對位(QGIS3) 為空照圖進行空間對位(QGIS3) DigitizingMapData(QGIS3) 資料表連接(QGIS3) 空間連接(QGIS3) PerformingSpatialQueries(QGIS3) NearestNeighborAnalysis(QGIS3) SamplingRasterDatausingPointsorPolygons(QGIS3) CalculatingRasterArea(QGIS3) 製作熱區圖(QGIS3) AnimatingTimeSeriesData(QGIS3) HandlingInvalidGeometries(QGIS3) AdvancedRasterAnalysis(QGIS3) InterpolatingPointData(QGIS3) CalculatingStreetIntersectionDensity(QGIS3) 使用處理框架進行批次處理(QGIS3) 利用處理建模自動執行複雜的工作流程(QGIS3) AutomatingMapCreationwithPrintLayoutAtlas(QGIS3) MultiCriteriaOverlayAnalysis(QGIS3) BasicNetworkVisualizationandRouting(QGIS3) LocatingNearestFacilitywithOrigin-DestinationMatrix(QGIS3) ServiceAreaAnalysisusingOpenrouteservice(QGIS3) TravelTimeAnalysiswithUberMovement(QGIS3) CalculatingArealMeanRainfall(QGIS3) Python程式設計的初步上手(QGIS3) RunningProcessingAlgorithmsviaPython(QGIS3) 使用自訂的Python表達式函數(QGIS3) 撰寫Python腳本並在處理框架下執行(QGIS3) 以Python製作附加元件(QGIS3) BuildingaProcessingPlugin(QGIS3) 執行QGIS工作排程 WebMappingwithQGIS2Web(QGIS3) 用QTiles製作底圖 UsingPlugins(QGIS3) 搜尋和下載開放街圖資料 QGIS學習資源 資料來源 使用處理框架進行批次處理(QGIS2) Author UjavalGandhi Follow@spatialthoughts WanttolearnQGISinastructuredway?CheckoutSpatialThoughtsformorelearningmaterialsandinstructor-ledonlineprogramswithQGIS.orgcertification. ChangeLanguage English Chinese(Taiwan) Dutch Finnish French German Greek Indonesian Italian Korean Persian Portuguese Romanian Russian Slovenian Spanish Thai Turkish Ukrainian Vietnamese 把地圖數位化¶ 警告 AnewversionofthistutorialisavailableatDigitizingMapData(QGIS3) 數位化操作是GIS專家最常進行的工作之一。

把影像資料數位化、轉成向量圖層常常會花費許多的GIS操作時間。

不過在QGIS中,有著強大的數位化螢幕編修功能,我們將會本教學中做個簡介。

內容說明¶ 我們要把一張地形圖的圖檔轉化成數個向量圖層,內容包括地圖中一個公園附近的一些地理標記。

你還會學到這些¶ 為大尺寸影像建立快取金字塔,增快瀏覽地圖的速度 Spatialite資料庫的操作 取得資料¶ 我們要使用LandInformationNewZealand(LINZ)提供的1:50,000地形圖,包括紐西蘭本土與查塔姆群島(ChathamIslands)。

從ChristchurchTopo50mapdownloadpage下載GeoTIFF影像。

為了方便起見,你也可以直接用下面的連結下載(裁切過的版本): BX24_GeoTifv1-02-clip.tif 資料來源[LINZ] 操作流程¶ 選擇圖層‣加入影像圖層,選擇剛才下載的BX24_GeoTifv1-02.tif,然後按開啟。

這是張相當大的影像,當我們要拖曳或是縮放地圖時,都要花上一點時間讓程式調整影像的解析尺寸。

QGIS提供了簡單的解決方法來增進這些動作的速度,稱之為「影像金字塔」。

這種方法其實就是預先產生不同解析度的相同影像,在地圖操作時,可以直接使用而不用再從全尺寸的影像做處理,加快瀏覽速度。

請在BX24_GeoTifv1-02圖層上按右鍵選擇屬性。

切換到影像金字塔分頁,在解析度欄位中把所有解析度都選取,其他選項使用預設值,然後按建立快取金字塔。

程式執行完畢後,按下確定。

回到QGIS主視窗,使用放大鈕搜尋基督城的HagleyPark,這就是等一下要數位化的區域。

在開始之前,先來調整預設的數位化選項。

選擇設定‣選項…。

在選項頁面中切換到數位化分頁,預設接合模式選擇自動接合轉折點與線段。

這個選項可以使相近的轉折點與線段黏在一起。

筆者個人也偏好把預設接合容許範圍和編輯轉控點的搜尋半徑設成以像素為單位,而非以地圖單位為單位,這樣在不同的縮放尺度下,自動接合的距離會保持一樣。

接著你可以依照你螢幕的解析度選擇適合的值,最後按下確定。

現在可以開始數位化了!我們先來做個道路的圖層,然後把公園附近的道路數位化到此圖層上。

選擇圖層‣新增圖層‣「新增Spatialite圖層…」或「新增Shape檔圖層」,看你喜歡哪個都可以。

Spatialite是和ESRI的地理資料庫(包含Shapefile)格式相似的開放資料庫,它的特點是可以在一個檔案內塞進不同種類的空間資料(點、線、多邊形)與其他種類的圖層,所以在複製或移動檔案時,不用像shapefiles那樣每次都得移動一堆檔案。

本教學中,我們會建立數個多邊形和一個線圖層,所以Spatialite會比較適合我們。

你當然也可以在讀取Spatialite檔案後,另存成shapefile或其他類型的檔案格式。

在新增Spatilaite圖層視窗中,按下…鈕,把圖層存成新的名為nztopo.sqlite的資料庫。

在圖層名稱中輸入Roads,然後在類別中選擇線。

我們的地形底圖使用的CRS是EPSG:2193-NZGD2000,所以這邊就選個跟底圖一樣的CRS即可。

請勾選建立自動遞增的主鍵,這個功能會在屬性表格中新增一個叫做pkuid的欄位,程式會自動為每個圖徵指定獨特的數值到此欄位中。

因為這是個道路圖層,我們應還需要2個基本屬性:道路名和道路種類。

所以請在新增屬性欄位中加入Name,然後按下加入屬性列表。

以同樣的方法建立新屬性Class,類別選文字資料。

建立好後按下確定。

圖層載入後,按一下切換編輯狀態以進入圖層編輯模式。

按下加入圖徵按鈕,然後在地圖上按滑鼠,就可以加入線段端點。

沿著道路加入新的端點,直到全部的路都繞過後,按下右鍵結束圖徵的編輯。

備註 滑動滑鼠的滾輪鍵可以用來放大或縮小地圖,按住滾輪鍵則可以拖曳地圖。

按下右鍵之後,會有一個視窗跳出,你可以在其中為剛剛創造的圖徵輸入屬性。

因為pkuid已經被自動指定了,所以只有它是不能手動設定的。

輸入在地圖中的道路名字,以及道路的種類,當然你也可以都不輸入就是了。

完成後,按下確定。

線圖層的預設樣式是非常細的線,我們要把它改粗一點,以方便在地圖上瀏覽。

在Roads圖層上按右鍵選擇屬性。

在圖層屬性視窗中切換到樣式分頁,再從樣式庫中選擇一個較粗的樣式,像是Primary。

最後按下確定。

現在就很容易在地圖上找到此圖徵了。

按下儲存圖層編輯,就可以把剛才的更動寫到檔案內。

在把其他道路數位化之前,有些設定還需要更新,才能保證接下來創造圖層時不會發生錯誤。

選擇選項‣自動接合選項。

在自動接合選項視窗中,勾選使用拓撲(topological)編輯,這個選項可以確保圖徵共同的邊界可以在多邊形圖層中正確的調整。

再來,勾選開啟在相交處使用自動接合,此選項可以自動連接圖徵的截切點,例如底圖的道路轉角。

接下來就繼續使用加入圖徵鈕,加入其他環繞公園的道路吧。

記得每一次加入新圖徵後,都要按下儲存圖層編輯才會儲存起來。

有一個稱為節點工具的功能也非常的方便,我們就來試試看。

請按下節點工具鈕。

節點工具啟用後,點選任一個圖徵,節點就會顯現出來。

點選任一節點後,它的顏色會改變,以表示這個節點已經被選取了,這時就可以使用滑鼠拖曳此節點。

此操作對修改已有的圖層非常的方便,如果我們要刪掉選取的節點,只要按下Delete鍵即可。

(Mac上是Option+Delete鍵) 所有的道路都數位化了之後,按一下切換編輯狀態關閉圖層編輯模式。

接下來我們要製作的是公園邊界的多邊形圖層。

選擇圖層‣新增圖層‣新增Spatialite圖層,資料庫要從下拉選單中選擇剛才的nztopo.sqlite,新的圖層命名為Parks,類別選擇多邊形。

另外,新增一個稱為Name的屬性,最後按下確定。

按下加入圖徵鈕,然後在地圖上點出多邊形的頂點。

這些頂點圈住的多邊形,就是以數位化方式呈現的公園邊界。

在用右鍵完成多邊形之前,請再次確認你有開啟自動接合選項,這樣公園多邊形和道路的線條中間就不會有任何空隙。

在跳出的圖徵屬性視窗中,輸入公園名字。

我們還可以為多邊形圖層選擇一個很有用的設定,稱為避免相交。

再次進入選項‣自動接合選項,然後把Parks圖層後方的避免相交欄勾選起來,最後按下確定。

接著使用加入圖徵再加入另一個多邊形。

當避免相交功能啟用時,我們就可以快速地創造另一個圖徵,不用擔心它跟先前的圖徵的接合點是否在正確的位置上。

按下右鍵完成此多邊形,然後輸入屬性的內容。

新的多邊形會與鄰接的多邊形完美的接在一起!這功能對比較複雜的邊界非常有用,我們在設定邊界時可以不需要非常的精確,就可以製作已校正的多邊形。

最後,再次按下切換編輯狀態,結束Parks圖層的編輯。

是時候來數位化地圖上的建築了。

這次我們選擇圖層‣新增圖層‣新增Spatialite圖層,建立一個新的多邊形圖層,稱為Buildings。

Buildings圖層加入後,關掉Parks和Roads圖層,讓底下的地圖顯現出來,然後選擇Buildings圖層,再按下切換編輯狀態。

建築的數位化通常是件繁瑣的任務,而且有個困難點是要手動設定垂直的節點以形成長方形的多邊形。

這裡我們要使用一個稱為RectanglesOvalsDigitizing的附加元件來幫助我們數位化。

關於如何搜尋和安裝附加元件,請參考使用附加元件。

當RectanglesOvalsDigitizing安裝完成後,會看到一個新的工具列出現在畫布上方區塊。

放大到有建築的地方,然後按下RectanglebyExtent鈕,然後用滑鼠按下並拖曳出長方形。

用類似的方法完成其餘的建築多邊形。

你會看到有些建築不是垂直的,這些形狀大概是傾斜成某種角度的多邊形。

按下Rectanglefromcenter。

在建築物的中心按一下,用滑鼠拖曳出一個垂直的長方形。

接下來我們要旋轉此長方形,讓它符合地圖上的形狀。

旋轉工具是放在AdvancedDigitizing工具列中,在工具列上空白的地方按下右鍵,然後勾選:guilabel:`AdvancedDigitizing**,就可以讓它呈現在工具列上。

按下旋轉(多個)圖徵鈕, 使用選擇單一圖徵工具選擇你要旋轉的圖徵。

在旋轉(多個)圖徵工具啟用的狀況下,被選取的圖徵中心會出現一個準心,點選此準心然後移動滑鼠,就會看到旋轉圖徵的預覽結果。

在適當的角度按下滑鼠按鈕,讓多邊形對齊房屋的底座邊界。

儲存編輯的結果,全部完成後再次按下切換編輯狀態。

現在你可以拖曳調整圖層的顯示順序。

數位化的工作到此告一段落,接下來你可以在圖層屬性中調整標籤與樣式,利用你剛剛創造的資料製作一幅好看的地圖。

commentspoweredbyDisqus ThisworkislicensedunderaCreativeCommonsAttribution4.0InternationalLicense



請為這篇文章評分?