{%hackmd @YuDong/dacula %} # QGIS 死亡上機考 💀 > [name=YuDong] [time=2023,12] ### 目錄: <small>你可以點擊目錄,直接前至你愈查看的章節。</small> [toc] ### 前言 上機考時間應該是 12/04 這天 我連基本的操作都還不會,可以說是穩死。 考完段考的當天真的超無聊 什麼事情都不想做,遊戲也玩不下去,更沒有人陪我聊天,死孤兒。 所以就決定先來寫一篇簡單的筆記,畢竟都已經提前發布題目了。 那麼就來先簡單紀錄一下預想的解題想法吧。 ~~我的Q Cheese 還在下載,要兩個小時~~, $8-1$。 ### 前情提要: :::info 免責聲明: 本篇文章性質屬於「QGIS相關講義與資料」 ***應該*** 是可以在上機考的時候拿出來看的。 不應該被規範於 ***傳答案、交談*** 等作弊行為內。 且本篇筆記並未支持任何作弊行為,影響測驗公平性。 ![image](https://hackmd.io/_uploads/HyTaKPPBT.png) ::: :::danger + 作弊疑慮? 如果您仍然擔心本篇筆記被列為禁止閱覽,您可以從現在開始閱讀。 或者說您擔心本篇沒有被列為禁止閱讀,但提供解答仍有作弊嫌疑等疑慮。 請考慮避免於上機考中參考本篇筆記。 + 正確解法? 本篇所有做法 ***不一定*** 為正確解法,只是從題目敘述、題意做推敲後所想到的解法 筆者也盡力使解答基本上與題目要求一致。 不過此文章仍僅作參考,實作上仍可能還有需要注意的細節。 筆者會盡力補齊,使本篇更具參考價值。 讀者也可以聯繫我,對本篇進行校正、細節解釋、更初學者導向等作業。 提供一個更好的參考文獻。 ::: :::warning 本篇會試著以初學者角度出發,盡量解釋為何這一步是這樣做。 所以這邊筆記會提到 ***怎麼做這張圖 → 出圖*** 的流程 但礙於我不是天才,所以可能會有一些步驟與正確解答不同。 若您是追求正解解法的讀者,本篇對您的參考價值極低。 況且正確解法還未釋出,自行通靈。 倘若您只是想要簡單參考一下上機考的作法、想法思路 那麼這篇文章對你來說還算可以參考、具有一些價值。 最後,***不要炮我QQ,我已經盡力完成這篇文章了*** 若有需要校正、補充的地方,歡迎隨時與我聯繫。 找我用哀居會比較容易看到 xD ::: ### Q:欸等等,是可以直接寫做法的嗎? > A:不知道,所以本篇筆記會先以 ***關鍵字*** 做引導為首要。 > 再由綠色框框內的文字寫出我對這題的思路想法。 > 因為我覺得直接給解答而不說明一下的話 > 這樣<font color="yellow">為什麼不直接站起來問別人呢???</font> > 當然,還是會給作法La,我會用海苔遮起來,先讓自己思考後,真的不會再去點開看詳解 > 因為,<font color="green">**有時候我們只是欠缺一個提點,並不是完全都不會**</font>。 > 所以本篇文章的目的僅只是供給一個照明點,希望各位能夠順著這個方向去解出題目。 + 這個是可以點開的歐!!!! ![image](https://hackmd.io/_uploads/S1gCH2uHa.png) 好,屁話告段落。 幹話繼續說,直接來開始 ## Import The Files 導入文件 欸不是,我是真的擔心有人不會導入,所以就加了這個章節。 本來打算是只開實作部分而已 xD 這邊會提到的匯入文件僅有兩項 1. Vector Layer (地圖檔案) 2. Delimited Text Layer (地標檔案) 不過一樣,導入方式因人而異 這邊用我所知道大家比較常用的方式進行教學 如果你已經會了,<font color="FF4651">建議跳過此處。</font> 紅色框框圈起來的部分就是對應旁邊的註解黑字 已經相當程度的簡化了 (上面那排的【Layer】→【Add Layer】,用來進行加入我們的考試資料。) ![image](https://hackmd.io/_uploads/ryUcR_vBT.png) > Vector Layer:一般的<font color="yellow">地圖檔案</font>,副檔名是 <font color="lime">.shp</font> > 如圖:![image](https://hackmd.io/_uploads/r1krJFvSp.png) > Delimted Text Layer:就是<font color="yellow">地標檔案</font>,副檔名是 <font color="lime">.csv</font> > 如圖:![image](https://hackmd.io/_uploads/SyCdJFwBa.png) ### 匯入 Vector Layer + Step.1:選擇上面那排的【Layer】→【Add Layer】→【Add Vector Layer】 ![image](https://hackmd.io/_uploads/SyymlYDST.png) + Step.2:點選紅框處的【...】,選擇檔案 ![image](https://hackmd.io/_uploads/BkzIgKPSp.png) + Step.3:找到你的 <font color="lime">.shp</font> 檔,可以點選紅框中【類型】的【ˇ】做篩選。 ![image](https://hackmd.io/_uploads/BJG-bKvB6.png) 按下 【SHP 檔案】,就可以快速找到了。 ![image](https://hackmd.io/_uploads/r19BZYwBT.png) 接著,點擊你的 .shp 檔案 ![image](https://hackmd.io/_uploads/rJbFWFDBT.png) 基本上什麼都不用動,也 <font color="red">不需要</font> 跟圖片一樣。只需要按下紅框中的【Add】 ![image](https://hackmd.io/_uploads/SJ69WFwST.png) 這樣就成功匯入 Vector Layer 了 ![image](https://hackmd.io/_uploads/BkkpbFDHT.png) --- ### 匯入 Delimited Text 先來匯入檔案。 等等會提一下可能會有比較多人遇到的問題: <font style="font-size: 42px" color="yellow">Encoding 編碼</font> + Step.1:選擇上面那排的【Layer】→【Add Layer】→【Add Delimited Text Layer】 ![image](https://hackmd.io/_uploads/ryBO6tvSa.png) + Step.2:點選圈選處的【...】,選擇檔案 ![image](https://hackmd.io/_uploads/ByrapYPHa.png) 選擇檔案,對應你所製作的都市區域 ![image](https://hackmd.io/_uploads/rJj7RKDH6.png) + Step.3:檢查有無亂碼 ![image](https://hackmd.io/_uploads/B1ANCKPBa.png) 這裡我是 <font color="red">沒有</font> 亂碼的,所以我 <font color="red">不需要</font> 變更編碼的部分 但如果你出現 <font color="red">亂碼</font>,像下圖一樣 下圖是因為 【Big5】編碼出現亂碼,所以我要把編碼換成【UTF-8】 ![image](https://hackmd.io/_uploads/r17f1cwrT.png) 把編碼改成 <font color="lime">UTF-8</font>,就不會顯示亂碼了。 反之,如果是【UTF-8】遇到亂碼,就把編碼改成【Big5】即可。 ![image](https://hackmd.io/_uploads/ByDr15DB6.png) 接著,因為是具有地標意義的地標,要讓其顯示在地圖上,就必須定義經緯度。 點擊【Geometry Definition】,定義一下經緯度。 用一個表格來列出該選什麼: | Field | Option | | ------- |:----------:| | X field | longtitude | | Y field | latitude | ![image](https://hackmd.io/_uploads/Hytbl5DHT.png) 接著,我們先選擇座標參考系統【Geometry CRS】為【4326】 讓其得以顯示於地圖上 <font color="red">不要在這邊直接切換成 3826</font>,會沒東西。 ![image](https://hackmd.io/_uploads/rJMRxqwH6.png) 接著,就會成功導入 CSV 檔案了 地圖上就會有密密麻麻的【地標】 ![image](https://hackmd.io/_uploads/Syn8Z5wSp.png) 如果現在還用不到這個 Layer,可以取消勾選,先讓它消失一下。 ![image](https://hackmd.io/_uploads/HyA9b5wSp.png) 需要用到的時候再打勾即可。 ![image](https://hackmd.io/_uploads/Bkos-qPra.png) 以上就是匯入文件的兩項教學,如果仍有不清楚的地方,歡迎私訊 IG 詢問我。 --- ## Problem Set ![image](https://hackmd.io/_uploads/ByUjTDvSa.png) 題目總共 $7$ 題,先簡單分析一下 > 第 $1$ 題:水題,只要篩選出題目叫你篩選的縣市即可。 > 第 $2$ 題:水題,只要先把篩出後的縣市存成另一個圖層後,用 Graduated 做出 $4$ 等級面量圖即可。 > 第 $3$ 題:水題,利用 "LIKE" 語法,搜尋與「XX派出所」有關的地標即可。 > 第 $4$ 題:還記得上次模擬測驗的:「選出哪些村里沒有小學」嗎?一樣作法,先選取後反選取。 > 第 $5$ 題:基礎的環域 Buffer 題,等等會帶到怎麼實作。 > 第 $6$ 題:題目很好心的提示你用「Intersection」了,那麼我們等等就跟著提示去往下做。 > 取「800M 環域」和「該縣市的所有地標」兩者的交集。 > 第 $7$ 題:簡單的統計題,跟上次模擬測驗一樣,Statics By Categories。 *水題:很簡單的題目。真的。 好,那我想應該大部分都是有看沒有懂 <font color="red">對不起,我文筆太爛。</font> 那我們就進到實作環節吧 一樣是一題一個這樣講下去。 如果有特定想看的題目 就是點目錄的字就可以跳轉到該題ㄌ。 ### P1:請篩選出該縣市範圍(截圖) 關鍵字: `屬性表 Attribute Table` :::success 開啟屬性表,找尋你自己對應的都市(考題有分配每個人的都市)並且篩選。 ::: :::spoiler 點我查看詳解 對著你的地圖,右鍵開啟【屬性表 Attribute Table】。 (這我應該不用放圖片吧 xD) 接著點擊這個 ![image](https://hackmd.io/_uploads/HkclnWcr6.png) 輸入基本的查詢語法: ||不要跟我說你連這個都忘了,我會想哭|| ```cpp= "COUNTY" = '臺北市' ``` ![image](https://hackmd.io/_uploads/rJ1iNKvSa.png) 查詢後,我們要做【另存 Layer】,讓被我們選取到的都市能夠獨立顯示出來。 ![image](https://hackmd.io/_uploads/HJYDHYPSa.png) 稍微命名一下,直接確定 ![image](https://hackmd.io/_uploads/r1OsItwBa.png) 有了,耶。 ![image](https://hackmd.io/_uploads/HyNnUtPBT.png) ::: ### P2:請製作該縣市各村里人口數(P_CNT)面量圖,4個等級。(完整出圖) 關鍵字: `Graduated 面量圖` :::success 先開【屬性表】檢查【P_CNT】是否存在。 如果存在,我們就轉到【Properties】→【Symbology】製作面量圖。 然後 <small>不可能不存在</small> ::: :::spoiler 點我查看詳解 先檢查 <font color="F5757C">P_CNT</font> 這個值是否存在。 ![image](https://hackmd.io/_uploads/SkxCvKwS6.png) 耶,存在。那麼我們就可以直接製作面量圖了 利用 <font color="F5757C">Graduated</font> 這個東西製作 右鍵你的都市 → 【Properties】 ![image](https://hackmd.io/_uploads/HJhqz5PBa.png) 注意紅框,左邊的那列選擇【Symbology】 右邊那列的選項,選擇【Graduated】||畢業||。 ![image](https://hackmd.io/_uploads/HkryX9PSa.png) 因為我們要做 【P_CNT】 的面量圖,因此【value】記得選擇【P_CNT】 ![image](https://hackmd.io/_uploads/H1rQ7qwSp.png) 題目要求為 <font color="3CF6FE">4</font> 個等級,所以要再多一步設置等級: 將紅框內的數字改成 <font color="3CF6FE">4</font> 即可。 ![image](https://hackmd.io/_uploads/BJxFQ5wB6.png) ::: ### P3:請篩選出該縣市派出所地標。(顯示派出所名稱,截圖) 關鍵字: `LIKE 語法`, `屬性表 Attribute Table`,`labels 文字` , `AND 邏輯運算` :::success 首先,把 ***.csv 檔案***,也就是你的***地標檔案*** 匯進來後,先篩選出你自己的縣市。 並利用【LIKE語法】篩選出【xx派出所】。 最後利用【Properties】內的【Labels】文字,標出***派出所***名稱。 ::: :::warning * 12/02 更新: 題目敘述怪怪的,後來去詢問ㄌ。 ![image](https://hackmd.io/_uploads/SkKatqvrp.png) * 確實是顯示「派出所名稱」,所以詳解沒有問題,不需要另作更動。 ![image](https://hackmd.io/_uploads/Hk_WSYuBa.png) ::: :::spoiler 點我查看詳解 首先,地標檔案要先篩選出我們自己的縣市+【xx派出所】的地標。 對著地標檔案 Right Click 後,選擇【Open Attribute Table】開啟屬性表。 ![image](https://hackmd.io/_uploads/HJD0V9wBa.png) 利用【查詢語法】和【邏輯運算子 <font color="orange">AND</font>】 我們的目標就是找出 <font style="font-size:32px">臺北市</font> 的 <font style="font-size:32px">XX派出所</font> 由於可能會出現像是:臺北市信義分局烏龍派出所 這種名稱,因此要利用 <font style="font-size:32px" color="yellow">LIKE</font> 語法去找到這種情況。 因此我們的查詢地標就會是:<font color="3CF6FE">臺北市</font> <font color="FE3CE6">XX派出所</font> 這邊用不同顏色代表不同的條件 <font color="3CF6FE">臺北市</font>為上面那行:找出 <font color="aqua">臺北市</font> 的地標 <font color="FE3CE6">XX派出所</font>則是下面那行:找出具有 <font color="FE3CE6">XX派出所</font> 的地標 因為是 <font color="orange">AND</font> 所以就可以達成我們要找尋的目標: **<font style="font-size:32px" color="aqua">臺北市</font> 的 <font style="font-size:32px" color="FE3EEE">XX派出所</font>** ![image](https://hackmd.io/_uploads/By00r9wBa.png) 找到之後,要【另存 Layer】,獨立顯示出來。 ![image](https://hackmd.io/_uploads/rkdY85PBa.png) 接下來有一個實作細節:<font color="red">座標參考系統 CRS - 3826</font> 點擊紅框,然後搜尋【3826】 ![image](https://hackmd.io/_uploads/S1FZw5DSp.png) 搜尋 "3826" ![image](https://hackmd.io/_uploads/BJ2_hnOHT.png) 接著就是把【座標參考系統CRS】換成【3826】: ![image](https://hackmd.io/_uploads/HJQq23ura.png) 這樣我們就完成一半了:篩選出我們縣市的所有派出所地標。 ![image](https://hackmd.io/_uploads/SJJDDcPSp.png) 右鍵你的【派出所 Layer】→【Properties】→【Labels】→【Single Labels】 ![image](https://hackmd.io/_uploads/r1uH59PHp.png) ![image](https://hackmd.io/_uploads/BJ5Bq9wBT.png) 因為是要顯示「派出所的名稱」,所以我們 【value】要選擇【place_name】 ![image](https://hackmd.io/_uploads/ByMQ9cDBT.png) 接著,文字要讓它有外框的話,可以用選取 Buffer (藍色的) 然後打勾紅框內的 【Draw text buffer】套用 即可 - 感謝少惟哥的協助 🛐 ![image](https://hackmd.io/_uploads/BJKdccDSa.png) 成品大概就是: ![image](https://hackmd.io/_uploads/SkWZj9Drp.png) ::: ### P4:請篩選出哪些村里沒有派出所。(顯示沒有派出所之村里名稱,截圖) 關鍵字: `Select By Location`, `屬性表 Attribute Table` :::success 利用 ***Select By Location*** 先選取【具有派出所的村里】,接著利用【屬性表】內的 【反選取】功能,反選取即可得出【不具有派出所的村里】了。 接著一樣用 【Labels】顯示村里名稱即可。 ::: :::spoiler 點我查看詳解 首先,找到上面那排【Vector】→【Research Tools】→【Select by location】 ![image](https://hackmd.io/_uploads/rkWCs5wrT.png) 接著,因為我們首先要找的是 <font color="F7CF3C">具有派出所的縣市</font> 因此我們的 <font color="F7CF3C">縣市</font> 就是放在上面的【Select features from】 而下面就是放我們的【派出所】 ![image](https://hackmd.io/_uploads/B1bnTqwHT.png) 篩選出的結果為: ![image](https://hackmd.io/_uploads/ryg7A9vB6.png) 接著,進行反選取:開啟屬性表 ![image](https://hackmd.io/_uploads/BJtVR5wB6.png) 紅色香菇所指的就是反選取,按一下它 ![image](https://hackmd.io/_uploads/ByXDRqDS6.png) 結果就會是反選取後的:沒有派出所的村里 ![image](https://hackmd.io/_uploads/HyFYAcPBa.png) 而我們要顯示這些【沒有派出所的村里】的地名 勢必就要讓這些村里先獨立出來,因此要先【另存 Layer】使其獨立。 ![image](https://hackmd.io/_uploads/SJW20cvB6.png) 利用我們獨立出來的【沒有派出所的村里】創建 Labels 顯示它的名稱: (村里是 **VILLAGE**) ![image](https://hackmd.io/_uploads/ry_EyoPH6.png) 成品大概就是: ![image](https://hackmd.io/_uploads/By_HJjPSa.png) ::: ### P5:承第3題,請建立該縣市派出所800公尺環域。(請注意坐標參考系統) 關鍵字:`座標參考系統 CRS`, `環域 Buffer` :::success 由於我們前面在建立 ***派出所地標*** 的時候 已經把座標參考系統CRS 改成 【3826】 了。 因此,我們在這題 ***<font color="red">不需要</font>*** 特別去設定。 只需要專注在 【Buffer 環域】上即可。 環域在【Vector】→【Geopricessing Tools】→【Buffer】 ::: :::spoiler 點我查看詳解 先找到 Buffer 【Vector】→【Geopricessing Tools】→【Buffer】 ![image](https://hackmd.io/_uploads/SyzIlowra.png) 記得調整成【800 meters】 ![image](https://hackmd.io/_uploads/BJiqgovBT.png) 按下【Run】,這樣就有啦~ ![image](https://hackmd.io/_uploads/BkxTgjwS6.png) 沒有點的話,你只要移動一下圖層就可以了 ![image](https://hackmd.io/_uploads/Hk0kZsvSp.png) ::: ### P6:承上題,請篩選出該縣市派出所800公尺環域內之地標 關鍵字:`交集 Intersection` :::success 其實可以用一句話總結: <strong>取「800M 環域」和「該縣市的所有地標」兩者的交集。</strong> 白話一點:【Buffer 環域的圈圈】和【該縣市的所有地標點】有哪些是重疊的地標點? ::: :::spoiler 點我查看詳解 我們現在需要一個「該縣市的所有地標」這個 Layer 因此利用 【.csv 檔案】,也就是你的地標檔案 先篩選出你縣市的所有地標。 ![image](https://hackmd.io/_uploads/SJfzMovHT.png) 像這樣: ![image](https://hackmd.io/_uploads/H1JNziPBT.png) 選取的是黃色的: ![image](https://hackmd.io/_uploads/BkkIzjDHa.png) 先【另存 Layer】,將其獨立出來 ![image](https://hackmd.io/_uploads/S1BXXjDrT.png) 我們要把與【800M 環域】,也就是黃色圈圈和剛剛另存的「臺北市的所有地標」取交集 ![image](https://hackmd.io/_uploads/S1kcQjwB6.png) 這時候就要用到【Intersection】了 【Vector】→【Geoprocessing Tools】→【Intersection】 ![image](https://hackmd.io/_uploads/H15PViPr6.png) 取交集: 因為我們要的是那些【地標】與【Buffer】重疊 所以上面放【地標】,下面則放【Buffer】 ![image](https://hackmd.io/_uploads/rkRnEivra.png) 成品大概就是: ![image](https://hackmd.io/_uploads/rJh-rswrp.png) ::: ### P7:承上題,請統計各派出所環域內有多少地標 關鍵字:`統計 Statistics by categories` :::success 要統計有多少個地標是在派出所環域內的,要先有交集。 而我們上一題已經取完交集了,所以接著就只需要統計 而統計部分,要先從【屬性表】確認一下哪些欄位是我們所需要的。 之後開啟【Processing Toolbox】找到【Statistics by categories】 利用這個進行統計 ::: :::warning 這題在觀念解釋上稍微難一點,如果還是看不懂,可以多多討論一下 八成是我文筆不夠直觀易懂,若你有更好的解釋方法,歡迎找我討論😭 ::: :::spoiler 點我查看詳解 首先,我們的目標是:<font color="lime">找出各派出所的環域內有多少個地標</font> 結果應該要像是: | 派出所 | 地標數量 | | -------------- |:--------:| | 大正豆漿派出所 | 123414 | | 永和米漿派出所 | 123 | | 永和紙漿派出所 | 2147 | 明顯看出,<font color="red">一間派出所</font> 對上相對應的 <font color="aqua">地標數量</font> 因此等等要先找出我們的派出所欄位 再透過【Statistics by categories】幫忙計算地標數量。 在統計開始之前,要先確定派出所的欄位是哪一個 點開剛剛的【Intersection Layer】 就是你的【800M 環域】與【縣市所有地標】取交集後的那個 Layer 的 屬性表。 你會發現這兩個欄位: - place_name:明顯不是我們要的派出所名稱欄位,它只是普通的地標名稱 ![image](https://hackmd.io/_uploads/SJvoOsDra.png) - place_name2:明顯是我們所要的派出所名稱欄位 ![image](https://hackmd.io/_uploads/S1O6OjPBT.png) 我們等等會用到 <font color="orange">place_name2</font> 作為「放在前面的」欄位 而 <font color="aqua">place_name</font> 則是「地標數量」 再來要找到 【Toolbox】去開啟【Statistics by Categories】 【View】→【Panels】→【Processing Toolbox】 ![image](https://hackmd.io/_uploads/HJgwrjPra.png) 接著,於右側搜尋框鍵入 "stat" 、"statistics" 等關鍵字 ![image](https://hackmd.io/_uploads/BJcFtjvS6.png) 找到【Statistics by categories】,點兩下 + Input Vector Layer:我們剛剛取的交集(「800M 環域」和「該縣市所有的地標」取的交集) + Field to calculate statistics on:選擇普通的地標名稱(place_name) + Field(s) with categories:選擇<font color="red">派出所</font>(place_name2) ![image](https://hackmd.io/_uploads/ryhLqivH6.png) 這樣,就會生出一個這個東西 ![image](https://hackmd.io/_uploads/SkGwisPSa.png) 對它點右鍵,開啟【屬性表】即可看到統計的結果了。 ![image](https://hackmd.io/_uploads/HJdtjsPrp.png) ::: ### How to save CSV files? 靠北。要上傳 CSV 檔案。燒雞 對著你剛剛的統計出來的檔案右鍵【Export】→【Save Features As...】 ![image](https://hackmd.io/_uploads/r1RKs29BT.png) 點擊紅框內的 ![image](https://hackmd.io/_uploads/ByYyn2cSp.png) 選擇這個 【Comma Separated Value】 CSV ![image](https://hackmd.io/_uploads/SkVe22qHa.png) 點擊紅框內的【...】,選擇你存檔案的位置。 ![image](https://hackmd.io/_uploads/Hk9zn25B6.png) 命名,然後存在你自己記得的位置,這應該不用我教...? ![image](https://hackmd.io/_uploads/B1svh3crp.png) 最後,按下確定 ![image](https://hackmd.io/_uploads/ry753nqra.png) 在你剛剛存放的位置,就可以找到了 <font style="font-size:36px" color="red">記得選擇CSV檔案</font> 上傳 看一下紅框內的文字是不是CSV檔案 這樣應該就過了,YA。 ![image](https://hackmd.io/_uploads/Sk0ih29BT.png) 感謝 ***張廣霖*** 電神 提供 _CSV 存檔教學_ ## 後記 這篇文章從零開始到目前的初稿完成花了我大概 $3$ 個小時 好像也不算很久,平時編資研社講義都花我更多時間 xD 本來就有打算寫一篇有關於 QGIS 的筆記 ||給我自己看|| 上次在課堂中時,張廣霖發揮電神之力教完我以後,就萌生了寫一下類似教學+解答的筆記 而很剛好的,今天我閒到發慌,真的不知道要做什麼 又看見冠書在鄭榆懷ㄉ Threads 下面留言有關 QGIS 的東東 就想說要不要來嘗試看看這樣子 xD 反正 $7$ 題而已,全部做起來應該蠻快的 在編寫的過程中,一直不斷去想「對於沒有很了解上課在教什麼的人,我該怎麼讓他理解呢?」, 抱持著這樣的疑問與想法,就開始撰寫。 說實話,不能說是很好的教材,因為這篇只是為了因應上機考而編撰出的筆記。 若是要正式學習,還是建議以老師提供的簡報以及上課認真聽講,遇到不會的問題時提出討論,才是學習 GIS 的最佳解。 最後,希望各位是能夠理解我的文字與做法、想法的。 倘若有任何不懂的地方、想要我更多說明的地方,歡迎 PM 我。 也可以一起討論,因為我也超爛QQ。 那就這樣,預祝大家考試順利。