劉小飛,于海波,關(guān) 昆
(1.天津市測繪院,天津 300381)
海量空間數(shù)據(jù)環(huán)境下RIA GIS的幾種優(yōu)化方法
劉小飛1,于海波1,關(guān) 昆1
(1.天津市測繪院,天津 300381)
如何在RIA GIS中高效流暢地顯示海量空間數(shù)據(jù),一直是地理信息系統(tǒng)的研究熱點。從算法、表現(xiàn)形式等方面給出了在RIA GIS中加載海量數(shù)據(jù)的幾種優(yōu)化方法。研究得出,幾種優(yōu)化方法可以不同程度地滿足地理信息工程對海量空間數(shù)據(jù)的應(yīng)用需求。
海量空間數(shù)據(jù);富客戶端;空間數(shù)據(jù)庫;瓦片地圖
1.1 海量地理空間數(shù)據(jù)
隨著GIS在各行業(yè)應(yīng)用領(lǐng)域的不斷擴展,整個空間數(shù)據(jù)量在不斷增加,在項目中所要面臨的數(shù)據(jù)量也越來越大。目前這些空間數(shù)據(jù)已經(jīng)達到GB、TB乃至PB數(shù)量級以上。海量空間數(shù)據(jù)除了具有一般的數(shù)據(jù)特征之外,還具有一些區(qū)別于其他數(shù)據(jù)的特征:①多數(shù)據(jù)源,數(shù)據(jù)格式、數(shù)據(jù)模型多樣化;②數(shù)據(jù)量大、結(jié)構(gòu)復(fù)雜、關(guān)系多樣化;③多尺度,具有不同的比例尺和不同的數(shù)據(jù)精度,從不同的詳細程度反映同一區(qū)域要素的空間信息;④多時空性,海量數(shù)據(jù)包含了不同時空和不同尺度數(shù)據(jù)源的集成;⑤具有復(fù)雜的查詢和顯示過程。
1.2 海量數(shù)據(jù)的多尺度特征
多尺度的空間數(shù)據(jù)與傳統(tǒng)的單一比例尺數(shù)據(jù)內(nèi)容和數(shù)據(jù)模型不同,需要挖掘出各要素不同比例尺的尺度關(guān)系,協(xié)調(diào)多比例尺表達之間的不一致性,能夠反應(yīng)其層次關(guān)系。因此,需要對多尺度數(shù)據(jù)的顯示加以自適應(yīng)控制,根據(jù)用戶的需求和數(shù)據(jù)特征首先顯示優(yōu)先級較高的數(shù)據(jù),然后顯示優(yōu)先級較低的數(shù)據(jù)。
多尺度海量數(shù)據(jù)的管理需要注意數(shù)據(jù)的存儲機制、數(shù)據(jù)的分級顯示方案、不同比例尺的數(shù)據(jù)分類標(biāo)準(zhǔn)。
1.3 RIA GIS中的海量數(shù)據(jù)顯示
RIA GIS應(yīng)用中,海量數(shù)據(jù)的管理、顯示、瀏覽等,可采用多種表現(xiàn)手法,并且融合RIA中特有的數(shù)據(jù)特效表現(xiàn)形式,實現(xiàn)海量數(shù)據(jù)的加載。其中,主要包含2 類數(shù)據(jù):①矢量數(shù)據(jù),指基本的點、線、面地理元素。②柵格數(shù)據(jù),主要用作RIA GIS中的切片地理底圖的表現(xiàn)。
基于上述2類數(shù)據(jù),在RIA GIS中可以提供2 類展示海量數(shù)據(jù)的主要方法: ①可以在RIA(Flex、Silverlight等)對矢量數(shù)據(jù)的點、線、面直接繪制,該方法較為簡單直接,但對于海量的空間元素,HTML端將因為數(shù)據(jù)的負載量過大而導(dǎo)致瀏覽速度受到嚴重影響。②可以將海量的空間信息在底圖上符號化處理后,制作地圖瓦片進行瀏覽,該方法可以提高海量數(shù)據(jù)的瀏覽效率,但由于地圖瓦片屬于柵格數(shù)據(jù),無法進行數(shù)據(jù)信息的提取和查詢,因此在實際的應(yīng)用中,還需根據(jù)不同的項目需求來采用不同的海量空間數(shù)據(jù)加載方案。
在一般情況下,受平臺性能的限制,RIA GIS在視圖范圍內(nèi)一次性能承受的點位數(shù)量應(yīng)小于5 000個。因此,對于海量的空間數(shù)據(jù)在RIA GIS中的顯示,需要其他的優(yōu)化方法來實現(xiàn)。
2.1 空間數(shù)據(jù)庫算法優(yōu)化
1)分頁查詢。根據(jù)需要,每次只返回所需要的數(shù)據(jù),無需實時提取所有的數(shù)據(jù),這樣可以降低客戶端與數(shù)據(jù)庫之間的信息傳送量,使海量空間數(shù)據(jù)規(guī)模得以分解。如常見的地圖門戶網(wǎng)站中,模糊查詢某個名稱的興趣點,每次只需返回和加載10條記錄。SQL語法如下:
select top 10 * from TableName order by ID asc;
決定返回的查詢結(jié)果集的參數(shù)有2個:當(dāng)前顯示的頁數(shù)pageIndex和每頁顯示的記錄條數(shù)size。對于第n頁的選擇方法,僅需將第n-1頁之前的數(shù)據(jù)內(nèi)容排除后,再執(zhí)行一次Select top size即可:
Select top size * from TableName where ID not in(select top (n-1)*size ID from TableName order by ID asc) order by ID asc;
2)按需查詢。在瀏覽海量空間數(shù)據(jù)的過程中,通常采用實時讀取空間記錄并傳到前臺客戶端的方法。按需查詢可以降低數(shù)據(jù)量,實現(xiàn)負載平衡,從而提升大數(shù)據(jù)量的顯示性能。針對RIA GIS的數(shù)據(jù)瀏覽特點,在進行地圖平移、縮放的過程中,采用屏幕裁剪的方式,僅在地圖級別大于某個閾值時,向后臺請求當(dāng)前屏幕范圍內(nèi)的空間數(shù)據(jù)。在客戶端方面,僅繪制和顯示當(dāng)前圖層可視范圍內(nèi)的數(shù)據(jù),動態(tài)清除不在可視范圍內(nèi)的數(shù)據(jù)。其原理如圖1所示。
圖1 空間數(shù)據(jù)按需查詢
地圖進行漫游操作時,僅需更新當(dāng)前可視范圍內(nèi)的數(shù)據(jù),這樣就可以節(jié)省重繪時間,降低客戶端的負載量。在空間數(shù)據(jù)庫的查詢語句中,在查詢條件中增加空間條件:
Select * from TableName where GeometryColumn in (MapExtent)
2.2 空間信息的RIA多尺度表示
空間要素存在多尺度特征,不同的地圖顯示級別對于不同的數(shù)據(jù)類型來說,其顯示需求是不同的。例如,在小比例尺地圖上,僅需顯示等級高的空間要素,在大比例尺地圖上,需要顯示等級低的詳細空間要素。因此,在RIA地圖中,可根據(jù)海量數(shù)據(jù)的多尺度特征,采用分級加載的顯示方式逐級顯示數(shù)據(jù),縮短瀏覽大數(shù)據(jù)量的等待時間,提升RIA的用戶體驗。矢量數(shù)據(jù)的分級及加載步驟如下:
1)根據(jù)數(shù)據(jù)情況建立分級字段,存儲每條記錄在地圖上的顯示級別(1-n)。
2)在地圖瀏覽的過程中,查詢分級字段所對應(yīng)地圖級別的記錄。
3)在地圖上實時繪制所查詢的記錄結(jié)果。
空間信息的多尺度加載的關(guān)鍵在于對數(shù)據(jù)進行預(yù)處理,它根據(jù)記錄的重要程度等情況,預(yù)先定義每條記錄所顯示的地圖級別。該方法適用于大數(shù)據(jù)量的空間信息數(shù)據(jù)加載,較之一次性全部加載,該方法可以縮短等待時間。
2.3 瓦片地圖的顯示模式
對于空間數(shù)據(jù)量過大、在客戶端的表現(xiàn)要求過高的情況,還可以采取瓦片地圖的顯示方法來滿足系統(tǒng)的要求。將矢量地圖經(jīng)過制圖綜合、符號化處理后,采用金字塔模型建立地圖切片,并將切片地圖發(fā)布為地圖服務(wù),通過地圖瓦片的加載和瀏覽來滿足部分用戶對海量空間數(shù)據(jù)進行瀏覽的需求。通過將所需展示的數(shù)據(jù)在服務(wù)器端發(fā)布為地圖服務(wù),在客戶端調(diào)用地圖服務(wù)的圖片來加載,基本上不需承擔(dān)過多的壓力。對于查詢方面的需求,可以另行調(diào)用數(shù)據(jù)查詢服務(wù)來達到目的。
金字塔模型是一種多分辨率層次模型,把地圖比例尺最大的地圖圖片作為金字塔的底層,并從左至右、從上到下按每2×2像素合成為一個像素的方法生成第n層地圖圖片和瓦片矩陣,形成比例尺由小到大或由大到小、數(shù)據(jù)量由小到大的金字塔型結(jié)構(gòu)。根據(jù)請求動態(tài)檢索相應(yīng)的圖塊拼接后發(fā)送給客戶端,所以瓦片地圖技術(shù)在地圖瀏覽顯示方面具有速度快的優(yōu)勢。
2.4 RIA的優(yōu)化方法
除上述幾種優(yōu)化方法外,還可以針對所傳來的矢量數(shù)據(jù),在RIA端加載的過程中進行優(yōu)化。
1)符號聚合。利用符號聚合效果來處理大量的Graphic顯示,這在當(dāng)前的Flex、Silverlight電子地圖中較為常見。它是將一定范圍內(nèi)的要素聚合顯示至一個點,被聚合的要素可以是地理上具有相關(guān)性或者屬性上具有統(tǒng)一性的要素。聚合顯示的主要特色在于它既可以從全局的角度表達被聚合要素的共性又可以簡化要素布局。符號聚合適用于海量要素的統(tǒng)一顯示和分布,其聚合方式包含中心聚合、權(quán)重聚合、區(qū)域聚合等。圖2為符號聚合的展示效果。
圖2 符號聚合顯示效果
2) 圖片符號的單一加載。在RIA GIS的客戶端,對于點狀符號通常是以png圖標(biāo)的方式顯示,在生成時往往需要新建一個Bitmap對象,大量重復(fù)的新建在海量數(shù)據(jù)的加載過程中會給客戶端帶來沉重的負擔(dān)。因此,在客戶端對點狀符號的加載具有統(tǒng)一的要求時,可以采用圖片符號的單一加載方式,單獨建立一個Bitmap對象,讓每個點位在加載過程中指向統(tǒng)一的圖標(biāo)符號,便可避免大量重復(fù)工作,緩解客戶端的壓力。
通過分析在RIA GIS中海量空間數(shù)據(jù)的顯示特征,給出了幾種應(yīng)用于實際地理信息工程中的RIA GIS優(yōu)化方法。實踐證明,這幾種優(yōu)化方法的組合應(yīng)用,將較大程度地減輕GIS的負擔(dān),為用戶帶來更良好的體驗。
[1] 朱慶,周艷. 分布式空間數(shù)據(jù)存儲對象[J].武漢大學(xué)學(xué)報:信息科學(xué)版, 2006(5):391-394
[2] 汪榮峰,張志威,廖學(xué)軍. 一種面向?qū)崟r顯示的海量空間數(shù)據(jù)存取技術(shù)[J].裝備指揮技術(shù)學(xué)院學(xué)報, 2008(5):81-84
[3] 朱江,張立立,宋關(guān)福,等. Internet GIS海量空間數(shù)據(jù)發(fā)布的關(guān)鍵技術(shù)[J].高技術(shù)通訊, 2006(3):286-289
[4] 孫豐壘,王歡,李連昌. 基于RIA的WebGIS系統(tǒng)設(shè)計與實現(xiàn)[J].測繪,2012(6):255-259
[5] 姜銳,劉璐. RIA技術(shù)在WebGIS中的應(yīng)用研究[J].測繪與空間地理信息,2012,35(9):106-108
[6] 張康壽,馮兵,孫燕剛,等.基于RIA和Web Services的WebGIS系統(tǒng)的開發(fā)[J].地理空間信息,2009,7(2):109-111
[7] 鄧世軍,孟令奎,吳沉寒,等.基于SOAP的海量空間數(shù)據(jù)服務(wù)[J].地理空間信息,2005,3(5):31-34
P208
B
1672-4623(2015)04-0044-02
10.3969/j.issn.1672-4623.2015.04.016
劉小飛,碩士,工程師,研究方向為地理信息系統(tǒng)開發(fā)與應(yīng)用。
2014-03-07。
項目來源:2010年度天津市規(guī)劃局科技資助項目(2010-KJA-13)。