王剛
(1.天津市測繪院,天津 300381; 2.天津金宇信息技術有限公司,天津 300384)
隨著網(wǎng)絡軟硬件技術的不斷發(fā)展與應用,互聯(lián)網(wǎng)的傳輸效率得到了很大的提高,人們日常的學習、生活和工作也與之緊密聯(lián)系在一起,通過它全世界范圍內各個計算機就可以完成信息的通訊與交換,網(wǎng)絡信息的交換實質上就是數(shù)據(jù)的網(wǎng)絡傳輸,雖然現(xiàn)在網(wǎng)絡速度有了很大的改善,但仍無法滿足現(xiàn)在應用的需要,GIS應用方面也不例外,在當前WebGIS應用領域,同樣也面臨著空間數(shù)據(jù)高效率傳輸?shù)膯栴}。一般而言,網(wǎng)絡數(shù)據(jù)傳輸所耗費時間取決于兩個方面,一方面網(wǎng)絡帶寬大小;另外一方面就是數(shù)據(jù)量的大小。對于前者主要取決于網(wǎng)絡通訊基礎設施建設方面的內容,在此不作具體深入的探討。
當前,金字塔模型下的地圖瓦片技術的應用較好地減少了地圖數(shù)據(jù)網(wǎng)絡傳輸冗余性問題,這種技術通過將地圖按照一定規(guī)則輸出成固定大小的圖片,服務器端根據(jù)客戶端用戶地圖窗口的大小,將該區(qū)域包含的地圖圖片塊傳輸?shù)娇蛻舳瞬@示出來。這種按需傳輸?shù)乃枷霚p少了傳輸?shù)貓D數(shù)據(jù)量,大大地縮短了地圖傳輸與等待的時間,這也使得WebGIS在各個行業(yè)和部門中的應用越來越廣泛。但隨著應用的不斷深入,我們也面臨著傳輸?shù)臄?shù)據(jù)量問題,具體而言就是如何通過壓縮來減少傳輸中地圖圖片塊和矢量數(shù)據(jù)的數(shù)據(jù)量。
本文主要探討的是在WebGIS應用中,基于一定的網(wǎng)絡環(huán)境下如何對空間數(shù)據(jù)進行合理的組織與壓縮,從而大大提高空間數(shù)據(jù)的傳輸效率,改善GIS應用的用戶體驗。
當前,WebGIS應用系統(tǒng)從應用角度上可以由客戶端層、服務器端層(WebGIS服務器層和GIS應用服務器層)以及數(shù)據(jù)存儲層(空間數(shù)據(jù)存儲)等多層結構組成。其中客戶端層主要有兩種方式,一種是瀏覽器,另外一種就是GIS軟件開發(fā)商提供的客戶端軟件。服務器端層則主要是指WebGIS功能模塊的服務接口,既可以根據(jù)用戶需求開發(fā),也可以借助專業(yè)的GIS例如ArcGIS Server來部署相關的服務。數(shù)據(jù)存儲層顧名思義就是地圖瓦片數(shù)據(jù)和矢量數(shù)據(jù)集存儲的數(shù)據(jù)庫,其結構圖如圖1所示。

圖1 WebGIS應用系統(tǒng)結構圖
眾所周知,傳統(tǒng)的GIS系統(tǒng)在地圖圖形表現(xiàn)方面遠不如采用地圖制圖技術所表達的效果,盡管制圖和GIS研究者共同致力于解決這一問題,但由于空間數(shù)據(jù)的多樣性、復雜性以及動態(tài)性,使得很多問題無法通過現(xiàn)有的技術去解決,同時GIS在網(wǎng)絡應用中也面臨著傳輸效率差的問題,隨著圖像分塊網(wǎng)絡傳輸技的成熟和多級影像金字塔模型[3]應用,地圖瓦片技術逐步成為當前實現(xiàn)WebGIS應用的主流技術。

圖2 多級影像金字塔模型圖
如圖2中,地圖瓦片技術其實就是依照一定比例尺間隔將地圖按照一定大小(一般256×256)輸出成地圖圖片,例如上圖中第0層輸出成4張256×256大小圖片,第1層則為16張……,這樣形成了不同比例尺下數(shù)目眾多的地圖圖片。盡管相比原始數(shù)據(jù)而言,單個地圖圖片尺寸較小,一般都在50 K以內,但對于客戶端以多個地圖圖片下載并拼接而成的WebGIS應用,同時調用的圖片數(shù)過多也增加了傳輸?shù)臄?shù)據(jù)量,因此我們有必要對單個地圖圖片數(shù)據(jù)進行壓縮處理,減少其文件大小。地圖圖片文件的尺寸主要與圖片的格式、冗余信息以及壓縮比等因素有關,本人在論文[5]中從圖片效果、大小等通過實驗分析了GIF、JPG、PNG三種文件格式,總結出對于矢量地圖圖片應該選用PNG格式,而對于影像等色彩豐富的采用JPG文件格式,從而保證一定圖片顯示效果下使得文件尺寸較小。在此基礎上我們還需對PNG、JPG文件再進行壓縮處理。
對于PNG文件采取的壓縮策略就是剔除冗余信息數(shù)據(jù),分析PNG文件格式我們知道PNG數(shù)據(jù)塊(Chunk)由關鍵數(shù)據(jù)塊(critical chunk)和輔助數(shù)據(jù)塊(ancillary chunks)兩部分組成,其中關鍵數(shù)據(jù)塊定義了 4個標準數(shù)據(jù)塊(IHDR,PLTE,IDAT,IEND),這是每個PNG文件所必須包含的。輔助塊主要由bKGD、cHRM、gAMA、hIST、iCCP、iTXt、pHYs、sBIT、sPLT、sRGB、tEXt、tIME、tRNS、zTXt塊組成,這些塊是可選的,但是一般PNG文件生成軟件中都會生成這些可選塊數(shù)據(jù),因此我們需要通過對單個PNG文件進行剔除可選塊處理,通過無損壓縮的方式來減少文件尺寸。
對于以JPG格式存儲的影像地圖瓦片,由于JPG本身就是一種有損壓縮的圖片文件格式,文件本身也不像PNG文件那樣存在可選塊數(shù)據(jù),因此我們只能采用算法對其進行有損壓縮,在圖片表現(xiàn)效果和文件大小方面找出一個最佳的壓縮比平衡點。
在網(wǎng)絡地理信息系統(tǒng)應用中,矢量數(shù)據(jù)的傳輸不再采取傳統(tǒng)上將整個矢量文件全部傳輸?shù)娇蛻舳撕箫@示,而是采取按照地圖顯示的范圍,向服務器發(fā)送區(qū)域內數(shù)據(jù)請求,服務器端通過計算后將相應的數(shù)據(jù)傳輸?shù)娇蛻舳耍瑐鬏數(shù)膬热葜饕亲鴺撕蛯傩孕畔ⅲ瑪?shù)據(jù)的格式也不在采取二進制格式,而是采用數(shù)字或者加密后的字符串格式,其原因在于減少數(shù)據(jù)結構的復雜性,縮短客戶端數(shù)據(jù)處理時間,提高應用的效率。
對于采用數(shù)字或加密后字符串格式,結合當前互聯(lián)網(wǎng)上搭建的WebGIS系統(tǒng),我們可以歸納為兩類,一類是自定義的字符串格式,另外一類是采用JSON或者GeoJSON格式。其中后面提到JSON是JavaScript對象表示法,GeoJSON是從JSON發(fā)展起來的,是一種地理數(shù)據(jù)的描述格式,可以描述的對象包括:幾何體,要素和要素集,這兩個已逐步成為數(shù)據(jù)傳輸、交換、共享的規(guī)范。為了減少矢量數(shù)據(jù)的數(shù)據(jù)量,我們主要采用數(shù)據(jù)文件壓縮和傳輸中數(shù)據(jù)壓縮。
為將空間對象的坐標轉換為整數(shù),需要將空間數(shù)據(jù)小數(shù)點后部分變?yōu)檎麛?shù),同時為減少存儲量,采用取一個數(shù)據(jù)密集區(qū)中心為原點,進行偏移轉換,再在此基礎上進行壓縮。如圖3所示:

圖3 坐標數(shù)據(jù)轉換與壓縮過程圖
文中采用整數(shù)壓縮轉換算法,所運用的全部都是移位或比較運算,這兩種處理是計算機運算速度最快的,因此完全可以保證壓縮的速度。采用這種方法的優(yōu)點是只需記錄一個原點的原始坐標,其余點都可用相對坐標表示,節(jié)省了存儲空間,缺點是由于幾何數(shù)據(jù)點、線、多邊形的存儲方式不同,進行偏移量轉換時中心點的選取原則不明確。
GZip 源于 Jean-loup Gailly和 Mark Adler創(chuàng)建[6],最初主要針對UNIX系統(tǒng)中的文件進行壓縮,后來逐步推廣到其他應用領域,這種編碼是建立在HTTP協(xié)議上的一種用以改進Web應用性能的網(wǎng)絡壓縮傳輸技術,它實際是LZ77編碼和Huffman編碼的一個組合體,其壓縮思想為:針對要壓縮的文件,先運用LZ77算法的一個變種來對文件進行壓縮處理,對于處理后的結果再用Huffman編碼處理,實際上在進行Humffman編碼時,GZip壓縮機制會根據(jù)文件實際情況,動態(tài)地選擇靜態(tài)Huffman編碼或者動態(tài)Huffman編碼。
針對網(wǎng)頁內容是由大量重復字符組成的這一特點,研究者通過建立GZip編碼壓縮機制[7]來壓縮網(wǎng)頁中相關內容,避免重復數(shù)據(jù)的傳輸,減少數(shù)據(jù)的傳輸。基于HTTP協(xié)議上的GZip編碼可以分為壓縮過程和解壓過程兩部分,這兩個過程分別是由服務器端軟件和客戶端軟件來完成,其中前者可以通過服務器GZip壓縮模塊配置來實現(xiàn),至于后者,諸如瀏覽器IE系列6及以上、Firefox等都內置GZip自動解壓功能,也就是說,在服務器上的網(wǎng)頁,傳輸之前先使用Gzip壓縮,再傳輸給客戶端,客戶端接收之后,由瀏覽器解壓顯示,雖然這樣稍微占用了一些服務器和客戶端的CPU,但是換來的是更高的帶寬利用率。其壓縮傳輸流程圖如圖4所示:
結合天地圖天津節(jié)點實際建設需要,我們從地圖瓦片和矢量數(shù)據(jù)壓縮兩方面展開了相關的試驗。

圖4 GZIP壓縮傳輸流程圖
在地圖瓦片壓縮實驗中,我們對于PNG格式的地圖瓦片采用上述的壓縮策略進行,對于JPG格式的圖片,考慮到是有損壓縮,壓縮前后圖像效果主要通過人視覺觀察打分統(tǒng)計從而獲取采用的壓縮比,在這里對于影像圖片,推薦采用60%~75%的壓縮比進行壓縮。
PNG文件壓縮,對于天地圖天津節(jié)點輸出的矢量地圖圖片,采取統(tǒng)計不同大小范圍內圖片塊壓縮前后的文件的平均大小,進而求的該范圍內的平均壓縮比。
實驗統(tǒng)計的結果如表1所示。

PNG文件壓縮實驗結果統(tǒng)計表 表1
根據(jù)上面統(tǒng)計表生成的PNG壓縮比走向曲線圖如圖5所示。
從圖5壓縮比走勢圖中,我們可以看出,采取本文提到的方法對于 10 KB以下的PNG文件,可以達到50%的壓縮比,對于30 KB以內的文件可以減少至少三分之一的尺寸,從而將使壓縮后的PNG文件大小控制在20 KB以內。

圖5 PNG壓縮比走向曲線圖
在GZip實驗中,我們建立了基于Apache2.11和PHP5.2.9環(huán)境下的GZip服務器環(huán)境,網(wǎng)絡傳輸?shù)氖噶繑?shù)據(jù)采用分塊形式組織,實驗中按照不同大小范圍內的矢量數(shù)據(jù)通過GZip網(wǎng)絡壓縮傳輸后大小的變化,每個范圍測試1000次,并計算出該范圍的平均壓縮比。
實驗統(tǒng)計的結果表如表2所示:

矢量數(shù)據(jù)GZip網(wǎng)絡壓縮實驗結果統(tǒng)計表 表2
根據(jù)上面統(tǒng)計表生成的GZip網(wǎng)絡壓縮比走向曲 線圖如圖6所示:
從表2和圖6中我們可以發(fā)現(xiàn)GZip對文本格式的基于數(shù)字組成的矢量坐標系統(tǒng)具有較大的壓縮比,盡管實時壓縮需要占用少量服務器的CPU進行運算,實際上這種影響是相當小的,因此,我們可以將這種網(wǎng)絡壓縮傳輸與WebGIS實際應用結合起來。

圖6 GZip網(wǎng)絡壓縮比走向曲線圖
在天地圖天津節(jié)點建設中,圍繞著如何減少網(wǎng)絡傳輸?shù)臄?shù)據(jù)量,加快網(wǎng)絡傳輸速度這一問題我們開展了大量的實驗,并在實際應用中得出如下結論:①剔除PNG地圖圖片冗余信息,在0 kB~30 kB以內的文件,可以減少約30%~80%的文件尺寸,大大提高服務器的網(wǎng)絡傳輸效率。②在服務器端和客戶端,借助于GZip網(wǎng)絡壓縮技術能在網(wǎng)絡傳輸前,動態(tài)地大幅度壓縮以字符串存儲的矢量數(shù)據(jù),可以提高網(wǎng)路傳輸?shù)男省?/p>
最后,本文需要指出的是,在當前的互聯(lián)網(wǎng)環(huán)境中,我們需要從服務器端和客戶端兩方面考慮如何提高數(shù)據(jù)傳輸效率,需要結合WebGIS實際應用中數(shù)據(jù)的特點,將并行運算、數(shù)據(jù)壓縮、網(wǎng)絡分布式技術等融入在一起,才能大大地改善用戶的體驗效果。
[1]李青元,劉曉東,曹代勇.WebGIS矢量空間數(shù)據(jù)壓縮方法探討[J].中國圖像圖形學報,2001,6(12):1225~1229.
[2]王凈,江剛武.無拓撲矢量數(shù)據(jù)快速壓縮算法的研究與實現(xiàn)[J].測繪學報,2003,32(2):173~177.
[3]朱欣焰.面向網(wǎng)絡的海量影像空間數(shù)據(jù)在線分發(fā)技術[J].武漢大學學報·信息科學版,2003,28(3):288~293.
[4]李羅文,單甘霖.地圖圖像數(shù)據(jù)壓縮的設計與實現(xiàn)[J].系統(tǒng)工程與電子技術,1997,(3):62~64.
[5]王剛.顧及要素特征的層次增量分塊矢量數(shù)據(jù)組織與高效網(wǎng)絡傳輸研究[D].武漢:武漢大學博士學位論文,2011.
[6]王平,朱雪梅.計算機互聯(lián)網(wǎng)絡中的數(shù)據(jù)壓縮技術應用[J].計算機工程.2002,28(12):153~154.
[7]宋剛,蔣孟奇,張云泉等.基于共享存儲和GZip的并行壓縮算法研究[J].計算機工程與設計.2009,4.