QGIS-atlas

[QGIS教學系列]QGIS-Atlas變數:一次輸出不同標題、時間、區域的地圖

QGIS-Atlas變數:一次輸出不同標題、時間、區域的地圖

關鍵字: #GIS #QGIS #Temporal controller #Plugins #Atlas #批次出圖 #變數控制

今天我將介紹如何使用QGIS-Atlas變數來增強你的地圖輸出效率。Atlas變數是一種可以動態改變的值,你可以用它來控制地圖的標題、時間、區域等元素。這樣,你就可以根據不同的需求,一次輸出多張不同標題、時間、區域的地圖,而不需要手動修改每張地圖。

以下是使用QGIS-Altas變數的通用步驟:

  1. 建立一個索引圖層,這個圖層包含了你想要輸出的所有地圖範圍。你可以使用任何類型的幾何圖形(點、線或面)作為索引圖層,只要它們有唯一的ID和其他你想要用作變數的屬性。例如,如果你想要輸出台灣各縣市的地圖,你可以建立一個包含台灣各縣市邊界和名稱的面圖層作為索引圖層。
  2. 在QGIS中打開出圖工具,建立一個新的佈局。在佈局中添加一個地圖項目,並調整其大小和位置。在項目屬性中,勾選“由Atlas控制”和“根據內容調整比例”。這樣,地圖項目就會自動根據索引圖層中的每個幾何圖形來調整視窗範圍和比例。
  3. 在佈局中添加其他你想要顯示在地圖上的元素,例如標題、時間、區域等。這些元素可以是文字、圖片或其他項目。在這些元素的屬性中,你可以使用QGIS-Atlas變數來設定它們的值。變數的格式是[% expression %],其中expression是一個表達式,可以是索引圖層中的屬性值(例如[% “NAME” %]),也可以是其他函數或運算(例如[% @atlas_featurenumber %])。你可以在插入表達式對話框中找到所有可用的變數和函數。
  4. 在佈局中打開Altas設定面板,勾選“生成Atlas”並選擇你剛剛建立的索引圖層作為覆蓋範圍。你也可以設定其他選項,例如排序依據、頁面順序、邊界等。
  5. 在Altas預覽工具欄中,你可以查看和切換不同頁面的效果。如果一切正常,你就可以將Altas導出為PDF或單獨的影像文件。

以上就是使用QGIS-Altas變數來一次輸出多張不同標題、時間、區域的地圖的方法。希望這篇文章對你有所幫助,如果你有任何問題或建議,歡迎留言交流。

範例練習:利用QGIS-Atlas進行台灣各縣市範圍批次出圖

1.圖層資料下載

點選下列連結,可以下載台灣的鄉鎮市區圖層,之後的練習我們將針對這個圖資,將不同縣市的範圍進行縣市範圍的批次出圖。

解壓縮檔案後可以看到「台灣縣市圖.gpkg」,當中包含了兩個檔案,其中一個是縣市層級範圍另一個則是包含了鄉鎮市區層級。

檔案下載

練習檔案
台灣縣市圖
匯入時將兩個圖層都進行加載
載入後可以看到縣市區域以及更細緻的鄉鎮行政區劃分
載入後可以看到縣市區域以及更細緻的鄉鎮行政區劃分

2.新建Layout(佈局管理器)

以下會省略一些細節步驟,對於Layout出圖功能不熟悉的朋友可以參考以下的文章:

在新增Layout進行地圖布局前,先針對兩個圖層的Style進行調整,以下是我調整過後幾個重點大家可以參考看看:

1.縣市圖僅保留外輪廓,不進行Fill in,用來強調範圍

2.鄉鎮市區將填充參數從Solid改為Dense4,讓圖層可以看到衛星底圖

再來我們可以先建一個Layout,Project-> New Print Layout,接下來輸入專案名稱即可

Layout
新增一個Layout
Layout
輸入專案名稱

接下來我們先設定好拉取一個地圖元素(Add Map),以及新增一個地圖標題(Add Label)。其中地圖標題稍後會利用Atlas變數讓標題隨著不同縣市而改變。

Layout

3.Layout-Atlas變數設定

新建好地圖範本後,可以開始設定Atlas變數了,首先點選下圖中紅框處的「Atlas」頁面,點選Generate an atlas,接下來的參數設定可以參考下圖,主要以縣市圖的COUNTYNAME作為變數進行操控。

Layout

再來我們選取「Map物件」後將頁面切換到「Item Properties」,往下拉找到「Control by Atlas」勾選啟用後可以參考下列參數設定,這項設定可以讓地圖視點隨著Atlas變數進行自動移動。

Layout

接下來我們設定Label的自動變更,先選取Label物件->Item Properties中,利用Dynamic Text->Field->CountyName新增變數到Label當中。

設定完成後可以按上方的「Preview atlas」並進行預覽,可以發現當atlas變數改變時左上角Page顯示以及地圖範圍會跟著自動移動

Layout

4.針對圖層Style進行Atlas變數設定

接下來我們進一步針對圖層Style利用Atlas變數進行設定,用來達成只顯示該行政區域的範圍。

我們打開鄉鎮圖層的屬性視窗,將Symbology參數改為「Rule-baesd」,接下來新增以下的規則

 "COUNTYNAME" = @atlas_pagename  ##當該圖層的 "COUNTYNAME"值當前等於@atlas_pagename時才顯示

接下來我們回到Layout中重新整理,可以發現目前縣市的可視範圍也會隨著Atlas進行變動了。

5. 將成果進行批次出圖

接下來只要點選上方的Atlas選單,就可以針對成果進行批次出圖,並且可以將檔案存成不同的格式以及進行解析度的設定。

設定出圖的解析度DPI

如果想要針批次出圖的檔名進行修改,也可以回到Atlas分頁進行調整,例如我想要把檔名改為{xx市.png},可以利用@atlas_pagename變數作為輸出名稱。

結語

希望今天的分享能夠幫助到你,讓你不管在工作或學習上可以更高效率的完成瑣碎事項,喜歡我的分享的話可以訂閱我的YT頻道以及FB專業會分享有趣的地圖應用!

參考資料

http://www.qgistutorials.com/zh_TW/docs/automating_map_creation.html

分享

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *