文化導向地理資訊系統 Quantum-GIS 應用實務
<第三單元> 地圖套疊篇
郭俊麟 林農堯 編著
第三單元:地圖套疊篇
第一章:影像套疊與幾何校正 第二章:新建圖徵與圖層編修 第三章:地址資料的地圖定位 第四章:地圖影像的網路發布
1
第一章 影像套疊與幾何校正 影像套疊是數位化地理資訊處理的常用功能之一。例如將紙 本地圖、航空照片或是衛星影像等電子檔,經過幾何校正處理後 即能賦予影像檔案正確的地理空間位置。使用者可進一步從校正 好的影像中,進行點、線及面的圖徵截取,製作或加值成其他具 有空間及屬性的地理資料。在進行影像套疊之前須要有參考的地 圖資料,以校正影像空間位置,本書以網路上公開可取的圖資, 如 Google 地圖做為影像校正的依據。
1.1 安裝參考底圖 首先請至 QGIS 的附加元件中安裝 OpenLayers Plugins,在附 加元件選單中,開啟 Python 附加元件(圖 1.1),在[附加元件主機] 中按下[新增非官方主機](圖 1.2),此時 QGIS 會連上網路上各種 附加元件主機,下載附加元件清單。
圖 1.1
2
圖 1.2 安裝附加元件的畫面中,可以在過濾條件入關鍵字以找出符 合的附加元件。之後選取安裝 OpenLayers Plugin(圖 1.3)。
圖 1.3
1.2 影像圖資來源與說明 紙本地圖:在德州大學奧斯丁分校的館藏網站上有 1944~1945 年,美軍飛行員在準備轟炸臺灣之前所繪製的臺灣各城市的地圖。 這些地圖呈現了日治時期全臺主要城市的最後面貌。德州大學已 3
經將這些地圖掃描且提供下戴,網址為 http://www.lib.utexas.edu/maps/ams/formosa_city_plans/。此教學範 例選擇 Taihoku-Matsuyama 1:10,000 1945 這張地圖(圖 1.4)。
圖 1.4 參考地圖:Google 街道地圖、地形圖及衛星圖,由 OpenLayers 附加元件中載入。 將紙本數位化之後,可以使用影像軟體將不需要的部分切除, 例如:邊框。為了教學方便,就先不切除邊框。要將影像檔進行 空間校正,首先在這圖檔上設定數個空間控制點(QGIS 譯成參考 點)。之後再使用幾何校正的演算法,將整張影像的像素移動、變 形、放大或縮小到適當的位置。 設定原始影像的控制點必須知道其坐標。在 1945 年臺北這 張地圖上,可以從地貌、建築物、街道、河流位置比照 Google 4
地圖中位置,可以給予控制點正確的坐標。由此圖的特性,使用 建築物與街道輪廓會比河流好,河流的大小形狀較會因為季節、 水量的不同而改變;相對而言臺北的歷史建築物位置是不變的, 例如日治的總督府就是現在的總統府;總督官邸就是現在的臺北 賓館。另外這張圖上也有經緯度的參考線,可以直接判讀,不需 比照參考圖的位置,直接設定控制點的坐標。
1.3 幾何校正 進行幾何校正前,通常會載入一張參考的底圖,可以是向量 檔案、影像檔案或網路上的圖層,如 WMS。此例使用附加元件 中的 OpenLayers plugins 加入 Google 地圖當作參考底圖(圖 1.5)。
圖 1.5 加入 Google 底圖後,此時專案的坐標系統自動會設定為 EPSG:900913,而不是 EPSG:4326(WGS 84)。Google 坐標系統為 5
最早稱為 EPSG:900913,因為 900913 數目字形很類似 google。目 前較正確的 EPSG 代碼為 EPSG:3857。 在 QGIS 的附加元件中內建“幾何校正(Georeferencer)”功能 (圖 1.6)。處理過程主要流程為 1.開啟影像檔案;2.設定控制點(參 考點);3.設定幾何校正演算法;4.執行。
圖 1.6 執行幾何校正後會出現一子視窗,幾何校正在此子視窗中行 進。幾何校正子視窗可以原有的 QGIS 地圖相互操作切換。 幾何校正常用的功能在上方的工具列中,按鈕的作用可以將滑鼠 指標放在其上即會出現中文說明。在找尋適合的控制點時,常會 用在移動、放大、縮小及縮放至圖層範圍,這些操作與使用 QGIS 一樣。下方的 GCP 表格則是已經新增的控制點,亦可以在 GCP 表格編輯其值。GCP 表格中的每筆資料也與幾何校正影像的紅點 相互連動(圖 1.7)。
6
圖 1.7 在載入影像後即開始新增控制點。控制點的選擇除了是可識 別的空間位置之外,盡量均勻分佈在影像檔案中,勿集中特定區 域,以取得較好的幾何轉換效果。控制點的數量一般經驗是四個 以上,除此之外數量至少要多於或等於幾何校正演算法要求的數 目,才可以轉換處理。重複以上過程,即可設定多個控制點,這 些控制點的坐標系統為 EPSG:900913。之後進行運算可以指定目 標的坐標系統。設定好控制點後亦可以移動或刪除以調整更精確 的位置。當控制點完成後,可以將這些資訊儲存至 GCP 檔案中, 日後可以後續修改。本例選擇總統府前的圓環。步驟如圖 1.8。
7
圖 1.8 在操作過程中可以直接輸入 X 與 Y 值,不過較簡單的方式是 從參考圖中取得,即是 QGIS 視窗中 Google 街道圖。在 QGIS 視 窗中亦可以移動、放大與縮小 Google 街道圖,以得到精準的坐標 值。在按下 Google 街道圖中同一地點的圓環後,輸入地圖坐標對 話方塊自動會填入參考底圖中圓環的 X 與 Y 的數值 (EPSG:900913)。接下來依同樣的方法新增其它的控制點。 在開始設定轉換的演算法之前,可以按儲存圖示將設定的控 制點儲存,以供之後編修。按下設定圖示後,可以設定轉換的演 算法,本例選用薄板曲線法演算法。目前 QGIS 支援的幾何校正 轉換的演算法,如下
線性 保角(Helmert)轉換(最小 2 點) 8
一階多項式(最小 3 點) 二階多項式(最小 6 點) 三階多項式(最小 10 點) 薄板曲線法(Thin plate spline-TPS)
Projective
影像轉換設定(圖 1.9)有許多設定,簡單說明如下。
轉換演算法 前兩種演算法會僅會移動或縮放影像,影像不會產 生形變。 重新取樣方法 重新取樣方法則是當處理每個圖素時考慮鄰近圖 素的不同方法,一般而言可以使用預設值。 壓縮方式 壓縮方式則可以決定校正過的圖檔使用壓縮的方 式。 輸出影像 輸出影像為 GeoTiff 檔案,GeoTiff 為影像檔且具有 坐標資訊。 目標 SRS 指定控制點坐標系統,之後輸出的 GeoTiff 即會使 用此坐標系統。 PDF 報告 較專業的幾何較正會需要此報告以供參考之用。 設定目標解析度 若無改變解析度的需求,則不用設定。 需要時使用 0 表示透明 若校正後的影像檔案會產生形變,則可能會產生不 規則的黑邊,可以設定”需要時使用 0 表示透明”,如此 黑邊就會變成透明。 完成後載入至 QGIS 中 9
轉換完成可以動載入 QGIS 中,建議處理高解析的 大型檔案可以手動載入。
圖 1.9 影像轉換後幾何校正子視窗中的下方訊息會算出平均誤差 值(mean error)。在產生的 PDF 報告中亦會有每個控制點的誤差。 在新增控制點時,可以多設一些,之後將 resTot 值較大設為 off 不使用。再多執行幾次轉換以試著降低平均誤差(圖 1.10)。
10
圖 1.10 將幾何校正處理好的影像載入 QGIS 中(圖 1.11),若不能正確 套疊,此時要注意載入的影像有沒有指定正確的坐標系統。此範 例要設定為 EPSG:900913。正確的載入套疊後,可以將此影像檔 案設定透明度以交互比對。若還調整,則可以重新開啟幾何校正, 載入原始影像及儲存的 GCP 檔,之後修改或新增控制點,再重新 轉換一次。多練習幾次就很容易上手。
11
圖 1.11 使用參考底圖作幾何校正是一種方法,此影像地圖還有標示 經緯度可以不須參考底圖即可進行幾何校正。在影像地圖中的邊 框鑲有經緯度度分秒值,可以直使對照輸入取得該值後換算經緯 度數值後輸入,如圖 1.12。之後的影像轉換程序,就如同之前一 樣進行即可。記得目標的坐標系統選擇 EPSG:4326(WGS84)。一 般而言,使用此方式的速度較快且精準。
12
圖 1.12 將未有空間坐標的影像進行幾何校正後,就可以針對該影像 的特徵使用 GIS 功具截取出空間資料,如點、線及面資料。這也 就是下個單元將會詳細介紹。
13
練習 1 將德州大學奧斯丁分校的館藏網站上”Taihoku-Matsuyama 1:10,000 1945”這張地圖,使用經緯度格線加入控制點進行幾何校 正,並比較三階多項式、薄板曲線法(Thin plate spline-TPS)及 Projective 演算法轉換的差異。最後輸出這三種轉換的 PDF 報告。
14
第二章 新建圖徵與圖層編修 2.1 地圖數位化 當有合適的影像資料或參考底圖,就可以將這些資料數位化 成向量資料,此過程簡稱為數化。當資料向量化後變進一步編輯 及運算,例如輸出精美的主題地圖、或者結合更多屬性資料產生 統計圖。 若需要數化的參考圖是當代的地圖資料,就可以直接使用 OpenLayers 附加元件加入 Google 地圖,直接在其上進行數化。 若需要臺灣早期的資料,則可以使用中央研究院人社中心地理資 訊科學研究專題中心的擴充套件,讓 OpenLayers 有臺灣早期歷史 資圖層。若以上資料都沒有則可至圖書館或網路上找相關的地圖, 掃描數位化成電子影像後,再使用幾何校正付予空間坐標,之後 就可以在其上進行數化。例如:德州大學 Formosa (Taiwan) City Plans 網頁中臺灣 26 個城市數化後,就能對 1944-1945 的臺灣城 市作更進階的研究。若是沒有合適的地圖,僅有文字述敘,則可 以考證其現代的實際位置後,以現代地圖為基礎進行數化。在進 行研究及調查資料時,通常會蒐集到許多空間資訊,如地址或地 名。地址或地名可以藉由既有圖資進行地理編碼運算,推算其空 間坐標。以上的說整理如下, 1. 2. 3. 4.
在現代地圖(Google 地圖)進行上數化; 在臺灣百年歷史圖資圖層數化; 自行掃描地圖後,進行幾何校正後再數化; 研究考證地點後在現代地圖上數化;
5.
將地名與地址進行地理編碼運算取得空間坐標。
15
在進行數化之前是先了解參考底圖的坐標系統,之後新增數 化的圖層可以指定不同的坐標系統,QGIS 會自動轉換。之後也 可以使用 QGIS 另存檔案的功能,將數化資料另存成另一種的坐 標系統、編碼方式或檔案格式。 將各種空間資料數位化成向量資料,通是是使用點、線及面 (多邊形)來表示各種資料。點能代表許多資料的位置,例如世界 地圖中的城市,可以用點來表示。不過在市面上的導航地圖中, 城市卻是由各種線(街道)、面(建物)及點(Point of interest)所組成。 最好的方式是依不同的比例尺決定數化的幾何形狀。 GIS 的空間資料主要包括兩個部分,一是空間坐標資料;另 一部分則是屬性資料。空間空間坐標資料就是點、線及面資料加 上坐標系統。點的資料為 x,y,z 數值;線的資料由兩點以上組成; 面的資料與線類似,但是面的資料是三點以上且第一點資料要與 最後一點的值樣,代表是封閉的多邊形,故多邊形的最少儲存單 位是四個點。屬性資料則可以為整數、實數及文字…等。常見的 ESRI 格式說明如下 *.shp=>空間資料 *.shx=>空間資料索引 *.tab=>dbase 格式的屬性資料 *.prj=>空間資料的坐標系統描述 空間資料庫屬性資料就如原本資料的儲存方式一般,空間資 料則是用二進位的方式儲至攔位中滿並且會建立空間索引,以加 快查詢進度。QGIS 新增向量資料的方式是使用 ESRI Shape 檔案 為基礎的方式進行。
16
2.2 數化點圖徵 使用 OpenLayers 附加元件加入 Google 街道圖為參考底圖進 行數化。此時的底圖的坐標系統為 EPSG:900913,進行數化目標 為捷運站為點圖徵,空間坐標系統使用 EPSG:4326(WGS84)。圖 層的屬性資料表需視需求及用途仔細規劃,舉例如表 2.1。 表 2.1 檔名:mrt_point 資料欄位名稱
說明
類型
欄位大小
id
編號(預設)
整數
10
name
捷運站名
文字
40
line
線段名稱
文字
20
color
代表顏色
文字
10
crossline
共線代碼
文字
20
note
備註
字串
80
按下[新增 Shape 檔圖層]後,會跳出新增向量圖層的對話方 塊,接著指定向量檔案的類型為[點]。坐標系統為 EPSG:4326(WGS84)。 新增屬性作法按照上表規劃的輸入,重複步驟 4 與步驟 5。 將欄位屬性一一鍵入屬性清單中(圖 2.1)。
17
圖 2.1 設定好屬性資料的架構後,可以開始新增各捷運站的點資料。 按下工具列上的筆圖示,代表進入編輯模式;按下三點圖示,代 表要開始新增點資料;按下地圖上的捷運台北車站,付予空間坐 標;之後會出現屬性對話方塊,可以開始輸入台北車站的屬性資 料。重複步驟 3 與步驟 4,點選不同捷運站,即可以完成臺北捷 運站的點資料(圖 2.2)。
18
圖 2.2 同時可以開啟 mrt_point 圖層的[屬性表格],在表格中也可以 編輯屬性資料。若要修改點資料的空間位置,則可以使用工具列 上的移動按鈕來調整(圖 2.3)。
19
圖 2.3 當輸入資料完畢後,按一次儲存圖示,將目前的所有變動儲 存至檔案,再按一筆圖示解除編輯模式。完成以上動作才算完成 新增點圖徵的動作。 當建立所有點圖徵後,可以使用欄位計算的功能將每點的 x, y 坐標值顯示出來。在欄位計算的對話方塊中以下列方式操作即 可,要注意的地方是在欄位計算的表示式中,輸入$x 代表坐標系 統的 x 值,如緯度;輸入$y 代表坐標系統的 y 值,如經度(圖 2.4)。
20
圖 2.4
2.3 數化線圖徵 使用 Google 街道圖為參考底圖進行數化。此時的底圖的坐標 系統為 EPSG:900913,進行數化目標為捷運路線為線圖徵,空間 坐標系統使用 EPSG:4326(WGS84)。舉例如表 2.2。 表 2.2 檔名:mrt_line 資料欄位名稱
說明
類型
欄位大小
id
編號(預設)
整數
10
name
捷運站名
文字
40
line
線段名稱
文字
20
color
代表顏色
文字
10
note
備註
字串
80
21
按下[新增 Shape 檔圖層]後,會跳出新增向量圖層的對話方 塊,接著指定向量檔案的類型為[點]。坐標系統為 EPSG:4326(WGS84)。 新增屬性作法按照上表規劃的輸入(圖 2.5)。
圖 2.5 之後輸入 mrt_line 按[Save](圖 2.6)
圖 2.6 22
左側的圖層清單會出現 mrt_line,設定好屬性資料的架構後, 可以開始新增各捷運路線的線資料。 0.使用移動及放大/縮小功能找出板南線開始之處。 1.按下工具列上的筆圖示,代表進入編輯模式 2.按下[三點連線圖示],代表要開始新線段資料 3.畫線 使用滑鼠左鍵開始第一點,之後建立的每一個轉折點也是 滑鼠左鍵,直到編輯完成一條線之後,再按滑鼠右鍵結束。 在畫線過程中可以直接使用平移、放大及縮小地圖,之後 再按[三點連線圖示]繼續畫線。 4.結束之後會出現屬性對話方塊,可以開始輸入板南線的屬 性資料。 重複步驟 3 與步驟 4,畫出不同捷運線,即可以完成臺北捷 運站的線圖徵資料(圖 2.7)。
圖 2.7 23
很少情況可以一次畫得完美,在輸入屬性資料後還是可以調 整線段,讓線圖徵更完美。 1.按下[三點連線加指標圖示]後,編輯的線段轉折點上多了一 紅字的框,代表可以移動。 2.按住滑鼠左鍵且點選一小紅框移動至適合位置(圖 2.8)。
圖 2.8 滑鼠指標雙擊兩轉折點之線段,則會產生新的轉折點(圖 2.9)。
圖 2.9 24
稍為調整一下轉折點位置,線段就會更貼進底圖的路線。若 要刪除轉折點,則點選該轉折點變會成藍色小框,之後再按鍵盤 的 Delete 就可直接刪除(圖 2.10)。
圖 2.10 使用上述的技巧重複調整不完美之側,就會讓此線圖徵更完美。 最後當所有線段輸入資料完畢後,按一次[儲存圖示],將目前的 所有變動儲存至檔案,再按一[筆圖示]解除編輯模式。完成以上 動作才算完成新增線圖徵的動作。
2.4 數化多邊形圖徵 作法與數位線圖一樣,不過在數化過程中,QGIS 會自動將 線段封閉且使用半透明紅色填滿(圖 2.11)。這部分的操作就不加 以贅述。
25
圖 2.11 新增環形:如果湖面上有小島,要數化這樣的圖徵,就可以 使編輯中的[新增環形]來處理。在多邊形圖層中切換到編輯模式 後,在多邊形中再畫一個多邊形代表小島(圖 2.12)。
圖 2.12 26
完成後原本的多邊形中間部分就會消失,形成一個環形(圖 2.13)。
圖 2.13 若要恢復此成原狀,可以使用復原功能或使用刪除環形。刪 除環形時需點擊環形內部的線段。 新增部件:若是在數化陸地海岸線及周邊的小島,則可以使 用[新增部件]功能。在多邊形圖層中切換到編輯模式後,開啟屬 性表格且選取要增新部件的多邊形圖徵,之後在該多邊形外再畫 一個多邊形。如此這兩個多邊形雖然是分開的狀況,但也是屬於 同一筆資料(圖 2.14)。
27
圖 2.14 若要恢復此成原狀,可以使用復原功能或使用刪除部件。刪 除部件時需點擊多邊形的轉折點。 重塑圖徵:重塑圖徵是畫一新的多邊形來刪去原本的圖徵(圖 2.15, 2.16)。
28
圖 2.15
圖 2.16 分割圖徵:分割圖徵是畫一線段分割多邊形且屬性資料也會 視切割的數目而改變(圖 2.17, 2.18)。 29
圖 2.17
圖 2.18 合併選取圖徵:將兩個不同的圖徵合併。在屬性表格中選擇 要合併的資料,QGIS 預設會用黃色顯示已選的圖徵(圖 2.19)。
30
圖 2.19 之後在[編輯]中按下[合併選取圖徵]後會出現合併屬性的提 示對話方塊(圖 2.20)。
圖 2.20 確定後,圖徵就會合併。第一筆為中間的黃色已選取的圖徵, 第一筆則為分開為左右的圖徵(圖 2.21)。
31
圖 2.21 在工具列上有圖徵的編輯工具,分別為新增多邊形圖徵、移 動圖徵、節點(轉折點)工具、刪除已選取的圖徵、剪下圖徵、複 製圖徵及貼上圖徵。善用這些工具能加快數化的速度(圖 2.22)。
圖 2.22 在數化圖徵完畢儲存圖資時,QGIS 可以選擇圖資的坐標系 統及屬性資料編碼方式。坐標系統可以使用臺灣常用的坐標系統 或者全世界通用的 WGS84 或 EPSG:900913。屬性資料編碼則要 考慮清楚要選擇 system(在臺灣指 Big5)還是 utf-8 編碼。 32
Big5 是 1984 年由中華民國財團法人資訊工業策進會為五大 中文套裝軟體所設計的中文內碼,大約有 13,060 字,很多日常用 字被視為異體字或少用字而未收錄,形成缺字問題。例如臺灣教 育部視「着」為「著」的異體字,故 Big5 沒有收錄「着」字。另 外,像常見的人名用字:游錫「堃」、王建「煊」、張「栢」芝、 陶「喆」等,也沒有收錄到 Big5 之中;至於早期地圖上的地名或 現今仍使用的地名,也常常有這樣的問題,如打「猫」(現今的 嘉義) 、社「藔」 (現今的和平島),澎湖縣湖西鄉「菓」葉村(Wiki)。 相較於 Big5,Unicode(萬國碼)包含了超過十萬個字元的編碼; 除了支援較多中文字元外,Unicode 更有正體中文、簡體中文、 日文…等字元的支援。臺灣的地名受到外來移民或殖民影響,所 以在臺灣的地理資料中,考慮多國語言的能力就相當重要,例如 要處理日治時期臺灣堡圖,就得同時支援中文及日文。使用 Unicode 為基礎的資料存儲方式就格外重要。在 QGIS 中可以選擇 utf-8 編碼儲存就可以享受 Unicode 編碼的好處。 將真實世界的狀況繪製成地圖,僅僅使用點、線及多邊形就 可以在電腦中表示,真是神奇的事。透過將影像數化成向量圖徵, 可以進一步作空間分析與進階運算。
33
練習 2 1.
2.
將德州大學奧斯丁分校的館藏網站上”Taihoku-Matsuyama 1:10,000 1945”這張地圖基隆河的部分數化成多邊形圖徵。 下戴網址為 http://www.lib.utexas.edu/maps/ams/formosa_city_plans/ 將上述 1945 年河流圖徵套疊至 Google 地圖上,並且在 Google 地圖上數化同一段基隆河。
在屬性表格內新增計算面積欄位,比較其面積,並嘗試解釋說明 其意義。
34
第三章 地址資料的定位與數化 大量的地址或地名資料如何數化呢?以下介紹的方式主要 是使用 Google 地圖的雲端運算進行地理編碼運算(Geocoding), 也因為如此,故可以支援多國語言及世界上大部分的國家的地理 編碼運算。 使用地址進行地理編碼運算時,要注意愈高度高發的城市會 愈精準;愈鄉下的地區愈不準。一方面是城市在更新圖資上通常 會較鄉下來的頻繁,更重大的因素是地址的運算是用街道圖徵線 性內插法求得。都市街道中相鄰的房屋較為連續且平均分佈於街 道上;鄉村裡同一條道路的房屋則通常分佈不均;同理在山區更 是不精確。在地名的部分的處理方式是直接比對地名資料庫,理 論上會非常正確。但是要注意地名的語意是否容易混謠。例如: 使用“臺北車站”定位時,回傳臺北火車站還是臺北客運總站。此 問題是使用地名的語意就不清楚。另外一原因是有同名異地的問 題。若使用“公館”定位時,也會傳回一個坐標值,但是其值是臺 北的還是苗栗的呢?解決的方式是在地名之前加上指定的行政 區,以提減少語意上的模糊及提高定位的精準度。例如:“苗栗縣 公館鄉”。 使用 Google 地圖進行地址或地名定位的主要步驟如下。 1. 2.
整理屬性資料與地址或地名清單 Google 文件的表格( Fusion Tables)
3.
匯入清單 Geocoding 將地址轉成 EPSG:4326(WGS84)之坐標值 匯出成 KML 檔案 Google 地球中開啟 KML 檔案
4.
另存成新的 KML 檔 QGIS 中開啟新的 KML 檔 轉存成 ESRI Shape 檔案 35
接下來就舉實例說明。教學的資料來源由此網頁 http://www.ibon.com.tw/0000/store.aspx。由於 7-11 便利商站的資 料無法找出完整的地址清單,於是從 ibon 的據點下手。有 i-bon 的 7-11,就應該就包含了主要 7-11 的據點(圖 3.1)。
圖 3.1 雖然資料有全臺灣的資料,不過只將台北市各區的 7-11 店名、 店號及地址資料整理至 Excel 中,之後儲存成 Taipei_i-bon.xlsx 檔 案(圖 3.2)。
36
圖 3.2 使用 Google 文件中的表格(Fusion Table)功能(圖 3.3),匯入 Excel 檔案進行地理編碼運算。Google Fusion Table 的網址是 http://www.google.com/fusiontables/Home/ 或者由 Google 文件網址 http://docs.google.com/進入使用。
37
圖 3.3 選取檔案(圖 3.4)。
圖 3.4 指定第一列是欄位名稱(圖 3.5)
圖 3.5 填寫此表格的詮釋資料,按下[Finish]即匯入完成(圖 3.6)。 38
圖 3.6 資料在 Google Fusion Table 中每頁顯示 100 筆,接著要指定 空間欄位,在[Eidt]中選擇[Modify colums](圖 3.7)。
圖 3.7 指定[地址]欄位的型態是位置資訊(圖 3.8)。 39
圖 3.8 滑鼠移至每筆地址後面,會出現 Google 地球圖示(圖 3.9)。
圖 3.9 按在[Google 地球圖示]後會出現一張小地圖,且標示出 Google 使用該地址的空間位置。此位置若有誤可以調整地址後重 新搜尋,再使用綠色的圖標取代(圖 3.10)。
40
圖 3.10
甚至可以使用街景功能,確認坐標定位的品質(圖 3.11)。
圖 3.11 41
在 Google Fusion Table 中將[Visualize]切換至[Map]檢視, Fusion Table 會將所有的地址轉成坐標(圖 3.12)。
圖 3.12 這動作即使用 Google 的雲端運算,也需要一段時間(圖 3.13)。
圖 3.13 處理完後就可以在地圖上看到處理結果,接下來按[Export KML]。將 KML 檔案儲存至硬碟中(圖 3.14)。 42
圖 3.14 此時的 KML 是沒有坐標資訊,如圖 3.15
圖 3.15 在 Google 地球中開啟匯出的 KML 檔案。此時 Google 地球 還會重新處理地址,故必須等待所有資料顯示完畢後,再使用[將 位置另存為](圖 3.16),儲存為另一個新 KML 檔案。 43
圖 3.16 此時的 KML 檔就含有坐標資訊(圖 3.17)。
圖 3.17 QGIS 轉存 ESRI Shape 檔案。接下來就可以使用 QGIS 開啟 新產生的 KML 檔案(圖 3.18)。
44
圖 3.18 開啟後如圖 3.19,所有的屬性都放在 Description 中。此時可 以使用店號將原本的表格 join,就可以加入原本的欄位。
圖 3.19 45
接下來就可以將此 KML 檔案另存成 ESRI Shape 檔案(圖 3.20, 3.21)。
圖 3.20
圖 3.21 使用這樣的程序就可以將大量地址或地名的資料數化成向量點 圖徵。之後就可以利用這些資料進行空間運算與研究。 46
補充資料 3.1 Geocoding Geocoding 是一個義大利人寫的程式,透過 Google Map 提供 的 Geocode 功能,可以將全世界不同的語言中的地名、地址轉成 WGS84 坐標;或者坐標找出地名或地址。安裝方式如圖 3.1。若 使用在 QGIS 中找地點或是進行少量的點圖徵的數化是非常好用 的工具。
圖 3.1 安裝好即會在附加元件中看見 GeoCode(圖 3.2)。
圖 3.2 47
第一次開始使用前必須至 Settings 中填入 Google API Key 才 可以使用。請按藍色的[Get a Google API Key],連至 Google 網站 且登入後,才可以申請 Google API Key。網站網址輸入 localhost 即可,之後將一長串的 Google API Key 貼至 Settings 對話方塊(圖 3.3)。
圖 3.3 每次使用前必須設定專案的坐標系統,請至[專案屬性]中指 定(圖 3.4)。
圖 3.4 48
因為底圖是使用 OpenLayers 的地形圖,所以專案的坐標系統 也設成與底圖的坐標系統一樣(圖 3.5)。
圖 3.5 接下來就可以執行 GeoCode,將地名、地址標在 QGIS 中(圖 3.7)。
圖 3.7
49
因為 Google 地圖有世界大部份國家的圖資,所以可以輸入各 種語言(圖 3.8)。
圖 3.8 GeoCoding 之後的結果可以另存成 ESRI Shape 檔案的式,之 後可以自行擴充運用(圖 3.9)。
圖 3.9 Reverse GeoCode 則是將滑鼠點到的地點找出其地名或地址 資訊,如下圖。同樣地這些結果都可以儲存成 ESRI Shape 檔案(圖 3.10)。 50
圖 3.10
3.2 CSV 純文字檔圖層 雖然此功能的位置不在附加元件中,但是它的確是附加元件 之一。在附加元件管理器中就可以發現此項目(圖 3.11)。還記得 附加功能的演進過程嗎?沒錯!此功能已經穩定且經常使用,所 以納入內建的功能,且移至[圖層]的選單中。
圖 3.11 CSV 英文全稱為 Comma Separated Values,簡稱 CSV。通常 51
要建立以地點為主的地圖會蒐集各種屬性資料及坐標資料。之後 使用的 Excel 將資料作進一步的處理。處理完之後,可以使用 Excel 將資料匯出成 CSV 格式。其格式的例子如下。 id,name,type,x,y,ac 1,台北,城市,121.5598345,25.0910750,3 2,台北火車站,地標,121.5170810,25.0479240,9 3,台北市中正區中山南路 1 號,地址,121.5195030,25.0438940,8 4,中国 山東省臨沂市,市,118.3477070,35.0517120,4 5,New York,City,-74.0059731,40.7143528,4 6,鹿児島県,県,130.5579779,31.5601464,2 7,서울,도시,126.9779692,37.5665350,4 在[圖層]選單中按下[新增 CSV 純文字檔圖層](圖 3.12)。
圖 3.12 在[瀏覽]選取 CSV 檔,之後選擇分欄的符號(delimiters),若 都沒列出,可以在[一般字元]中自行輸入或用正規化表示式來找 出分欄的模式。若資料名稱不是在第一列(值為 0),則以在[Start import at row]中指定。最後一個步驟要指定空間的欄位,若是點 坐標則在[X Y fields]中選擇對應的欄位名稱;若是線或多邊形, 該欄位值則需使用 WKT(Well-known text)的格式(圖 3.13)。WKT 52
點、線及面的簡單表示法,如表 3.1。 表 3.1
圖表來源 http://en.wikipedia.org/wiki/Well-known_text
圖 3.13 成功加入後,亦可將其轉存成 ESRI Shape 檔案,以供後續編 輯使用。
53
第四章:地圖影像的網路發布 將地圖校正或繪圖成果直接發佈成網頁地圖,可讓一般大般 可以透過瀏覽器觀看且操作地圖。在 QGIS 中可以將向量檔案設 定樣式後案匯出具空間坐標的影像檔案;亦可將影像檔案作空間 幾何校正變成具空間坐標的影像檔案。這兩種方式的檔案都可以 輸出在網頁上供人使用。 本教材使用 Maptiler 軟體,請至 http://www.maptiler.org/ 下 載。這軟體也是開放源碼軟體可免費使用。Maptiler 核心使用非 常多 Open GIS 的軟體及技術。安裝好後,執行畫面如下。 要產生網頁版的地圖,請選第一項。
圖 4.1 接下來要選擇要放在網頁地圖上的影像檔,例如可選擇之前 章節所幾何校正處理過的地圖。 54
圖 4.2 接下來指定該影像的坐標系統,由於之前產生的影像是使用 EPSG:900913,此程式沒有內建,改用自行輸入 EPSG:900913 之 Proj4 的表示法。 +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +over +no_defs 此資訊可以由 QGIS 中查詢得之,如圖 4.3。 在填上 EPSG:900913 之 Proj4 的表示法,之後可以按一下 [Preview the map reference with this SRS]預覽一下此範圍。正確無 誤後再繼續下一個步驟。
55
圖 4.3
圖 4.4 56
Maptiler 會按比例尺產生層級,每個層級中會有許多地圖 方塊(tile),地圖方塊的檔名即為 Google 地圖、Google 地球與 OpenLayerse 計算且判別空間位置的資訊。 這步驟可以指定要產生的層級的範圍與地圖方塊的影像格 式。層級的範圍由來源影像的解析度而定,若解析度愈高,則層 級可以設高些。但是層級愈高地圖方塊會愈多,所需的空間也愈 大,產生的時間也大大的拉長。
圖 4.5 圖 4.5 指定地圖方塊的位置及地圖網頁產生的位置。若此地 圖要放在公開的網站,可以在此輸入網址。接下來則是決定要產 生何種的網頁地圖,有 Google 網頁地圖、OpenLayers 網頁地圖 及支援 Google 地球的檔案(圖 4.6)。
57
圖 4.6
圖 4.7 58
圖 4.8 為輸入網頁地圖的名稱及版權說明,也可以選擇性輸 入 Google Map API key 或 Yahoo Application ID Key。接下來會開 始處理不同解析度層級的地圖方塊,此程序會花費較久的時間。
圖 4.8
圖 4.9 59
完成後會出現產生完成的資料夾路徑,按一下就可以開啟。 產生的資料夾中除了地圖方塊的資料夾之外,還有兩個地圖網頁 檔案及一個此次設定參數的 XML 檔案。兩個地圖網頁都可以使 用網頁編緝器加次客製化修改。
圖 4.10
圖 4.11 Google 網頁地圖如下圖,可以自由調整套疊圖層的透明度及切換 底圖。 60
圖 4.12 OpenLayers 網頁地圖則提供了 Google、Microsoft 及 Yahoo 的 底圖可以使用。透過以上的程序,就可以簡單地在網站上與世界 分享地圖。
圖 4.13
61
國立東華大學「人文數位與 GIS 學程」實作教材