下載與安裝GQIS
QGIS 是免費開源軟體,可以由下列網站上下載 https://qgis.org/en/site/, 3.x 以後的版本都可以。
建立專案
專案樣板
第一次執行 QGIS後,會出現上面的畫面 (你應該不會看到 Recent Project 啦),選擇 New Empty Project,
CRS
然後會看到一個空白的專案,然後通常這邊就卡關了,這實在不是對新手很友善的軟體。
首先,到右下角看到一個類似地球的符號,旁邊標註 EPSG: 4326 (WGS84),這也是QGIS 預設值。
配合我們在台灣的使用習慣,點選 CRS (Coordinate Reference System) 修改成 EPSG 3826(TWD 97),嫌麻煩,也可以直接在 Filter 欄位填入 3826。也可以觀賞下世界上有多少種不同的大地座標系統,或許更能體會為什麼要建立 WGS 84來一統江湖。
不要擔心大地座標系統間的相容性,之後所有加入這專案的資料都會自動轉換成 EPSG 3826。
注意! QGIS 內建的 TWD 67 投影公式是錯誤的,不要使用。請建立一個修正的 TWD 67,步驟如下:
選擇 Setting,在左側選單中選取 CRS and Transforms > User Defined CRS
點選加號以新增一列自訂 CRS,Name 欄位填寫名稱,Foramt 欄位選擇 Proj String,在 Parameters 欄位填寫如下投影參數:
proj=tmerc +lat_0=0 +lon_0=121 +k=0.9999 +x_0=250000 +y_0=0 +ellps=GRS67 +towgs84=-752,-358,-179,-0.0000011698,0.0000018398,0.0000009822,0.00002329 +units=m +no_defs
最後按下 OK。
要使用時,同樣點選右下角地球符號,在 Predefined Coordinate Reference Systems 區塊,捲到最下方的 User Coordinate Reference Systems,並找到你剛剛建立的TWD 67 CRS
建立線上地圖圖層
如同前一篇文章介紹過的,有 WMS/WMTS 和 XYZ Tiles 等不同的線上地圖標準。
XYZ Tile
先由 XYZ Tile 開始,在XYZ Tile 按右鍵,選擇 New Connection。
填入 Name 和 URL,按 Ok。
如果不知道有什麼線上地圖可以用,可以回上一篇查。
如果上一步驟一切正確,在 XYZ Tiles 下會出現剛剛新增的線上地圖,同樣右鍵選取 Add Layer to Project。這時在右側 Map view 中,會開始載入地圖。
額,好像沒看到耶…..
有三種可能:第一種線上地圖伺服器太忙碌或掛掉了,可以試試其他線上地圖。 (通常這種錯誤會因為 Timeout 伴隨 Network Error 的錯誤警示)
第二種可能,地圖跑到 Map view可視範圍外了,這時在 Layer Panel 中地圖圖層按右鍵,選擇 Zoom to Group,讓圖層移動到 Map view 中央。
第三種是預設的 Scale 太小,這時候可以用滑鼠滾輪,或在下方 Scale 中選取或直接填寫,建議 16700或任一個你覺得舒服的值。(注意,這個Scale數值會因為螢幕解析度(1K:1920x1080 或2K:2560x1440 )而有所不同)
我的習慣除非有要看小地形,否則觀看地圖時使用一致 Scale,這樣對於等高線疏密的感覺會比較一致。
WMS/WMTS
除了 XYZ Tiles,也可以使用 WMS/WMTS 的線上地圖,方法也一樣,到WMS/WMTS 下新增 Connection。
填入 Name 和 URL,按 Ok
和 XYZ Tiles 一個 URL 代表一張線上地圖不同,一個 WMS/WMTS URL 會包含一群線上地圖。以上面為例,要點開Connection,再點選2003-台灣經建4版地形圖-1:25000,把經建4地圖加入 Layer 中。
同樣如果不知道有什麼線上地圖可以用,可以回上一篇查。
載入軌跡檔
資料源
因為 GPX 是 Vector Data,選擇 Layer > Add Layer > Add Vector Layer。
點選 Vector Database 旁的 “…” 選擇 Gpx 檔案。
QGIS 讀取後,檔案中包含有3091 個 Track points,一條 Track 和 23 個 Waypoint,當然要都選也可以,但如果只是要看軌跡,選取 Track 和 Waypoint 即可。
Track points 點數取決 GPS 裝置多久打一個點,通常用來進行分析,比如速度,爬升,距離等等。
如果一切順利,軌跡檔就會顯示在線上地圖上,恭喜,那至此基本上已經成功90%了!
額,等等等,好像還是沒有看到耶….
有兩種可能:第一種,因為地圖圖層不是透明,會蓋住Gpx 圖層,所以檢查下 Layer Panel 的圖層順序,一定要把 Gpx 圖層拉到最上層。
第二種可能,Gpx 圖層跑到Map view 的可是範圍外面了,同樣在 Layer Panel 中Gpx 圖層按右鍵,選擇 Zoom to Group,讓圖層移動到 Map view 中央。
如果你有加入多張地圖圖層,可以勾選來選擇要顯示的圖層。
同樣注意,因為地圖圖層不透明,下層地圖是看不到的。(可以調整透明度,這請自行研究吧)
風格
來讓 Gpx 圖層好看點,展開 Gpx 圖層,在 tracks 按右鍵選 Properties
選擇 Symbology,可以依照你的喜好改變 track 線條寬度,顏色,風格,透明度。
來選是 Waypoint 的文字,展開 Gpx 圖層,在waypoints按右鍵選 Properties
在 Lables 中,選擇 Single Label 顯示 waypoint 的某個單一欄位資料。
在 Value 選擇 "name" 欄位。
Text 可以改變字體大小,字形,顏色,透明度。
Buffer 可以在文字後面顯示背景,讓文字顯示比較清楚。
Formatting 可以改變文字顯示在waypoint 的位置。
產生 TWD 97 網格
格線
選擇 Vector > Research Tools >Create Grid。
Grid Type 改成 Line,畢竟是格線。
Grid extend,主要標註要從哪邊開始畫格線,格式為 minX, max X, minY, maxY,填入下面的咒語:150000.0830000000132713,2422121.8039000001735985,354221.5191999999806285,2801999.9169000000692904 [GCS_WGS_1984]
Spacing 要改 1000 米,代表每 1000 米劃一條。
Grid CRS 如果是使用 Project CRS,要確保 Project CRS 是 EPSG 3826,否則乾脆直接設定為 EPSG 3826。
另外,也可以試試改成 EPSG 4326 (WGS84),看會發生什麼事 :P
最後,勇敢按下 Run。
一切順利,會在 Layer Panel 看到一個名稱為 "Grid" 的 Layer,如果覺得滿意了,可以點選旁邊那個奇怪的符號來儲存為檔案。
Format 選擇 ESEI Shapfile
File name 選到你要存儲的位置並給一個喜歡的名稱。完整的 shapefile 會包含五個檔案 (.cpg, .dbf, .prj, .shp,.shx),建議放到一個目錄下比較好整理。
如果你真的做不出來,就直接使用我之前產生的網格吧。
解開後,利用 Layer > Add Vector Layer, 選取.shp 加入 Layer Panel,要注意,五個檔案都必須存在才能正確讀取。
風格
來讓網格好看點吧,在網格按下右鍵,選取 Properties
在 Symbology,可以改變格網線的顏色,透明,寬度,風格。
提醒
坦白說,網格問題困擾我許久,實際上會改變格線起始位置的Grid extend 是 minX 和 maxY,另外兩個值只會改變格線結束位置。另外,我要坦承上面的extent 我是試出來的,上面的.shp 網格在 QGIS 的地圖上位置是正確的,但我使用 Python + Folium Map 載入卻不正確。如果你有更正確的網格,請分享給大家。
產生等高線
資料源
等高線是由內政部發佈的20公尺網格數值地形模型DTM資料轉換而來,請先到下列網址,找到 “不分幅_台灣20MDEM(2022)”並下載 DEM 檔。不要下載分幅,除非你只要產生特定區域等高線。
下載後請解壓縮至特定目錄,其中應該要包含 .tif。
另外,政府開放資料平台是個好東西,裡面有一大堆稀奇古怪的資料可以匯入 QGIS,以視覺化方式 + 地圖的方式展示資料,有興趣的可以自行尋寶。
選擇 Raster > Extraction > Contour。
.tif 就是一個超大圖檔,所以是 Raster 格式。
Input layer 選擇剛剛解壓縮的 .tif。
注意到有塊黑色區域,應該是樂山雷達站。
Intercak between contour line 輸入 10,代表每 10 m 一條等高線。
Attribute 選擇 ELEV,代表要使用高度來計算等高線。
按下 Run,開始由 DEM 計算十米等高線。這個動作會有點耗費電腦資源,以我的電腦(i7–12700F,32GB,SSD) 為例,大約要花上七分鐘左右,如果可以,可以把掃毒等背景程式關閉先。
如果滿意產生的等高線,選擇剛產生的等高線旁邊的小符號來加以儲存供分享或其他專案使用。
Format 使用 ESRI Shapefile
File name 選到你要存儲的位置並給一個喜歡的名稱。完整的 shapefile 會包含五個檔案 (.cpg, .dbf, .prj, .shp,.shx),建議放到一個目錄下比較好整理。
然後 將 Interval between contour line 改輸入 100,代表每 100 m 一條等高線。將上述步驟重新執行,產生百米等高線檔。稍後我們可以用不同顏色表示10m 和 100m 等高線,並且可以百米等高線顯示高度數值。
風格
來讓等高線比較好看點,點選等高線並右鍵選擇 Properties。
在 Symbology,可以改變格網線的顏色,透明,寬度,風格。
十米等高線建議可以寬度設小點,顏色設定淺色,看起來會比較輕鬆。
百米等高線建議顏色設定稍微深色,看起來會比較明顯。
來顯示百米等高線的高度數值,點選百米等高線並右鍵選擇 Properties。
在 Labels,選擇 Single labels。
Value 選 ELECV,代表高度數值。
Text 可以顯示高度數值的大小,顏色,字型等。
如果你真的做不出來,直接使用我之前產生的等高線吧,不過因為檔案太大了,請私訊我上傳的位置。
其實 Raster 檔很好用的,比如可以用來強調高度方便地圖閱讀,這就留給大家自行研究囉!