以GeoJSON壓縮技術增進網路資料傳輸效能之研究 - 政大學術集成
77
0
0
全文
(2) 應用 GeoJSON 技術提昇空間資料交換之研究. 以 GeoJSON 壓縮技術增進網路資料傳輸效能之研究 Efficiency Improvement of Spatial Data Transmission by GeoJSON Compression Techniques 研 究 生:. 陳欣瑜. Student:Hsin-Yu Chen. 指導教授:. 何瑁鎧. Advisor:Maw-Kae Hor. 資訊科學系 碩士論文. 學 ‧. ‧ 國. 立. 政 治 大 國立政治大學. n. er. io. sit. y. Nat. A Thesis Submitted to Department of Computer Science National Chengchi University a v i in partiall fulfillment of the Requirements n Ch n gdegree c h i ofU forethe Master in Computer Science. 中華民國九十九年十二月 December 2010.
(3) 應用 GeoJSON 技術提昇空間資料交換之研究. 以 GeoJSON 壓縮技術增進網路資料傳輸效能之研究. 摘要. 標準化的地理資料交換格式是開放式地理資訊系統不可或缺的一環, 可提供不同的平台經由統一的交換格式而順利進行資料交換。GeoJSON 除. 政 治 大 了具備基本的資料互通性外,其結構簡單且容易讀取的特性為地理資訊服 立. ‧ 國. 學. 務軟體帶來許多效益。然而座標資料量之多寡直接影響資料傳輸效能,為. ‧. 提昇傳輸效率,必須配合有效的資料壓縮技術以降低傳輸之資料量。此外,. sit. y. Nat. GeoJSON 壓縮方法的設計與結構訴求,也須融合 GeoJSON 的概念,以簡. er. io. 單、方便運用與容易了解為目標。. n. a. v. l C 壓縮技術進行空間資料的壓縮,以降低資料 本研究提出一套 GeoJSON ni. hengchi U. 量而增進 Web GIS 地理資料傳輸的效能。除評估其壓縮效率,並透過不同 規模以及不同型態的地理資料,分析影響壓縮效率的原因。最後藉由 HTTP 壓縮技術輔助,並從資料傳遞的時間與壓縮率,評估本研究提出的方法所 帶來的成效。我們同時以單向雜湊函數,建立資料傳遞時的檢查機制,以 確保資料傳遞時的正確性與一致性。 實作中,我們採用 GeoJSON 壓縮技術,進行座標資料的大小減量實驗,. i.
(4) 應用 GeoJSON 技術提昇空間資料交換之研究. 結果顯示本研究方法可以得到不錯的壓縮成果與傳輸效能,並且可避免資 料傳輸發生問題。. 關鍵字:GeoJSON、差分編碼、單向雜湊函數. 立. 政 治 大. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. ii. i n U. v.
(5) 應用 GeoJSON 技術提昇空間資料交換之研究. Efficiency Improvement of Spatial Data Transmission by GeoJSON Compression Techniques. Abstract. Standardized GIS data exchanging format is an essential part of Open GIS.. 政 治 大. This enables GIS data providers, software developers, and system integrators to. 立. exchange GIS data from different platform.. The simple structure of. ‧ 國. 學. GeoJSON not only has the data interoperability potential but also has the characteristics of easy processed and readability.. ‧. benefit the GIS service software.. These properties directly. However, the amount of spatial information. y. Nat. a. er. In order to improve the data transmission efficiency, one. io. data transmission.. sit. encoded in GIS documents usually has direct impact to the efficiency of GIS. n. v l spatial data transmitted has to reduce the amount of n i through data compression techniques.. Ch. engchi U. In this thesis, we proposed a data compression mechanism for spatial data. Our mechanism, co-operated with the concept of GeoJSON, aim at simple, easy to understand, and easy to use, can reduce the amount of spatial data transmitted and improve the transmission efficiency. We analyzed the compression ratio of various data types and data amounts through different base parameters.. We. also measured the system response time reduced using this method and compared with the combination of using our method as well as the HTTP compression modules.. A one-way hashing technique is used to ensure data iii.
(6) 應用 GeoJSON 技術提昇空間資料交換之研究. accuracy and consistency during the transmission processes.. The experimental. results show that our GeoJSON-based compression mechanism can significantly reduce the file size of spatial data and improve the efficiency of spatial data transmission.. In addition, the data communication errors can be avoided. using our hashing techniques.. Keywords: GeoJSON, delta encoding, one-way hash function. 立. 政 治 大 . ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. iv. i n U. v.
(7) 應用 GeoJSON 技術提昇空間資料交換之研究. 誌謝 轉眼間,在政大的日子也有三年多,其中包含許多歡笑,也面臨不少辛苦奮鬥的日 子,但終於把睽違以久的論文寫出來了,對於曾經幫助我的人在這邊先致上我心中最誠 摯的感謝。. 首先感謝我的指導教授何瑁鎧老師,在研究與實驗過程中,耐性的建議與包容,雖 然在論文撰寫過程時常感到挫敗,但是老師仍耐心並且包容的指導我論文完成。另外也. 政 治 大. 感謝口試委員唐政元老師與吳怡樂老師對論文的針砭指教,使得本文更臻完善。. 立. 再來就是研究室的同學與學長學弟們,日晟、斐瑜、珮華、靈威、逸帆、恭良、瑞. ‧ 國. 學. 陽、坤信與政君,因為有你們的幫忙與鼓勵,讓我不斷有信心且順利的完成。. ‧. 最後感謝我的家人與好友們,老媽與老爸,這段期間你們不時關心我論文的進度與. y. Nat. sit. 心情,我很感恩也很愛你們;郁真表姐、Wiston 與宜真,多虧你們這些大師們的指引,. n. al. er. io. 讓我的論文走到更好的方向;還有照鼎,謝謝你的陪伴,並時常幫助我轉移寫論文的壓 力,讓我更能安心的繼續完成學業。. Ch. engchi. i n U. v. 最後感謝在論文撰寫期間,來至 MSN 或者 FACEBOOK 上給我打氣的學弟妹、好 友們,我終於畢業啦,謝謝你們。. 陳欣瑜 民國 100 年 1 月. v.
(8) 應用 GeoJSON 技術提昇空間資料交換之研究. 目錄 第一章 緒論 ...................................................................................................... 1 1.1 研究動機與背景 ............................................................................................................. 1 1.2 研究目的 ......................................................................................................................... 2 1.3 問題描述 ......................................................................................................................... 2 1.4 本論文貢獻 ..................................................................................................................... 3 . 政 治 大. 1.5 章節架構 ......................................................................................................................... 4 . 立. 第二章 文獻探討 .............................................................................................. 6 . ‧ 國. 學. 2.1 地理資料交換格式簡介 ................................................................................................. 6 . ‧. 2.2 GeoJSON 介紹 ................................................................................................................. 8 2.3 差分編碼簡介 ............................................................................................................... 11 . y. Nat. io. sit. 2.4 HTTP 與 GZIP 壓縮 ........................................................................................................ 12 . n. al. er. 2.5 資料傳輸驗證 ............................................................................................................... 14 . Ch. i n U. v. 2.6 開放式原始碼 Web GIS 平台簡介 ................................................................................ 17 . engchi. 第三章 GeoJSON 資料壓縮 ........................................................................... 19 3.1 系統架構 ....................................................................................................................... 19 3.2 資料前處理 ................................................................................................................... 21 3.3 資料壓縮技術 ............................................................................................................... 23 3.4 效能與壓縮率分析 ....................................................................................................... 30 3.5 資料傳輸檢查機制 ....................................................................................................... 31 . 第四章 實驗結果與分析 ................................................................................ 37 . vi.
(9) 應用 GeoJSON 技術提昇空間資料交換之研究. 4.1 資料處理與 GeoJSON 輸出 .......................................................................................... 37 4.2 GeoJSON 資料壓縮技術實驗結果 ............................................................................... 41 4.3 傳輸效能與壓縮率分析 ............................................................................................... 47 4.4 資料傳輸檢查與效能評估實驗結果 ........................................................................... 53 . 第五章 結論與未來展望 ................................................................................ 56 5.1 結論 ............................................................................................................................. 56 5.2 未來研究方向 ............................................................................................................... 57 . 政 治 大 參考文獻 ............................................................................................................ 58 立. ‧ 國. 學. 附錄 ................................................................................................................... 63 . ‧. 附錄 1. 浮點式編碼函式的編碼 ....................................................................................... 63 . sit. y. Nat. 附錄 2. 浮點式編碼函式的解碼 ....................................................................................... 64 . io. n. al. er. 附錄 3. 差分編碼函式 ....................................................................................................... 65 . Ch. engchi. vii. i n U. v.
(10) 應用 GeoJSON 技術提昇空間資料交換之研究. 圖目錄 圖 2.1:Web GIS 與 GeoJSON 資料交換格式之溝通流程 .................................................... 7 圖 2.2:JSON 語法架構示意圖............................................................................................... 8 圖 2.3:JSON 剖析與資料傳遞流程圖................................................................................... 9 圖 2.4:GeoJSON 範例 ........................................................................................................... 11 圖 2.5:差分編碼範例 ............................................................................................................ 12 . 政 治 大 圖 2.7:檢索 eBay 網頁之壓縮效能圖 .................................................................................. 13 立 圖 2.6:檢索 Yahoo 網頁之壓縮效能圖 ................................................................................ 13 . 圖 2.8:GZIP 壓縮測試結果 .................................................................................................. 14 . ‧ 國. 學. 圖 2.9:MD5 雜湊演算法流程 ............................................................................................... 17 . ‧. 圖 2.10:OpenLayers 範例畫面.............................................................................................. 18 . y. Nat. 圖 3.1:系統架構圖 ................................................................................................................ 20 . er. io. sit. 圖 3.2:系統架構圖 ................................................................................................................ 22 圖 3.3:差分編碼產生的前置零 ............................................................................................ 24 . al. n. v i n 圖 3.4:差分編碼示意圖 ........................................................................................................ 25 Ch engchi U 圖 3.5:浮點式編碼示意圖 .................................................................................................... 27 圖 3.6:HTTP 壓縮流程圖 ..................................................................................................... 29 圖 3.7:資料傳遞與壓縮套用流程 ........................................................................................ 30 圖 3.8:資料傳輸驗證架構圖 ................................................................................................ 31 圖 3.9:檔案切割流程示意圖 ................................................................................................ 33 圖 3.10:驗證碼產生示意圖 .................................................................................................. 34 圖 3.11:附加 MD5 雜湊碼 .................................................................................................... 34 圖 3.12:GeoJSON 驗證與檢查錯誤示意圖 ......................................................................... 35 圖 3.13:資料傳送與檢查 ...................................................................................................... 35 viii.
(11) 應用 GeoJSON 技術提昇空間資料交換之研究. 圖 4.1:台灣行政區域 shp 檔案............................................................................................. 38 圖 4.2:台灣行政區域 shp 檔案轉換..................................................................................... 39 圖 4.3:匯入 SQL 至資料庫................................................................................................... 39 圖 4.4:備份回存至資料庫 .................................................................................................... 40 圖 4.5:己匯入的資料表 ........................................................................................................ 40 圖 4.6:GeoJSON 格式 ........................................................................................................... 41 圖 4.7:原始 5000 筆座標 GeoJSON 內容 ............................................................................ 43 . 政 治 大 圖 4.9:差分編碼加浮點式編碼後 5000 筆座標 GeoJSON 內容 ........................................ 44 立 圖 4.8:差分編碼後 5000 筆座標 GeoJSON 內容 ................................................................ 43 . 圖 4.10:非同地理範圍之座標範例 ...................................................................................... 44 . ‧ 國. 學. 圖 4.11:62 進制轉換實例 ..................................................................................................... 46 . ‧. 圖 4.12:進制轉換後檔案大小變化 ...................................................................................... 47 . y. Nat. 圖 4.13:非連續型座標資料壓縮率 ...................................................................................... 51 . er. io. sit. 圖 4.14:連續型座標資料壓縮率 .......................................................................................... 52 圖 4.15:檔案分批呈現結果 .................................................................................................. 54 . al. n. v i n 圖 4.16:資料檢查碼呈現結果 .............................................................................................. 54 Ch engchi U. ix.
(12) 應用 GeoJSON 技術提昇空間資料交換之研究. 表目錄 表 1:GeoJSON 所定義的地理圖徵類別 .............................................................................. 10 表 2:雜湊函數 ....................................................................................................................... 16 表 3:差分編碼函式程式 ....................................................................................................... 26 表 4:進制轉換對照表 ........................................................................................................... 28 表 5:浮點式編碼函式程式 ................................................................................................... 28 表 6:差分編碼與浮點式壓縮後檔案大小(與原始資料比較) ............................................ 42 . 政 治 大 表 8:非同地理範圍之檔案大小及壓縮率(以括號表示) .................................................... 44 立 表 7:差分編碼與浮點式壓縮後檔案大小(與原始資料比較) ............................................ 43 . ‧ 國. 學. 表 9:不同進制轉換之檔案大小及壓縮率(以括號表示) .................................................... 47 表 10:全台各級學校分佈資料壓縮與傳輸時間結果 ......................................................... 48 . ‧. 表 11:全台便利商店分佈資料壓縮與傳輸時間結果 ......................................................... 49 . sit. y. Nat. 表 12:非連續型座標資料壓縮結果 ..................................................................................... 50 . al. er. io. 表 13:連續型座標資料壓縮結果 ......................................................................................... 51 . v. n. 表 14:兩種類型之座標資料壓縮結果 ................................................................................. 53 . Ch. engchi. i n U. 表 15:未加入資料檢查機制結果 ......................................................................................... 55 表 16:加入資料檢查機制結果 ............................................................................................. 55 . x.
(13) 第一章 緒論 1.1 研究動機與背景 近年來,由於網際網路的快速崛起,地理資訊系統(Geographic Information System, GIS)相關研究與軟體廠商隨著趨勢發展,開始致力開發以 Web 為基礎的相關 GIS 產品, 我們稱之為網際網路地理資訊系統(Web Geographic Information System, Web GIS)。從過 去 Web GIS 的發展軌跡觀察,最重要且最有價值之處不在於系統功能的強大與否,而是. 政 治 大. 在於它所處理的地理資料內容,由於地理現象複雜、多樣且多尺度,異質電腦間的互動. 立. 日益頻繁,資料無可避免須在不同性質的系統或平台之間流動,因此人們開始察覺建立. ‧ 國. 學. 共同資料標準格式的重要性,除了利於資料交換之外,更需要一種大家都可以解讀的標 準格式[1]。. ‧. GeoJSON (Geographic JavaScript Object Notation)為一個新興的地理資料交換格式,. y. Nat. sit. 其語法是基於 JavaScript Object Notation (JSON)的格式標準,描述方法利用「純文字」. n. al. er. io. 的方式定義物件,提供各種程式(C、C++、C#、PHP、Java…等)可以輕易的與 JavaScript. i n U. v. 交換資訊。在系統發展上有二個主要的優勢,第一,對於利用 JavaScript 技術所開發的. Ch. engchi. Web GIS 而言,可易於對 GeoJSON 文件進行編碼與解碼的操作;二為 GeoJSON 文件的 檔案較小,相較於傳統的地理資料交換格式,可加快資料的傳輸。 近年來 GeoJSON 己被超過 20 個計畫與研究支持及使用,包括:OpenLayers 支援 GeoJSON 物件讀取格式結構[43]、空間資料轉換軟體供應商 Safe Software 公司,將 GeoJSON 列為轉換的主要格式之一、MapFish 為提供開放式原始碼之地理資訊系統有更 多前端介面功能,使用 GeoJSON 格式開發空間與資料統計的功能(Geospatial and Statistical Data Center,Geostat)[40]、EPA 的 Grant Reporting and Tracking System 計畫, 結合 ORACEL 空間資料庫產生及解析 GeoJSON 圖徵資料供微軟的 Virtual Earth 使用。 此外 GeoJSON 支援多種的程式語言,利於系統格式轉換。從這些計畫應用可以得知 1.
(14) 應用 GeoJSON 技術提昇空間資料交換之研究. GeoJSON 在空間資料的處理及應用上,具有很大的市場潛力與發展空間。 Web GIS 目前己被許多領域所應用,例如歷史研究、網路分享型之商圈資料分析、 災害預防分析、單車部落格路線記錄等等,這樣的多元化的視覺呈現,使人們更了解 Web GIS 為生活帶來的樂趣及便利。然而在這些有趣資料的背後,如何讓資訊系統的運 作能更有效率,本研究利用 Web GIS 作為研究的平台,透過 GeoJSON 方法來進行空間 資料的解析與編譯,期望可建構一套有效率的資料處理模式,有助於未來 Web GIS 的發 展。. 1.2 研究目的. 立. 政 治 大. 本論文研究目的是以 GeoJSON 壓縮技術,壓縮大量的座標資料量,以增進網路資. ‧ 國. 學. 料傳輸效能。回顧建立 GeoJSON 格式原意,是為了簡化繁縟的結構,而且不需要複雜 的解析工具,就可以直接提供 Web GIS 系統讀取。因此本研究設計的壓縮方法,出發點. ‧. 便以簡單、方便運用與容易了解等特性,參考差分編碼演算法[26][17],進行 GeoJSON. y. Nat. sit. 格式中的座標壓縮,並且評估其壓縮成果。. n. al. er. io. 雖然過去關於影響空間座標資料量的研究,以及壓縮技術方面的議題未曾間斷過,. i n U. v. 但本研究首次提出將壓縮技術應用在 GeoJSON 格式上,希望能比過去未壓縮的. Ch. engchi. GeoJSON 格式,達到更佳的傳輸效能。. 除了增進網路傳輸效能外,本研究另一個重要的目的是確保資料傳輸的品質,資料 傳輸除了要求速度外,還需要注重正確性,本研究利用「資料驗證」的方法,參考單向 雜湊函數進行資料傳輸的驗證,以達到兼具增進傳輸效能與資料一致的目的。. 1.3 問題描述 過去許多地理資料交換格式,常面臨因大量座標資料影響 Web GIS 資料傳輸的效率 [26],這樣的問題是否同樣影響 GeoJSON 在傳輸及執行的效能? 假設大量的座標資料衝 擊傳輸效能,這樣即背離了 GeoJSON 簡潔結構之特性。另一方面,網路頻寬對資料傳 2.
(15) 應用 GeoJSON 技術提昇空間資料交換之研究. 遞效能的衝擊,是否會隨著 HTTP 的壓縮,使得用戶端與網路伺服器在傳遞 GeoJSON 資料效能上能有更好的改善? 本研究從 GeoJSON 結構中的座標資料量切入問題,依據座標序列性的特質,經由 不同的編碼方法來縮減座標長度,編碼後的資料結構仍需符合開放地理資料交換標準 (Open Geospatial Consortium,OGC) [1];而方法的設計方向為簡單容易應用,以能有效 達到壓縮與減少座標資料量為目的。 另外參考文獻中對於改善資料網路傳輸效能的方法,最常見即縮短 HTTP 層的解析. 政 治 大 料解析內容在回應給用戶端,內容的多寡勢必影響解讀的時間,因此最有效的方法即壓 立 時間與進行資料內容的壓縮,其原因在於,當伺服器傳遞資料到用戶端,需要 HTTP 資. 縮資料,讓 HTTP 讀取時間縮短,進而提昇傳輸的速度以及簡省頻寬資源。因此藉由. ‧ 國. 學. HTTP 壓縮技術的輔助,強化 GeoJSON 資料壓縮技術的傳遞效能,並透過有系統的分. er. io. sit. y. Nat. 1.4 本論文貢獻. ‧. 析用戶端與伺服器傳輸時間,以及壓縮情形,更清楚呈現本研究提出的方法改善的成效。. 本研究提出了一套 GeoJSON 壓縮方法,在符合開放地理資料交換標準(Open. al. n. v i n Geospatial Consortium,OGC) [1]及遵循 C h JSON 簡單易讀取的結構特性,使得資料壓縮率 engchi U. 達 40%,若再透過 HTTP 壓縮技術的輔助,更可達到約 80%的壓縮率;在另一方面,資 料傳輸時間與原始傳輸時間相比,縮減了 30%,對 Web GIS 在網路資料傳輸效能提昇有 明顯的成效。 在進行 GeoJSON 研究主題中,查詢國內外學術網站並無關於 GeoJSON 的論文研究 或學術期刊,僅限網路討論或者軟體廠商在介紹產品技術時簡略提到,本論文是首次針 對 GeoJSON 格式作深入探討的學術論文;,本論文提出以下幾點貢獻: 1.. 提出 GeoJSON 壓縮技術減少座標資料量 回顧相關網路資料傳遞上的文獻,關於影響傳遞效能的影響因素,都是檔案大小影 響頻寬。從 Web GIS 系統流程切入,並且分析 GeoJSON 結構特性後,找出控制檔 3.
(16) 應用 GeoJSON 技術提昇空間資料交換之研究. 案大小因素為-座標資料,並根據 OGC 的標準流程來設計壓縮技術,使得壓縮後 的 GeoJSON 能減少資料傳遞的時間。 2.. 運用 HTTP 壓縮技術提昇傳輸效能 在研究 Web GIS 系統過程中發現, HTTP 的解析時間將影響傳遞的效能與頻寬的 損耗。因此,參考相關文獻,本研究運用 HTTP 壓縮輔助 GeoJSON 壓縮技術能有 更佳的傳遞效能。. 3.. 改善差分編碼後大量零值的問題. 政 治 大 值,因此可能壓縮後得到的字元長度變化不大,且成效不夠顯著,因此提出一個改 立. 經本研究發現,傳統的差分編碼應用浮點數值的壓縮,小數點與尾數間仍有大量零. 善零值的方法-浮點式編碼,可有效提升壓縮率。. ‧ 國. 學. 4.. 資料傳輸檢查機制. ‧. 由於資料的壓縮流程必須經過網路環境,為防範可能發生的網路異狀影響,故本研. sit er. io. 1.5 章節架構. y. Nat. 究將建立資料檢查機制,以確保資料傳輸過程中仍維持資料正確性以及一致性。. al. n. v i n 首先,本研究將使用台灣地區各鄉鎮、村里座標及台北市商業據點座標作為查詢實 Ch engchi U. 驗數據,空間資料型態包括 Point、Polygon、Polyline 等共計二萬餘筆。資料處理的方式 先將各點位之 shp 資料轉換成空間數值資料,儲存到本研究建立的空間資料庫 (PostgreSQL),接著參考國內外關於資料在 HTTP 傳輸壓縮方法的文獻,選擇 GNU. (GNU's Not Unix)計畫開發的 GZIP 壓縮方法,利用自行撰寫程式與 Apache 伺服器設定, 來縮減 HTTP 回應至用戶端的時間。 根據 GeoJSON 官方網站[34]的相關研究,GeoJSON 資料量中絕大部分為座標資料, 本研究將發展一套編碼方法,以壓縮 GeoJSON 文件中的座標字串長度,並符合 OGC 地 理資料交換的標準格式之內容。另外設立完整的資料壓縮與傳輸檢查流程,進而確保資 料正確與完整性。接著透過 OpenLayers 平台進行空間資料查詢比較 GeoJSON 在壓縮前 4.
(17) 應用 GeoJSON 技術提昇空間資料交換之研究. 後在傳遞時間上的表現。 經由以上架構說明,本研究歸納出三點重心,一為透過 GeoJSON 座標壓縮以及 HTTP 壓縮技術的輔助可以增進多少傳輸效能,二為比較本研究壓縮技術對不同的資料 型態的壓縮程度,三為資料傳輸檢查機制帶來的效益。最後結論,依據三點評估本研究 提出的壓縮技術增進傳輸效能的成果,以提供未來運用本研究方法的參考標準。 本論文之內容共分為五個章節,第一章為研究動機、目的、問題描述,為本論文研 究整體的介紹;第二章為文獻探討:包括 GeoJSON、地理資料交換格式簡介、GZIP 與. 政 治 大 法說明,包括實驗流程與架構、壓縮模型的設計以及資料傳輸檢查機制的設計;第四章 立. HTTP 壓縮、差分編碼(Delta encoding)及開放式原始碼 Web GIS 平台;第三章為實驗方. ‧ 國. 學. 為實驗結果與分析,探討壓縮技術在實際應用上的成效,並導入至 Web GIS 平台;最後 第五章為結論,闡述本研究之成果與結論,並提出未來研究方向建議,作為後續研究與. ‧. io. sit. y. Nat. n. al. er. 發展之參考。. Ch. engchi. 5. i n U. v.
(18) 應用 GeoJSON 技術提昇空間資料交換之研究. 第二章 文獻探討 本章節將介紹研究中需要的背景知識,包括:地理資料交換格式、GeoJSON、HTTP 與 GZIP 壓縮、差分編碼演算法、單向雜湊函數及開放式原始碼 Web GIS 平台。由於本 研究之目的係從 GeoJSON 座標資料量切入效能問題,故於文獻探討的部分,先從地理 資料交換格式的研究,導入 Web GIS 如何進行資料傳遞,再分析 GeoJSON 格式之特性。 另外為輔助 GeoJSON 壓縮技術,本研究運用「GZIP 壓縮演算法」進行 HTTP 壓縮,故. 政 治 大 之「差分編碼演算法」,以及驗證資料正確性使用的「單向雜湊函數(one-Way Hash 立 亦在此章節進行 HTTP 壓縮技術之介紹。此外,本章亦針對 GeoJSON 壓縮技術所應用. Function)」之相關文獻進行研討。最後,再介紹本實驗使用的 Web GIS 平台及其相關應. ‧. ‧ 國. 學. 用。. 2.1 地理資料交換格式簡介. y. Nat. er. io. sit. 徐百輝對地理資訊標準格式之簡介[1]一文提到,不僅人與人之間的語言需要橋樑來 取得正常的溝通,在不同的系統、平台與應用程式,若沒有共同的語言,則資訊無法進. al. n. v i n 行交流。隨著網際網路的發展,異質平台與系統互動頻繁,因此建立共同的資料標準格 Ch engchi U 式是非常重要的課題。. 空間資料的內容包括幾何特性、座標系統等,在現今各種空間地理資訊軟體日新月 異的環境下,軟體的多樣性造成平台的相異性,因此,共通的資料標準格式是不可或缺 的。隨著網際網路的蓬勃發展,地理資訊系統也走向網路的懷抱,空間地理資料如何在 網路上傳遞、儲存及處理,已成為當代地理資訊系統的重要議題。 這個議題在 OGC 訂定地理資料交換標準並開放採用後,各種新興的格式展開效能 上的競爭,其中應用較為廣泛的地理資料格式為 KML(Keyhole Markup Language)、 GeoRSS、GeoJSON[27]。 KML,是基於 XML 標準所建立的 Google 地理資訊系統標記語言,因此文件僅適用 6.
(19) 應用 GeoJSON 技術提昇空間資料交換之研究. 於 Google 相關之產品,故應用範圍有限。GeoRSS 為一種在 RSS 通過特定編碼來包含 地理參考資訊的方法,分成 GeoRSS GML 和 GeoRSS Simple 兩種,其中 GeoRSS GML 格式語法源於原始 GML 標準結構,故結構上較 GeoRSS Simple 更為嚴謹並具有擴充性, 上述兩種格式結構嚴謹,需要額外開發程式解析格式中的地理資訊,因此在應用上較不 容易。 本研究採用的 GeoJSON 是基於 JavaScript 物件表示法的一種新興格式,目前 Web GIS 介面上,無論是地圖移動、放大、縮小以及標示座標點等效果,皆透過 JavaScript. 政 治 大 理如圖 2.1 所示,當伺服器傳回 GeoJSON 的格式至用戶端的 Web GIS 前,先由 JavaScript 立. 所產生。參考中央研究院地理資訊科學專題研究中心說明 Web GIS 系統架構,本研究整. 讀取 GeoJSON 格式中的地理資料,再交由用戶端呈現,過程中並不需要再額外撰寫程. ‧ 國. 學. 式解析格式,因此,相較於其他格式而言,GeoJSON 在 WebGIS 系統上佔有相當不錯的優. ‧. io. sit. y. Nat. n. al. er. 勢。. Ch. engchi. i n U. v. 圖 2.1:Web GIS 與 GeoJSON 資料交換格式之溝通流程. 7.
(20) 應用 GeoJSON 技術提昇空間資料交換之研究. 2.2 GeoJSON 介紹 由於 XML 在表示某些數值資料(如:陣列)上有著檔案過大以及處理效能不彰的問 題,因此,Douglas Crockford 等人在 1999 年提出了 JavaScript 物件表示法(JavaScript Object Notation,JSON)的交換格式,其目的係為了解決「大量文件交換的效能問題」, 這對網路應用的資料傳遞無疑是一大福音[31]。簡單來說,JSON 是以 JavaScript 表達物 件、陣列或值三種元素組成的語法,直接做為傳遞物件訊息的「純文字格式」 ,整個 JSON 的語法架構可以用圖 2.2 來表示。. 立. 政 治 大. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. i n U. v. 圖 2.2:JSON 語法架構示意圖[37] 1. 物件(Object):或可稱為聯想陣列(Associative Array)。通常以「 { } 」符號包圍 組成,是由數個值對(Value pair)與鍵(Key)組成,在值對間用「,」分隔,而鍵跟 所對應的值之間以「:」分隔;以 GeoJSON 為例,地理型態 Point 即代表鍵,一 堆座標資料為值對,可以表示成: {Point:座標 1,座標 2,座標 3…座標 n} 2. 陣列(Array):以「 [ ] 」符號包圍組成一個陣列,值之間用「,」分隔,以 GeoJSON 為例,每一個 XY 座標值即一個二維陣列,表示成: {Point:[x1,y1],[x2,y2],[x3,y3]…} 8.
(21) 應用 GeoJSON 技術提昇空間資料交換之研究. 3. 值(Value) :可以是雙引號括號起來的字串(String) 、數字(Number)、true、false、 null、物件(object)或者陣列(array);Value 主要存放是經緯度座標。 JSON 跟 XML 一樣具有階層概念之結構,但不同的是,JSON 不需要為文件宣告, 也沒有定義嚴謹的父子節點關係,或是屬性規範的限制,同時在語法上去除了繁瑣複雜 的標籤(Tag),可大幅減少編碼輸出的資料量。此外,因 JSON 使用 JavaScript 的語法, 可直接使用函數「eval」 ,將字串當作物件執行,而不需特別的解譯器,所以理論上也可 以減少對資料編譯及解譯所需花費的時間。圖 2.3 為 JSON 資料的傳遞流程圖。. Browser (Client). JSON. 學. JSON.parser. Nat. n. al. er. io. Filter. sit. y. ‧. ‧ 國. 立. 治 Web 政Request 大 Server. C hResponse engchi. i n Eval() U. v. 圖 2.3:JSON 剖析與資料傳遞流程圖 GeoJSON 建立在 JSON 的基礎上,提供了標準的地理圖徵定義,如:Point、 LineString、Polygon、MultiPoint、MultiLineString、MultiPolygon 及 GeometryCollection, 滿足地理資料交換格式的需求。 表 1 為本研究參考 GeoJSON[48]規格文件整理所有標準定義語法,主要內容包括, 可表達的空間資料類別、不同資料類別的語法表示、空間資料上所代表的定義. 9.
(22) 應用 GeoJSON 技術提昇空間資料交換之研究. 表 1:GeoJSON 所定義的地理圖徵類別 GeoJSON 語法 (x:longitude, y:latitude). 空間資料定義. { "type": "Point", "coordinates": [x,y] }. Point 是一個代表單一位 置的 0 維度物件,而且 可包含 Z (高度) 和 M (測量) 值。. { "type": "LineString", "coordinates": [ [x,y], [x,y] ] }. MultiPoint 是零或多個點 的集合。. { "type": "Polygon", "coordinates": [ [ [x,y], [x,y], [x,y], [x,y], [x,y] ] ] }. LineString 是代表一連串 的點及連接這些點之線 段的一維度物件。. { "type": "MultiPoint", "coordinates": [ [x,y], [x,y] ] }. MultiLineString 是零或 多個 geometry 或 geography LineString 執 行個體的集合。. 類別. Point. LineString. Polygon. 學. al. n. GeometryCollection. ‧. y. sit. io. MultiPolygon. Polygon 是儲存為一連串 點的二維度介面,這些點 可定義一個外部環形以 及零個或多個內部環形。. Nat. MultiLineString. { "type": "MultiLineString", "coordinates": [ [ [x,y], [x,y] ], [ [x,y], [x,y] ] ] }. er. MultiPoint. ‧ 國. 立. 政 治 大. i n U. { "type": "MultiPolygon", "coordinates": [ [[[x,y], [x,y], [x,y], [x,y], [x,y]]], [[[x,y], [x,y], [x,y], [x,y], [x,y]], [[x,y], [x,y], [x,y], [x,y], [x,y]]] ] } { "type": "GeometryCollection", "geometries": [ { "type": "Point", "coordinates": [x,y] }, { "type": "LineString", "coordinates": [[x,y], [x,y] ] } ] }. Ch. engchi. 10. v. MultiPolygon 執行個體 是零或多個 Polygon 執 行個體的集合。. GeometryCollection 是零 或多個 geometry 或 geography 執行個體的集 合。.
(23) 應用 GeoJSON 技術提昇空間資料交換之研究. GeoJSON 的特性,可透過上表各個型態的結構進行觀察,除了 Value 中的座標外, Object 的重複性並不高,以圖 2.4 為例,左邊地圖呈現一條 LineString 的地理資料,而 右邊相對應產生的 GeoJSON 內容中,可發現座標值佔有相當大的比例,因此後續本研 究在設計壓縮技術時,將以 Value 的座標特性來定義壓縮規則。. 立. 政 治 大. Nat. y. ‧. ‧ 國. 學 圖 2.4:GeoJSON 範例[46]. er. io. sit. 2.3 差分編碼簡介. 在科學應用、工程以及數學,希臘字母中的差分編碼(Δ)通常用來表示「轉換變數」 ,. al. n. v i n 差分編碼(Delta encoding)又稱差分壓縮法(Delta compression),是以相鄰資料間的差異值 Ch engchi U 來替代原始資料,亦即僅儲存差異值以達到壓縮的目的。如陳仁德一文[5]指出,在現今. 的網路下,檔案的內容在很多的時候會被複製、修改、刪減,甚至將多個檔案內容組成 一個新的檔案,檔案間相似度高,因此,用戶端不須要取得整個目標檔案,只要取得差 異值,即可大幅減少資料量。James J. Hunt 等[15]一文提到差分編碼除了減少資料量, 也能縮減儲存空間與網路頻寬。 本研究的實驗資料採用世界通用的 WGS84 經緯度格式,參考孫志堅對座標系統研 析,台灣地區大約在東經 120-122˚,北緯 22-25˚30' [8],若縮小以地區性來看,台北地 區約東經 120˚與北緯 22˚範圍,所以座標「度」單位皆相同, 「分與秒」則視精確度而定, 因此從度單位來看,座標差異不大,適合利用差分編碼來進行壓縮。 11.
(24) 應用 GeoJSON 技術提昇空間資料交換之研究. 差分編碼的原理,是取得相鄰資料的差異值,且差異值的結果趨近於零或小於零, 因此將差分編碼應用在空間座標資料時,可省去浮點數之整數位,因而縮小座標的字串 長度。由於地理資料的文件格式,包含大量標籤及龐大空間座標資料,因此參考 Jihong 研究[26][17]提出使用差分編碼演算法壓縮大量的浮點數座標,本研究整理如下: 假設每組座標 pi 代表 (x i , yi ) ,共有 n 組座標,且 i 介於 0 到 n-1 之間,將這一串的座標 集合表示成 P,差分編碼為 Δpi ,因此我們僅要儲存差分編碼後的座標集合即可,其表 示式如下: Δpi pi 1 pi. 政 治 大. P= {p0 , p1 , ...p n-1} P={p0 , Δp0 , ...Δp n-2 }. 立. 下圖 2.5 為簡單的差分編碼範例,從「 23.08909, 23.08907, 23.10279, 23.10308,. ‧ 國. 學. 23.07901 ……」的資料串中,經由差分編碼後儲存「 23.08909, 0.00002, 0.01372, 0.00029, -0.02407 ……」。然而浮點數經由差分編碼後,雖然數值部份減少,但由於小數點與尾. ‧. 數間有許多零值,使得字串長度縮減不大,因此若能改善零值的問題,即能達到縮減字. n. al. er. io. sit. y. Nat. 串長度的結果。. Ch. engchi. i n U. v. 圖 2.5:差分編碼範例. 2.4 HTTP 與 GZIP 壓縮 從 IBM 技術網路上針對 HTTP 壓縮與加速網路傳遞一文介紹[47],HTTP 壓縮是為 了改善頁面解析時間長短問題。因此,當 HTTP 收到需要傳遞到用戶端的資料時,會進 行資料的讀取,而處理速度取決於下列三個重要因素: 1.. 網路或應用程式伺服器產生內容的能力,即伺服器的效能,本研究的應用程式伺服 器是由 Apache 網頁伺服器與 PHP 程式實作。. 12.
(25) 應用 GeoJSON 技術提昇空間資料交換之研究. 2.. 網路的頻寬。. 3. 資料內容的檔案大小。 對使用者而言,網頁呈現的速度即代表整體效能的良莠,提昇網路效能最簡單的方 式,當然可透過提昇伺服器硬體設備或是增加網路頻寬,加速資料傳遞的速度,但相對 的,此舉隱含更多成本的增加。因此在伺服器至網際網路的連結過程中,如何減少資料 內容的檔案大小,才是最具成本效益的控制方法。若假設我們在回應用戶端資料時,先 進行「HTTP 壓縮」 ,就能改善頁面的下載速度,且 HTTP 要求的時間也會加快,從 Timothy. 政 治 大 頁,要求人數即使增加,回應的時間仍比未壓縮前還要來的短,如圖 2.6 與圖 2.7 所示。 立. J. McLaughlin 關於 HTTP 壓縮帶來的效益一文的測試報告[22]可以得知,壓縮後的網. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. i n U. v. 圖 2.6:檢索 Yahoo 網頁之壓縮效能圖[22]. 圖 2.7:檢索 eBay 網頁之壓縮效能圖[23]. 13.
(26) 應用 GeoJSON 技術提昇空間資料交換之研究. 從過去 HTTP 壓縮的方法中,由 Jean-loup Gailly 和 Mark Adler 所創建的免費軟體 GZIP,是最常用且普遍使用的壓縮技術。 GZIP 主要是結合 1977 年 Jacob Ziv 與 Abraham Lempel 提出的 LZ77 壓縮[20]與 David Huffman 1952 年提出 Huffman[14]這兩個方法而 來,其中 LZ77 作法是將處理過的字串資料編譯成字典,並將處理中的各種字串以指向 字典中相對的指標;而 Huffman 使用建立的字典來減少 LZ77 找相符的字元所花費的匹 配時間,進而改善 LZ77 效能問題。 Ekrem 一文同樣對 GZIP 與其他兩種常用的的壓縮工具比較與測試[33],如圖 2.8. 政 治 大 顯效能較高,因此綜觀上述文獻分析,本研究選擇以 GZIP 作為 HTTP 壓縮的主要方法, 立 所示,GZIP 在壓縮率與其他兩種差異不大,但是在壓縮與解壓縮的時間來看,GZIP 明. 在壓縮率相當但壓縮效率較佳的結果來看,GZIP 可以滿足本研究所重視的「效能」條. ‧. ‧ 國. 學. 件。. n. er. io. sit. y. Nat. al. Ch. engchi. i n U. v. 圖 2.8:GZIP 壓縮測試結果[33]. 2.5 資料傳輸驗證 由於本研究對 GeoJSON 資料壓縮的編解碼過程,可能因為網路異常使得編碼資料 傳遞到用戶端發生中斷或者內容改變,因而影響資料在用戶端解碼的正確性,尤其本研 究應用差分編碼壓縮,每個數值間皆環環相扣,不能容許數值在網路上出現錯誤,在實 14.
(27) 應用 GeoJSON 技術提昇空間資料交換之研究. 驗中雖然無法掌握網路狀態與異常現象的情況,但我們可以透過檢查的機制,來確保資 料傳遞前後,用戶端及伺服器間資料內容一致與正確性。 從相關文獻得到,常見的錯誤檢查方法如下: 1.. 封包檢查: 從網路通訊針對錯誤檢查的文獻中得知[10],封包檢查的原理為,當資料要傳送出 去的時候,發送端會對資料進行一個校驗的動作,當接收端收到封包之後﹐會再對 資料進行校驗﹐再比對傳送層的協定中 TCP 或 UDP 檔頭上的校驗值(checksum). 政 治 大 計算較為複雜,並且容易發生資料遺失的問題,且應用上較不易,而 TCP 雖然較 立. 是否一致。若結果不一致則認為資料已損毀﹐並要求對方重送。而 UDP 的 checksum. UTP 的傳輸可靠,但是計算與傳輸的時間較長。. ‧ 國. 學. 2.. 雜湊值驗證:. ‧. 原理為,將傳輸的訊息經由雜驗計算產生檢查碼(checksum),最常見為「單向雜湊. y. Nat. 函數」(one-way hash function) ,首先解釋何謂「單向函數」與「雜湊函數」。若我. er. io. sit. 們有一串訊息 m,我們可以很容易用函數 h 來計算 h(m),無法反推回原訊息 m,則 h()函數即稱為-單向函數。而雜湊函數簡單來說,會把一個變動長度的字串轉換成. n. al. Ch. 固定長度的字串,我們稱此字串為雜湊。. engchi. i n U. v. 相關的應用如 S. Bakhtiari 便利用「雜湊函數」來進行電子郵件傳輸的錯誤檢查[12], 以確認接收端的雜湊值是否與發送端相等,來決定是否儲存郵件或要求重新發送。 IBM 開發論壇一文[30]將相同包裝編碼後的檔案佈署在不同環境中,並透過「雜湊 值驗證」每一個經過編碼並包裝成的檔案是否相同。. 由於封包檢查需要網路通訊的背景知識,因此在應用上較不易,而雜湊值驗證的方 法較為簡單,只需使用雜湊函數計算出雜湊值即可達到驗證的目的,因此本研究希望用 最簡單的方法達到錯誤檢查的目的。. 15.
(28) 應用 GeoJSON 技術提昇空間資料交換之研究. 參考維基百科彙整各雜湊演算法如下表 2,其中微軟技術論壇「安全性設計選 擇」的效能評估一文[9],以 MD5(Message-Digest Algorithm 5,MD 5)的整體運算及回應 效能比其他演算法佳,因此研究採用 MD5 作為資料驗證碼的計算方法。 表 2:雜湊函數 演算法. 輸出 長度 (bits). 資料區塊 長度 (bits). 最大訊息 長度 (bits). 160. 512. 2 −1. SHA-0 SHA-1 SHA-256/224. 256/224. SHA-512/384. 512/384. 立. MD5. 32. 80. 是. 64. 64. 512 政1024 治22 −− 11大 512. 128. 512. 尚未出現. 64. 80. 尚未出現. 32. 48. 存在 2102 的攻 擊. 64. 存在 224.1 的攻 擊. 2 −1. 32. 2 −1. 的攻擊. 64. 64. 64. 存在 2. 63. 32. 128. 128. 碰撞 攻擊. ‧. ‧ 國. MD4. 迴圈 次數. 學. SHA-2. 字串組 長度(bits). sit. y. Nat. MD 5 於 90 年代初由 MIT 的計算機科學實驗室和 RSA Data Security Inc 所發明,並. n. al. er. io. 經 MD2、MD3 和 MD4 等不同版本的雜湊演算法發展而來。MD5 演算法輸入訊息不超. i n U. v. 過 264 個位元長度,並且會被分成好幾個 512 位元的區段處理,而輸出則是 128 位元的. Ch. engchi. 雜湊值,其演算處理流程如圖 2.9 所示[25]。由於 MD5 在產生雜湊值的效能穩定且迅速, 因此本研究採用此演算法作為資料驗證方法。. 16.
(29) 應用 GeoJSON 技術提昇空間資料交換之研究. 立. 政 治 大. ‧ 國. 學 圖 2.9:MD5 雜湊演算法流程[25]. ‧ sit. y. Nat. 2.6 開放式原始碼 Web GIS 平台簡介. al. er. io. 目前有許多開放免費地圖與程式設計資源的網路地圖服務,其中又以 Google Maps. v. n. 及 Open Layers 普遍受各大軟體或學術領域應用,除了可提供使用者製作網路地圖,並. Ch. engchi. i n U. 且可以免費使用地圖圖資,讓使用者能客製化地理影像圖資,包括衛星影像、航照圖或 早期地圖掃描影像等。 Google Maps 是由 Google 公司提供的電子地圖服務[36],能提供傳統向量地圖及衛 星照片,其特點為透過 Google Maps 提供的組件化 API,讓使用者得以自行利用或與其 他的網路服務整合應用,然而 Google Maps 在實務操作上是有限制的提供服務,對於圖 徵的數量及未壓縮檔案的大小均有設限,因此無法完全滿足本研究的要求。 Open Layers 是一個完全開放 JavaScript 原始碼的地圖服務[43],是由 MetaCarta 開 發了初步的版本,且它的所有環境都是透過 JavaScript 產生,包括地圖資料、繪圖等, 它可連結多種地圖的圖層,如微軟 bing 地圖、Google Maps、Yahoo 地圖及 ESRI 地圖等;. 17.
(30) 應用 GeoJSON 技術提昇空間資料交換之研究. 在使用上,Open Layers 沒有開發限制與付費政策問題,所有程式元件均完全開放且免 費提供使用者應用,對於許多想要節省成本的開發團隊而言,Open Layers 是個非常適 合的網路平台服務,其簡易呈現畫面如圖 2.10 所示。本研究綜合考量網路地圖軟體的使 用成本及限制後,將選擇採用 Open Layers 作為研究的網路平台。. 立. 政 治 大. ‧ 國. 學 圖 2.10:OpenLayers 範例畫面. ‧. n. er. io. sit. y. Nat. al. Ch. engchi. 18. i n U. v.
(31) 第三章 GeoJSON 資料壓縮 隨著 Web GIS 應用層面逐漸擴張,資料的內容豐富度也隨之提昇,面對瞬息萬變的 資料,促使資訊系統與技術推陳出新,運用簡單、快速且有效率的方法來處理龐大的資 料,GeoJSON 技術也在此環境下應運而生。在第二章回顧其他地理資料交換格式,以 及對 GeoJSON 的初步了解,每種格式都能有不同的 Web GIS 應用效益,然而 GeoJSON 在 Web GIS 解讀過程中,簡化了格式翻譯的流程,加上簡單的內容結構,讓系統讀取與. 政 治 大 本章之重點在於討論壓縮技術之設計與檢查機制流程的規劃,再於第四章進一步判 立. 執行效能優於其他格式,這也是本研究期待 GeoJSON 能有更多的應用與發展空間原因。. 斷壓縮技術的效益與正確性。以下,3.1 節先介紹本研究實驗的系統架構;3.2 節介紹研. ‧ 國. 學. 究的工具與資料處理的流程;3.3 節是將輸出的 GeoJSON 格式套用在本研究設計的壓縮. ‧. 技術,以比較浮點式編碼與差分編碼二者的壓縮率,並評估 HTTP 壓縮對於改善資料傳. y. Nat. 遞時間的效益;3.4 節是將壓縮技術應用於不同條件下進行實驗,包括不同壓縮組合及. er. io. sit. 不同型態資料對壓縮率的影響;3.5 節是針對壓縮技術套用後,在無法預知可能發生網 路傳輸問題下,設計一套資料傳輸檢查機制,以確保資料的正確性與一致性。. n. al. 3.1 系統架構. Ch. engchi. i n U. v. 從圖 3.1 所示,我們首先處理 Web GIS 需要的空間資料,並將得到的資料透過處理 轉換至資料庫,最後輸出 GeoJSON 提供實驗測試;接著將本研究設計的 GeoJSON 壓縮 技術與 HTTP 壓縮,依據 GeoJSON 內容進行實驗,以證明本實驗模組改善的成果;再 來將以上兩種模組用不同的組合,觀察資料傳輸時間、壓縮率與資料型態等三種條件對 壓縮的影響,並分別進行實驗;最後,在針對整體壓縮與傳遞過程,套用資料傳輸檢查 的機制,觀察這套檢查機制如何處理可能遇到的網路問題,與錯誤發生的解決方案。詳 細的各部區塊說明如下:. 19.
(32) 應用 GeoJSON 技術提昇空間資料交換之研究. 資料前處理. 資料壓縮技術 GeoJSON壓縮 HTTP壓縮. 效能與壓縮率分析 治 政 大. 傳輸效能與資料壓縮分析. 資料傳輸檢查機制 與效能影響. ‧. 圖 3.1:系統架構圖. sit. y. Nat. 1. 資料前處理. 不同類型資料壓縮分析. 學. ‧ 國. 立. n. al. er. io. 由於收集的資料來源屬性不一,為方便實驗進行,需要將不同的檔案格式經由轉. v. 換,以統一型態整合至空間資料庫管理,最後依實驗的資料需求,再透過資料庫. Ch. 語言產生 GeoJSON 格式。. engchi. i n U. 2. 資料壓縮技術 資料壓縮技術分成二部份,一個是針對 GeoJSON 格式產生的 GeoJSON 壓縮技術, 另一個為輔助 GeoJSON 壓縮技術而運用的 HTTP 壓縮技術。其中,GeoJSON 壓縮 技術參考差分編碼演算法,以及本研究提出的浮點式編碼組成,主要目的為壓縮 座標以減少資料量,而 HTTP 壓縮可以縮減 HTTP 解析 GeoJSON 格式的時間,詳 細的方法設計於 3.3 節說明,並於第四章實驗探討觀察改善程度與分析成果。 3. 效能與壓縮率分析 主要分成「傳輸效能與資料壓縮分析」與「不同類型資料壓縮分析」 ,透過不同壓. 20.
(33) 應用 GeoJSON 技術提昇空間資料交換之研究. 縮組合:「原始檔案」、「原始檔案經 HTTP 壓縮」、「原始檔案經 GeoJSON 壓縮」、 「原始檔案經 GeoJSON 及 HTTP 壓縮」,計算壓縮後資料傳遞的時間。其中「資 料壓縮傳輸效能分析」分析「資料量」對傳遞時間的影響; 「不同類型資料壓縮分 析」則將座標資料分成連續與不連續型,分析「差異值大小」對壓縮程度的影響。 4. 資料傳輸檢查機制與效能影響 由於資料傳遞錯誤,可能影響 GeoJSON 編碼之正確性,因此參考資料傳輸與驗證 之文獻,採用最普遍的資料驗證方法-「單向雜湊函數」 ,來避免資料錯誤的發生。. 政 治 大. 最後,將檢查機制執行時間考慮進資料傳遞的流程,於第四章探討資料檢查對傳 輸效能的影響程度。. 立. 在本研究資料搜集與實驗過程中,使用到的程式語言與軟體工具如下:. ‧ 國. 學. 1. 程式開發:使用 PHP 程式語言,主要用途為開發 GeoJSON 壓縮函式、HTTP 壓縮. ‧. 程式以及 Web GIS 使用者介面。. y. Nat. 2. 資料庫:使用 PostgreSQL 空間資料庫,處理收集的地理資料, 其主要功能除了可. 函式,可支援轉換成實驗需要的 GeoJSON 格式。. al. v i n Web GIS 平台:使用 OpenLayers C h API 建立 GIS 使用者介面平台,並使用 engchi U n. 3.. er. io. sit. 利用內建的 shp2pgsql 的工具轉換 shp 檔案成空間資料,另外強大的空間資料處理. JavaScript(AJAX)與平台進行互動,如放大、縮小、繪圖等。 4. 所有環境佈署在 Apache 應用伺服器。 5. 硬體:CPU 雙核 2.10GHz,記憶體 3GB。. 6. 網路條件:由於實驗網路環境為一般家用 ADSL,以此模擬一般使用者查詢地理資 料的現況,網路速度約下載 321KBytes/秒,上傳 107.34Kbytes/秒。. 3.2 資料前處理 整個系統架構的資料處理流程,包括資料來源、資料轉換、空間資料庫以及 GeoJSON 輸出,流程圖與詳細說明如下: 21.
(34) 應用 GeoJSON 技術提昇空間資料交換之研究. 立. 政 治 大. ‧. ‧ 國. 學 er. io. sit. y. Nat 1. 資料來源:. 圖 3.2:系統架構圖. al. n. v i n Ch 於第二章介紹 GeoJSON 中,可以發現其支援多種不同的資料型態,包括連續型的 engchi U. LineString、Polygon,以及非連續型的 Point,因此為了滿足實驗的需求,從過去所 接觸的開發 Web GIS 計畫中,取得台灣地區的行政區域以及商業活動的位置分佈。 行政區域資料是經由 ArcGIS 軟體產生的 shp 檔案,而商業活動位置分佈則是從同 樣為 PostgreSQL 資料庫匯出的檔案,包括有便利商店的分佈、捷運路線、ATM 分 佈等,因此不同的資料型態,可以滿足本研究不同的實驗與分析使用。 2. 資料轉換: 面對不同的檔案來源,必須先有初步轉換成可以讓 PostgreSQL 資料庫讀取的格式。 透過內建的「shp2pgsql」執行檔案,可以將 shp 轉換成 SQL 語言並匯入。另外商. 22.
(35) 應用 GeoJSON 技術提昇空間資料交換之研究. 業活動位置分佈資料原本即 PostgreSQL 資料庫匯出,在這邊可直接透過資料庫的 回存功能匯入。 3. 空間資料庫: PostgreSQL 之所以作為本研究實驗的主要資料庫,主要因為 PostgreSQL 除了具有 一般商業資料庫的功能外,更含括幾何空間(geometry)及使用者自定資料型態,讓 使用者可以方便的對資料進行處理與儲存,另外為使空間資料可以符合 OGC 制定 的規格,另外附加了 PostGIS (Geographic Object for PostgreSQL) 自由軟體套件,可. 政 治 大. 以輸出如 GeoJSON、GML、KML 等 Web GIS 使用的空間資料格式。 4. GeoJSON 產生:. 立. 在 GeoJSON 輸出階段,可以直接以「ST_AsGeoJSON」資料庫函式語法,產生. ‧ 國. 學. GeoJSON 格式,其格式範例如下:. ‧. SELECT ST_AsGeoJSON(1,(the_geom)) FROM TABLE;. y. Nat. 其語法代表從資料庫中選擇資料所屬的資料表,並將資料表中存放空間資料物件欄. er. io. sit. 位「the_geom」,用 ST_AsGeoJSON 轉換成 GeoJSON 格式,而 ST_AsGeoJSON (1,(the_geom),5)中的 1 代表 GeoJSON 版本(目前皆為 1)。最後當 PHP 程式接收到. al. n. v i n Ch GeoJSON 格式,篩選出座標物件中的座標陣列,即可進行下一步驟的 GeoJSON 資 engchi U. 料壓縮技術套用。 5. 擷取座標內容:. GeoJSON 中含有大量的座標資料,也是本研究的壓縮重點,因此先將格式中過濾 出座標集,以方便壓縮方法的套用流程。. 3.3 資料壓縮技術 從文獻回顧以及 3.1 的 GeoJSON 格式輸出範例,可以直接辨識出 GeoJSON 格式中, 座標資料佔有相當大的比例、由於鄰近座標數值相近故差異值較小。基於以上發現可以 歸納兩點方向,一為縮減座標資料量;二為利用座標值相近與差異小的特性。 23.
(36) 應用 GeoJSON 技術提昇空間資料交換之研究. 在資料壓縮方法設計過程,參考相關處理序列資料的壓縮技術,以「差分編碼」演 算法最接近本研究的需求,差分編碼簡單來說即兩值相減所得到的「差異值」,因此假 設僅儲存差異值,則資料大小就會減少。 然而,座標資料經由差分編碼後,發現壓縮成效不彰,原因在於座標的浮點數格式 相減後,小數點與尾數間許多值為零的結果,如圖 3.3 所示,在這邊本研究將小數點與 尾數間的值為零現象稱之為「前置零」。另外,前置零的存在影響字串長度,因此本研 究提出一個可以去除前置零字元的方法-浮點式編碼,並於下文作詳細的介紹。. 政 治 大. 原始資料 : 120.57425 , 120.57462 , 120.57472. 立. 差分編碼. 前置零 圖 3.3:差分編碼產生的前置零. Nat. y. ‧. ‧ 國. 學. 120.57425 , 0.00037 , 0.0001. er. io. sit. 另一個探討的議題是 HTTP 壓縮技術,從文獻中得知,所有經伺服器傳遞的資訊, 都需要經過 HTTP 層解析在回應至用戶端。換句話說,資料內容愈多,花費的解析時間. al. n. v i n Ch 與頻寬使用率就愈高。參考減少頻寬與提昇效能的方法研究中,最普遍的方法為 GZIP engchi U. 壓縮演算法,因此本研究採用 GZIP 壓縮演算法進行 HTTP 壓縮,以輔助減少 GeoJSON 資料的解析時間。 綜合以上說明,本節可以歸納二個部份,分別為 GeoJSON 壓縮技術與 HTTP 壓縮技術。 1.. GeoJSON 壓縮技術: 由差分編碼與浮點式編碼函式組成,差分編碼方法是儲存座標間的差異值,使得差 異值為小於零的浮點數;而浮點式編碼是為了改善差分編碼壓縮後前置零的問題。 第一部份先介紹差分編碼對座標的壓縮流程,第二部份介紹浮點式編碼如何改善差 分編碼,最後在第四章對兩大部份實驗,觀察本研究提出的浮點式編碼對差分編碼 的影響與改善程度。 24.
(37) 應用 GeoJSON 技術提昇空間資料交換之研究. 差分編碼函式: 參考差分編碼技術,本研究整理的差分編碼公式如下。 pi 代表 (x i , yi ) 座標,P 為座標集合,差分編碼為 Δpi ,因此我們僅儲存 Δpi 即可達到壓縮的目的,其 表示式如下:. pi (x i , yi ),i 0,....n-1 P {p0 , p1, ...p n-1} Δpi pi 1 pi. 政 治 大. 下圖 3.4 為座標經差分編碼示意圖,圖片中的代號分別表示將 p 表示成原始座. 立. 標值、Δp 為差分編碼值,差分解碼值即為原始座標值,因此同樣以 p 表示。. 學. ‧ 國. 一、 差分編碼(Delta Encode):. 將第一個座標值 p0 設定為解碼參考的基準值(Reference value),. ‧. Δp0 p1 p0 ,即本實驗的差分編碼值,以此類推。. Nat. sit. y. 二、 差分解碼(Delta Decode):. io. 從差分編碼結果中, p1 Δp0 p0 即可得到原來的座標值 p1。. n. al. er. (1). Ch. engchi. i n U. 圖 3.4:差分編碼示意圖. 25. v.
(38) 應用 GeoJSON 技術提昇空間資料交換之研究. 表 3 為本研究參考差分編碼,所設計的座標資料壓縮的程式與說明。 表 3:差分編碼函式程式 程式. 程式行說明. $coor = [[x1, y1], [x2, y2], ….[xn, yn]]. $coor為矩陣座標物件,共n組 編碼函式名稱:delta_encode. function delta_encode($coor) { $coorsize=sizeof($coor); for($i=0; $i<$coorsize; $i++) { $delta_x = ($coor[$i][0]-$coor[$i-1][0])); $delta_y = ($coor[$i][1]-$coor[$i-1][1]); } Return $delta_x.”,”.$delta_y; }. 立. $coorsize為座標矩陣的大小,即n 遞迴呼叫座標矩陣內物件 x座標進行差分編碼 ( Δp i p i 1 p i ), y座標進行差分編碼(同上). 政 治 大. ‧ 國. 學. 然而,本研究發現差分編碼有二個明顯的缺點,一為座標的差異值,存在許多 前置零,因此字元縮減程效不彰;二為解碼需取決於前一位的座標,若前一個座標. ‧. 錯誤,則會連帶影響後續解碼的正確性。. sit. y. Nat. 經由以上發現的問題,本研究提出兩點改善的方法:一為透過本研究提出的「浮點. io. er. 式編碼」 ,解決前置零的問題;二為建立「資料驗證」機制,檢查伺服器與用戶端的 資料是否一致,詳細的資料驗證流程於 3.5 節說明。. n. al. (2). 浮點式編碼函式:. Ch. engchi. i n U. v. 此函式為改善差分編碼的「前置零」問題延伸而出,其浮點式編碼示意圖與說明如 下: 一、 浮點數正規化: 為使小數點後的字串更有系統的處理,將浮點數正規化後,切分成三個部份, 分別為符號(Sign)、量值(Magnitude)以及指數(exponent),切分的原因為: 甲、 座標之正負符號:在進行浮點式編碼前,先取得座標之正負值並儲存至 「符號空間」 ,這樣可以確保編解碼時,數值的正確性或符號可能被捨去 的問題。 26.
(39) 應用 GeoJSON 技術提昇空間資料交換之研究. 乙、 前置零:差分編碼應用在座標壓縮會產生前置零的問題,因此壓縮成效 不彰,因此浮點數的正規化,可以將簡化前置零字元長度。 二、 合併符號與指數: 將座標數值經由正規化取得指數與符號後,兩者合併後使得長度為 8 個位元 (bit),即為一個位元組(bytes)大小。 三、 進制轉換: 合併 sign 與 exponent 後結構變成二個部份,從以上步驟都仍是數值的階段,. 政 治 大 本研究將「sign + exponent」與「magnitude」兩部份,分別透過「進制轉換」 立 因為若要與 GeoJSON 的字串格式整合,所有數值皆需轉成字串型態。因此,. 組合成字串。為避免字串在轉換後產生如「引號」、「亂碼(無法辨識字元)」等. ‧ 國. 學. 特殊符號,而影響 JavaScript 錯誤的解讀,因此本研究將字串以 0-9,A-Z,a-z 共. ‧. 62 個符號作進制的轉換,如下表 4 所示,表 5 則為本研究提出的浮點式編碼. 讀入Delta 編碼後的浮點數. n. al. Ch. er. io sign. sit. y. Nat. 程式與內容說明。. i n U. e n g cmagnitude hi. exponent. sign + exponent (1byte). v. (1)編碼前置處理. (2)合併sign與exponent. 進制轉換. 合併字串. 圖 3.5:浮點式編碼示意圖. 27. (3)進制轉換.
(40) 應用 GeoJSON 技術提昇空間資料交換之研究. 表 4:進制轉換對照表 數值. 字串. 數值. 字串. 數值. 字串. 數值. 字串. 數值. 字串. 0. 0. 1. 1. 2. 2. 3. 3. 4. 4. 5. 5. 6. 6. 7. 7. 8. 8. 9. 9. 10. a. 11. b. 12. c. 13. d. 14. e. 15. f. 16. g. 17. h. 18. i. 19. j. 20. k. 21. l. 22. m. 23. n. 24. o. 25. p. 26. q. 27. r. 28. s. 29. t. 30. u. 31. v. 32. w. 33. x. 34. y. 35. z. 36. A. 40. E. 41. F. 45. J. 46. 50. O. 38. C. 39. D. 42. G. 43. H. 44. I. K. 47. L. 48. M. 49. N. 51. P. 52. Q. 53. R. 54. S. T. 56. U. 57. V. 58. W. 59. X. Y. 61. Z. y. 表 5:浮點式編碼函式程式 程式行說明. io. 編碼函式名稱:float_encode,將delta編碼 後的值在進行浮點式編碼. n. al. er. function float_encode($delta_coor) {. sit. ‧ 國. 立. Nat. 程式. B. ‧. 60. 37. 學. 55. 政 治 大. Ch. i n U. if ($delta_coor<0) { $sign = 1; $nosign_coor = substr($delta_coor,1); } else { $sign = 0; $nosign_coor = $delta_coor; } $nozero_coor = rtrim($nosign_coor, '0'); $decops=strops($nozero_coor, '.'); $exp = strlen($nozero_coor)-$decpos-1;. v. i e n g c h取得座標的”sign”,並定義為$sign,分別與 0與1代表正號與負號 -過濾負號. 過濾尾巴的0,並定義為$ nozero_coor 找出小數點的位置,從前面算起 用小數點的位置,決定exponent,把浮點數 變成整數. $str_before_dot = substr($nozero_coor, 0, $decpos); $str_after_dot = substr($nozero_coor, intval($decpos+1), $exp); $magnitude = $str_before_dot.$str_after_dot; $magnitude1 = ltrim($magnitude, '0'); $result1 = dec2base( ((int)($sign*$base*0.5)+$exp)); } }. 28. 取得magnitude,並去掉開頭的"0". 將數值轉換成字元並合併成一個字串.
(41) 應用 GeoJSON 技術提昇空間資料交換之研究. 2.. HTTP 壓縮技術應用: 從文獻探討了解 HTTP 壓縮可以大幅節省資料解析時間的特性,因此本研究嘗試藉 由 HTTP 壓縮技術來輔助 GeoJSON 資料傳輸的效能。HTTP 壓縮技術的執行流程說 明與流程圖如下: (1) 檢查文件檔頭資訊: 伺服器端接收到文件時,透過檔頭資訊可以初步確認文件是否為壓縮檔案,若 為已壓縮檔案,則直接輸出結果,若為未壓縮檔案,則透過 GZIP 壓縮方法進. 政 治 大 使用 GZIP 壓縮與結果輸出: 立 行文件壓縮。. (2). GZIP 可為 HTTP 解析文件前,進行文件的壓縮。本研究使用 PHP 內建的. ‧ 國. 學. gzencode 函式壓縮資料,再重新傳送己壓縮的資訊至 HTTP 檔頭資訊,最後輸. ‧. 出至用戶端。. y. sit. io. n. al. er. Nat. 接收 來源文件. Ch. 透過檔頭資訊 確定是否壓縮. engchi. i n U. v. 否 GZIP壓縮. 是. 輸出結果. 圖 3.6:HTTP 壓縮流程圖 綜合以上壓縮技術得到下圖完整的資料傳遞與壓縮流程,由上而下為用戶端對資料 請求的流程,當 Web 伺服器收到請求便會對資料庫進行查詢以及產生 GeoJSON 格式, 最後在經過 GeoJSON 與 HTTP 壓縮技術壓縮並回應至用戶端。 29.
(42) 應用 GeoJSON 技術提昇空間資料交換之研究. 用戶端 請求資料. 資料輸出. HTTP 分析請求. Web伺服器. HTTP壓縮. 查詢資料. GeoJSON壓縮. 資料庫 產生GeoJSON. 政 治 大. GeoJSON. 立. 圖 3.7:資料傳遞與壓縮套用流程. ‧ 國. 學. 3.4 效能與壓縮率分析. ‧. 本節分成兩大部份,分別為「傳輸效能與資料壓縮分析」及「不同類型資料壓縮分. sit. y. Nat. 析」,透過兩種分析,讓使用者可以更清楚壓縮技術提昇效能程度與能力,以及掌握未. al. 傳輸效能與資料壓縮分析:. n. 1.. er. io. 來運用的範圍與成效。. Ch. engchi. i n U. v. 此部份的分析重點,為了解本研究提出的 GeoJSON 壓縮方法提昇傳輸的能力,與 HTTP 壓縮技術的輔助所改善的成效情況。因此將第四章的實驗方式分成「原始檔 案(不壓縮)」、「原始檔案經 HTTP 壓縮」、「原始檔案經 GeoJSON 壓縮」、「原始檔 案經 GeoJSON 壓縮及 HTTP 壓縮」四組,分別計算同一筆 GeoJSON 資料傳輸時 間,觀察 GeoJSON 壓縮後,可以節省多少傳輸時間,並透過不同的組合比較,讓 使用者清楚本研究提出壓縮技術可以為傳輸效能帶來的實質效益,與更容易掌握 與運用。 2.. 不同類型資料壓縮分析: 此分析將地理資料分成「連續性」的線與面,以及「非連續性」的點。由於連續. 30.
(43) 應用 GeoJSON 技術提昇空間資料交換之研究. 性的座標資料移動距離較短且數值相近,而非連續性的座標資料可能分佈在不固 定的地理範圍,因此當使用差分編碼時,連續的座標差異值相較於非連續性座標 還來的小,且壓縮率結果較佳。為證明不同類型資料對壓縮率的影響,於 4.4 節實 驗結果觀察實際影響的程度。. 3.5 資料傳輸檢查機制 根據 3.3 節,本研究提出一個避免 GeoJSON 格式編解碼錯誤的方法-「資料傳輸 驗證」機制,來確保資料傳遞的正確與一致性。首先說明資料傳輸檢查機制的基本架構. 政 治 大. 圖,如下圖所示,其中最重要的部份為伺服器端的「資料驗證前置處理」,以及用戶端. 立. 的「資料驗證與錯誤檢查」,詳細流程如下:. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. i n U. v. 圖 3.8:資料傳輸驗證架構圖. 31.
(44) 應用 GeoJSON 技術提昇空間資料交換之研究. 伺服器端作業流程: 在進行資料驗證前,首先需要為每一個資料準備一個驗證碼,提供用戶端在接收 資料的檢查依據,驗證碼必須是唯一且不可能重複;此外,為了降低資料錯誤率, 亦加入分散風險的機制以防堵一次傳遞就全軍覆沒的情況發生。因此將本步驟分 成兩大重點,一為「資料分割」、二為「資料驗證碼產生」,詳細說明如下: (1) 資料切割: 資料切割的用意在於將錯誤風險分散,如參考圖 3.12 的例子,一份 GeoJSON. 政 治 傳遞失敗次數 大 );若假設我們將 GeoJSON 解碼後發生錯誤,錯誤率為 100% ( = 傳遞檔案次數 立 文件並包涵四個座標值,其中差分編碼後的Δp1 座標值未傳遞成功,則用戶端. 學. 文件分成 4 次傳遞,則發生一次失誤所得到的錯誤率可能降為 25%。. ‧ 國. 圖 3.9 為資料切割的流程示意圖,圖中將 (x i , yi ) 座標以 p 來表示,n 代表文件. ‧. 中的座標個數,以 m 筆座標資料為單位分割,k 表示為總切割數(k=n/m),F. sit. y. Nat. 符號代表檔案,且 i 為 0 到 k-1 個檔案索引值,因此 F0 ~Fk-1 的座標內容為. io. {p0 ...p m-1},{p1...p 2m-1},…{p(k-1)m ...p km-1} ,在將每一個檔案套用 GeoJSON 壓. n. al. er. 1.. i n U. v. 縮,並保留第一個座標值作為解碼的基準值,得到編碼後的檔案 F'0 ~F'k-1 ,以. Ch. engchi. 及內容為 {p0 ,Δp0 ...Δp m-2 },{p m ,Δp m ...Δp 2m-2 },…{p(k-1)m ,Δp(k-1)m ...Δp km-2 } 。. 32.
(45) 應用 GeoJSON 技術提昇空間資料交換之研究. P2 P3 P4 P5 ………. 立. F'1. 政 治 大. 基準點. ………. 編 碼 後 的 座 標. ΔP2m-2. GeoJSON 壓縮模組 編碼. ‧. Nat. P(k-1)m__ P(k-1)m+1 P(k-1)m+2 P(k-1)m+3 P(k-1)m+4 P(k-1)m+5 ……… Pkm-1. 學. Fk-1. GeoJSON 壓縮模組 編碼. Pm. ΔPm__ ΔPm+1 ΔPm+2 ΔPm+3 ΔPm+4. 編 碼 後 的 座 標. ……. Pn-1. F1. Pm__ Pm+1 Pm+2 Pm+3 Pm+4 Pm+5 ……… P2m-1. F'k-1. y. P1. ‧ 國. n 筆 座 標 資 料. 以 m 筆 座 標 資 料 為 單 位 分 割. F'0. 基準點. 圖 3.9:檔案切割流程示意圖. P(k-1)m ΔP(k-1)m ΔP(k-1)+1 ΔP(k-1)+2 ΔP(k-1)+3 ΔP(k-1)+4 ……… ΔPkm-2. 基準點 編 碼 後 的 座 標. io. er. P0. GeoJSON 壓縮模組 編碼. P0 ΔP0 ΔP1 ΔP2 ΔP3 ΔP4 ……… ΔPm-2. sit. F0. P0 P1 P2 P3 P4 P5 ……… Pm-1. (2) 資料驗證碼產生:. al. n. v i n 參考單向雜湊函數 MD5 C的文獻說明,可以為每一個檔案產生唯一且不重複的 hengchi U. 雜湊值作為驗證碼,由於雜湊值的大小固定為 128 位元,因此即使附加在每一 筆檔案,對資料量與傳輸效能影響微乎其微。如下公式為 MD5 產生雜湊碼的 表示式,h 為雜湊值(即驗證碼),m 為需要轉換的字串(本研究設定為 GeoJSON 編碼後所得的字串),其表示式為,h = MD5(m)。因此將 MD5 套用資料後的流 程如圖 3.10 所示。. 33.
(46) 應用 GeoJSON 技術提昇空間資料交換之研究. p1. p0. 原始資料(p):. p2. p3. Δp1. Δp2. 保留不變. p0. 差分編碼 :. Δp0. h = MD5(p0,Δp0,Δp1,Δp2) d9b70efa15fd85afae12184de3736343 128bit. 政 治 大 將以上流程套用上述例子中檔案為 F' ,如圖 3.11 所示,透過 MD5 雜湊演算 立 圖 3.10:驗證碼產生示意圖 0. ‧ 國. 學. 法後產生一個 128bit 大小的雜湊值 h 0 ,並且將 h 0 附加在 F'0 的 GeoJSON 文件 ^. 內容得到 F0 ,最後再傳輸至用戶端。. y. a l 圖 3.11:附加 MD5 雜湊碼i v n Ch U 用戶端-資料驗證與錯誤檢查:e n g c h i n. 2.. sit. h0=MD5( F '0). F0 = F'0 h 0. er. io. 單向雜湊函數. ^. h0. MD5演算法. ‧. Nat. F '0. 用戶端在資料驗證機制流程上,主要工作為驗證與錯誤檢查,並回報檢查結果至伺 服器端,如圖 3.12 所示,伺服器端與用戶端分別將產生驗證碼比對數值來判斷資料 內容是否相符。 由於每個資料產生的 MD5 驗證碼具唯一性,不可能重複的特質,因此文字稍有任 何的變動,皆會影響 MD5 演算後產生的驗證碼,基於以上特性,非常適合作為本 研究在資料傳遞正確與否的驗證方法。. 34.
(47) 應用 GeoJSON 技術提昇空間資料交換之研究. p '1. p '2. p '3. 政 治 大 完整的驗證流程如圖 立3.13,伺服器端將 F' 檔案與附帶 h 驗證碼一併傳至用戶 圖 3.12:GeoJSON 驗證與檢查錯誤示意圖 s. s. ‧ 國. 學. 端,用戶端在接收到 F's 同樣產生一串驗證碼 h 's ,並且與 h s 比對並且檢查結果回傳 至伺服器端。另外,流程執行次數會經由「網址參數」來判斷,參數表示方式例子. ‧. 如 http://localhost/geojson_split.php?k=4&s=2,其中 k 代表分割數,s 代表傳遞檔案的. sit. y. Nat. 序號 0~k-1,因此上串網址代表總分割數為 4(傳遞 4 次),且目前傳遞為第 2 筆檔案;. al. er. io. 當傳遞下一筆時,s=s+1,直到 s<k 為止。反之,若資料驗證有誤,用戶端便會告知. v. n. 網址不需要加 1,則會使用原來的檔案序號再傳遞一次。 ^. Fs. Ch. engchi. i n U. F's. hs. F's hs F's. F's1. h s h 's. h's. 圖 3.13:資料傳送與檢查 35.
(48) 應用 GeoJSON 技術提昇空間資料交換之研究. 雖然經由資料傳輸驗證可以避免錯誤發生,若將資料驗證加入本研究壓縮方法程 序,則必須將驗證時間也考慮總傳輸時間,因此在第四章資料傳輸檢查與效能評估實驗 中,將資料驗證加入 GeoJSON 壓縮與傳遞時間計算,以此觀察此機制影響多少時間, 以此評估未來需要改善的方向。. 立. 政 治 大. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. 36. i n U. v.
數據
相關文件
隨著影像壓縮技術之進步、半導體科技之快速發展、無線通訊技術與數位傳送輸技術
本研究主要以 But-for 崩塌竣工時程分析技術為基礎進行理論推導,確認此延遲分析技術 計算邏輯之問題與完整性,之後提出修正之計算邏輯,使
本研究以 2.4 小節中之時程延遲分析技術相關研究成果為基礎,針對 Global Impact Technique、Net Impact Technique、As-Planned Expanded Technique、Collapsed
本研究採用的方法是將階層式與非階層式集群法結合。第一步先運用
本研究是以景觀指數進行對 1993 年、2008 年與擴大土地使用三個時期之評 估,其評估結果做比較討論。而目前研究提供研究方法的應用-GIS 與 FRAGSTATS 之使用方法。從 1993 年至
本研究於 2017 年 4 月以市面上瓶裝水的品牌隨機抽取國內外各五種品 牌作為研究對象,並利用環檢所公告之採樣方法檢測,收集的樣本以兩種
本研究以 CCR 模式的投入導向模式進行差額變數分析 ,針 對相對無效率之
本研究在於國內汽車產業的經營策略之分析,藉由對已選定的個案進行仔 細地資料蒐集與分析,以期最終從中獲致結論。本研究方法,基本上依 Porter 競 爭分析及