解永青,李紹山,李紹穩(wěn)
(1.安徽農業(yè)大學 信息與計算機學院,安徽 合肥 230036;2.安徽省國土資源廳 國土資源信息中心,安徽 合肥 230001)
地理信息系統(tǒng)(Geographic Information System)作為采集、存儲、管理、分析和描述整個或部分地球表面與空間和地理分布有關的數(shù)據(jù)的計算機空間系統(tǒng),在過去的幾十年里,已經融入了社會生活的各個方面。特別是隨著互聯(lián)網技術的發(fā)展普及,基于Internet的WEBGIS更是讓GIS進入千家萬戶,與空間數(shù)據(jù)的交互共享變的簡單。然而空間數(shù)據(jù)量大與網絡帶寬的不確定性卻使得GIS空間數(shù)據(jù)的可視化表達效率不理想。目前,對于WEBGIS中空間數(shù)據(jù)的表達主要有兩種方式,分別是基于柵格的空間數(shù)據(jù)表達方式和基于矢量的空間數(shù)據(jù)表達方式。本文對這兩種空間數(shù)據(jù)表達方式進行了闡述,通過實驗對這兩種表達方式進行對比,重點探討矢量表達方式的可行性,指出其存在的優(yōu)缺點,在此基礎上提出一種空間數(shù)據(jù)的柵格與矢量混合的自適應數(shù)據(jù)表達解決方案,來優(yōu)化空間信息的WEB數(shù)據(jù)表達。
柵格數(shù)據(jù)結構是以規(guī)則的陣列來表示空間地物或現(xiàn)象分布的數(shù)據(jù)組織。基于柵格的空間數(shù)據(jù)表達方式是目前各主流WEBGIS平臺通用的解決方案,它是一種瘦客戶端的解決方案,客戶端無需安裝任何額外的工具,只需要有能夠訪問WEB的瀏覽器,對于空間數(shù)據(jù)的操作完全由服務器端實現(xiàn),服務器端根據(jù)客戶的請求提取空間數(shù)據(jù)對其進行分析處理,最后利用渲染器將處理結果數(shù)據(jù)渲染成圖片數(shù)據(jù)流,以柵格圖片的形式展現(xiàn)給用戶。柵格表達在實際的應用中又分為兩種:瓦片式(Tile)和非瓦片式(non-Tile)。瓦片式是以所要請求的空間區(qū)域為基礎,將其劃分為若干等大小的小圖塊,稱這樣的小圖塊為瓦片,然后向服務器發(fā)送對各個瓦片的請求,服務器端對于每個瓦片請求都產生一張圖片。非瓦片式則不進行劃分,而是用戶請求多大的區(qū)域,服務器端就直接對該請求區(qū)域進行柵格渲染,最后只以一張圖片返回給客戶端。雖然多個瓦片使得服務器端需要處理的請求數(shù)增多,但是每個請求需要渲染的數(shù)據(jù)量卻變少了。同時對于客戶端地圖的漫游,瓦片方式每次只需對移動產生的新區(qū)域發(fā)送服務器端請求,而其他數(shù)據(jù)無需改變,這樣能大大降低服務器端請求次數(shù),減小服務器負擔。而對于非瓦片式而言,即使是很小的改動也要求服務器重新渲染整個區(qū)域。因此瓦片方式更適應WEBGIS應用要求。
矢量數(shù)據(jù)結構以記錄坐標的方式盡可能精確地表示點、線和多邊形地理實體,可以用結構化的文本描述現(xiàn)實世界的抽象?;谑噶康目臻g數(shù)據(jù)的表達方式可以大體分為2個階段,WEBGIS發(fā)展早期,GIS廠家利用ActiveX、Java Applet等技術手段提供基于瀏覽器的GIS插件,通過插件技術,客戶端與服務器之間利用矢量數(shù)據(jù)進行交互。然而它需要根據(jù)不同GIS平臺安裝不同的GIS插件,而且不同的GIS平臺有各自不同的矢量數(shù)據(jù)格式,這就阻礙了空間數(shù)據(jù)的共享交互。伴隨互聯(lián)網的高速發(fā)展,瀏覽器開始支持基于可擴展標記語言(eXtensible Markup Language,XML)的文本格式的矢量圖形數(shù)據(jù)描述,如萬維網聯(lián)盟(World Wide Web Consortium,W3C)制定的可縮放矢量圖形(Scalable Vector Graphics,SVG)格式,微軟和Macromedia等提出的矢量標記語言(Vector Markup Language,VML)。而作為下一代WEB標準的HTML5新增<canvas>元素直接支持矢量圖形繪制。這使得空間數(shù)據(jù)的矢量表達擺脫了對特定GIS平臺的依賴,因此,越來越多的人開始研究WEBGIS的矢量數(shù)據(jù)表達。
本文在同一個系統(tǒng)環(huán)境下對基于上述兩種空間數(shù)據(jù)的網絡表達方式在實際中的應用進行比較,主要比較在相同空間數(shù)據(jù)訪問量情況下,為產生相同的表達效果,這兩種方式服務器端為處理數(shù)據(jù)花費的時間以及生成數(shù)據(jù)大小,分析它們的適用性。本文使用的空間數(shù)據(jù)來自金土工程,搭建WEBGIS平臺涉及開源組件Openlayers。它是用于WEBGIS客戶端的Javascript包,負責客戶端顯示相關功能。
首先對地圖進行了瓦片劃分:
minX=map.getMapBound().getMinX();
maxX=map.getMapBound().getMaxX();
minY=map.getMapBound().getMinY();
maxY=map.getMapBound().getMaxY();
xNum=y(tǒng)Num=2(zoom-1);
tileWidth=map.getMapBound().getWidth()/xNum;
tileHeight=map.getMapBound().getHeight()/yNum;
Tile(z,i,j)=Tile(MapBound(tminX,tmaxX,tminY,tmaxY),ScreenBound(0,0,screenWidth,
screenHeight));
=Tile(MapBound((minX+i*tileWidth),(minX+i*tileWidth+tileWidth),(minY+j*tileHeight),
(minY+j*tileHeight+tileHeight)),Screen-Bound(0,0,screenWidth,screenHeight));
其中minX,maxX,minY,maxY表示地圖最小外包矩形的4個極值,xNum,yNum為相應縮放級別(zoom)上x,y方向分段數(shù),tileWidth,tileHeight表示每個瓦片的地圖寬度和高度,screenWidth,screenHeight表示映射到屏幕上顯示時的寬度和高度,Tile(z,i,j)表示縮放級別z的瓦片,對應于X方向上的i段,Y方向上的j段。對不同縮放級別的每個空間瓦片分別進行到柵格和矢量的轉化與輸出,記錄了從轉化開始到數(shù)據(jù)完全寫入輸出流的時間,即服務器端的處理時間和轉化生成的數(shù)據(jù)的大小。在柵格數(shù)據(jù)表示方式中,考慮了JPEG和PNG兩種主要的應用于WEBGIS的圖片格式,其中JPEG格式可以根據(jù)需要設置其數(shù)據(jù)壓縮比例,其壓縮比越大圖像質量就越差,在本文的實驗中,經過比較發(fā)現(xiàn)當設置圖像質量(quantity)為0.9時,能達到和PNG格式相同的顯示效果。以下是對實驗結果數(shù)據(jù)的比較分析,圖表中1號線描述頂點數(shù),2號線代表JPEG圖,3號線代表PNG圖,4號線代表SVG矢量。
從服務器處理時間對比圖中發(fā)現(xiàn),要達到相同的呈現(xiàn)效果,將空間數(shù)據(jù)渲染成JPEG圖片格式要比渲染成PNG格式所花費的時間少,主要是2種圖片格式的內部機制不同。對于矢量表達方式,當縮放(zoom)值小,單個瓦片頂點數(shù)相對較多,頂點信息總量大,如圖1和圖3所示,與其它2種表達方式相比,矢量轉化時間上沒有明顯的優(yōu)勢,再比較它們的數(shù)據(jù)量,如圖2和圖4所示,可以看出JPEG和PNG渲染之間相差不多,而矢量表達的數(shù)據(jù)量卻遠高于柵格方式幾倍,且其趨勢線與頂點數(shù)線呈現(xiàn)相同的波動。分析其原因,是因為矢量表達文本中的主要信息用來描述空間幾何,而空間中的面由線組成,線由點組成,所以它們的基本單位是點,可以說空間數(shù)據(jù)頂點數(shù)以及代表單個頂點的坐標數(shù)值長度決定著矢量文本的數(shù)據(jù)量,因此,空間頂點信息總量影響轉化結果數(shù)據(jù)量。在頂點信息總量大到一定范圍時,矢量方式在轉化時間上沒有明顯的優(yōu)勢,在轉化結果數(shù)據(jù)量上又明顯處于劣勢,表明了矢量表達方式在普適性上不如柵格表達方式。但是隨著空間信息點減少,信息點的數(shù)據(jù)量在一定范圍內時,如圖5、圖6、圖7和圖8所示,發(fā)現(xiàn)矢量表達方式的服務器處理時間開銷變小,數(shù)據(jù)量也降低,如zoom等于6時,矢量方式已經明顯優(yōu)于柵格方式。根據(jù)縮放級別不同,對3種表達方式的生成時間和數(shù)據(jù)量進行統(tǒng)計,如表1和表2所示,可以看出,頂點總信息量對柵格圖片和矢量文本表達方式在時間和數(shù)據(jù)量上都有影響。而數(shù)據(jù)結果也表明,矢量文本方式無論在時間上還是在數(shù)據(jù)量上都是隨頂點信息量浮動最大的,這又一次說明了其在普適性上不如柵格方式。
表2 平均生成數(shù)據(jù)量對比 /kb
圖1 服務器處理時間對比(zoom=2)
通過以上實驗的驗證分析,可以看出矢量轉化效率對于不同數(shù)據(jù)量的空間數(shù)據(jù)表現(xiàn)的波動很大,可以說在普適性方面矢量數(shù)據(jù)表達比柵格渲染差,因此,如果實際應用中單個瓦片的空間數(shù)據(jù)量大,那么矢量數(shù)據(jù)表達就將成為制約系統(tǒng)效率的瓶頸。然而實驗分析數(shù)據(jù)表明,當空間數(shù)據(jù)量在一定范圍內時,矢量轉化又優(yōu)于柵格渲染,那么完全可以將二者結合起來,取長補短,于是本文提出柵格和矢量自適應混合數(shù)據(jù)表達模式,并基于此模式設計實現(xiàn)了基礎框架。圖9為此框架算法處理流程。
圖9 柵格/矢量算法處理流程
由于每個系統(tǒng)中空間數(shù)據(jù)使用的坐標系統(tǒng)不盡相同,坐標點的數(shù)據(jù)長度不同,區(qū)域頂點數(shù)不同,所以不同系統(tǒng)可根據(jù)自身情況預先進行分析選取合適的限值,在本文所述系統(tǒng)中經過分析得出頂點數(shù)在700以內時啟用矢量數(shù)據(jù)表達在總體上要優(yōu)于柵格表達,如圖10所示即為柵格/矢量自適應混合數(shù)據(jù)表達的結果,其中深色區(qū)域為矢量表達部分,淺色為PNG柵格表達部分,實驗表明混合模式確如上述實驗分析所示,能夠提高空間數(shù)據(jù)表達效率,同時在普適性上表現(xiàn)的更好。
圖10 柵格/矢量自適應表達
本文對GIS空間數(shù)據(jù)的幾種表達方式進行了探討,重點探討矢量數(shù)據(jù)表達方式的可行性,通過將它與柵格表達方式進行對比,分析得出其在實際應用中普適性上的不足,然而在空間數(shù)據(jù)滿足一定限度時,矢量數(shù)據(jù)模式卻要優(yōu)于柵格模式。在此基礎上,本文提出柵格/矢量自適應混合數(shù)據(jù)表達方式,設計實現(xiàn)了柵格矢量混合數(shù)據(jù)表達基礎框架,實驗表明該方法對于提高GIS系統(tǒng)的數(shù)據(jù)表達有很好的效果。
[1]張旭.基于SVG的空間數(shù)據(jù)組織及Web表現(xiàn)的研究[J].計算機應用研究.2003,21(6):130-134.
[2]盧文龍,王英杰,閻東生.用SVG技術實現(xiàn)基于GML的WebGIS研究[J].中國圖像圖形學報.2007,12(3):546-551.
[3]錢瑞偉,孔婷,李俊,等.基于SVG的實時Web GIS技術研究[J].計算機科學,2007,34(11):86-88.
[4]徐云和,謝剛生,程朋根,等.基于SVG的空間數(shù)據(jù)的可視化[J].計算機應用研究,2005,22(2):46-48.
[5]初霞,王宏,龔春葉.基于WebGIS網絡拓撲可視化的研究與實現(xiàn)[J].計算機研究與發(fā)展,2009,46(z1):386-390.
[6]黃祥志,劉南,劉仁義,等.適用于可編輯WebGIS的動態(tài)緩存策略[J].計算機工程,2011,37(5):285-287.
[7]宋志浩,許端清.基于AJAX與ArcIMS的WebGIS研究[J].計算機應用與軟件,2010,27(11):56-59.
[8]焦圣明,包云軒,郭靜,等.基于RIA氣象站信息平臺的設計與實現(xiàn)[J].計算機工程,2010,36(20):217-219.
[9]http://www.svgopen.org/2004/papers/VisualizingEditingGISdatawithSVG/