傳統地圖上繪製城牆或防禦性圍牆(例如長城)時,經常會使用連續的矩形符號(類似齒狀或垛口形狀)來表示。這種繪圖方式主要是為了直觀地模擬城牆頂部的「雉堞」,讓使用者一眼就能辨識出這是防禦性的人造建築,而非一般的等高線或道路。
長城位置圖(引用自:翰林雲端學院 – 線上學習網站)
清代臺北城牆(擷取自「1897臺北大稻埕艋舺平面圖」)
然而如何運用 QGIS 軟體針對線資料繪製出類似傳統的矩形符號樣式?以下是簡要操作說明。
1.首先先取得既有 或者 自行數化城牆之線資料(polyline)GIS 圖層。
粉紅色線條為自行數化的城牆線資料圖層
2.針對城牆圖層,進行符號設計,針對[符號圖層類型(Symbol layer type)]選擇:幾何產生器(Geometry Generator);並且輸入 以下的表示式:square_wave(geometry, wavelength, amplitude)。
本案例中表示式:square_wave(@geometry, 20, 3), 亦即矩形符號寬度為20,高度為3,單位可以螢幕像素或者是實際的地面(地圖)距離。
利用幾何產生器(Geometry Generator)
3.回到專案地圖顯示區,就可以顯示出矩形樣式的城牆線;可以進一步修改線圖徵得顏色、粗細(寬度)、透明度等等繪圖參數。
以矩形符號繪製出臺北城牆
將臺北城牆套繪在現在地圖(臺灣通用電子地圖)
4.除了矩形,幾何產生器(Geometry Generator)還可以產生三角形、弧形、隨機三角形、隨機矩形、隨機弧形等符號,全部函式及說明如下:
- triangular_wave: Constructs triangular waves along the boundary of a geometry.
- square_wave: Constructs square/rectangular waves along the boundary of a geometry
- wave: Constructs rounded (sine-like) waves along the boundary of a geometry
- triangular_wave_randomized: Constructs randomized triangular waves along the boundary of a geometry
- square_wave_randomized: Constructs randomized square/rectangular waves along the boundary of a geometry.
- wave_randomized: Constructs randomized curved (sine-like) waves along the boundary of a geometry
使用 wave_randomized 函式產生隨機弧形樣式
使用 square_wave_randomized 函式產生隨機矩形樣式