摘 要:該文基于筆者多年從事數(shù)字地球和地理系統(tǒng)開發(fā)的相關(guān)工作經(jīng)驗(yàn),以面向移動(dòng)終端的GIS服務(wù)系統(tǒng)設(shè)計(jì)為研究對(duì)象,設(shè)計(jì)實(shí)現(xiàn)了一套移動(dòng)三維地理空間信息服務(wù)系統(tǒng),該系統(tǒng)由服務(wù)器和客戶端組成,服務(wù)器端主要實(shí)現(xiàn)三維GIS數(shù)據(jù)的存儲(chǔ),客戶端采用windows mobile為操作系統(tǒng),移動(dòng)三維空間信息服務(wù)瀏覽器運(yùn)行于windows mobile上面,系統(tǒng)在設(shè)計(jì)過(guò)程中,針對(duì)移動(dòng)終端系統(tǒng)硬件能力的限制,實(shí)現(xiàn)了三維場(chǎng)景引擎,能快速,直觀的實(shí)現(xiàn)三維場(chǎng)景重現(xiàn),數(shù)據(jù)量小,實(shí)時(shí)性強(qiáng),精度較高,并且支持三維GIS的各種交互手段以及全景數(shù)據(jù)瀏覽等功能。
關(guān)鍵詞:地理空間 信息服務(wù) 三維空間
中圖分類號(hào):TP3文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1674-098X(2013)04(c)-0002-02
隨著移動(dòng)產(chǎn)品普及,PDA、Pocket PC逐漸進(jìn)入了主流產(chǎn)品,各方面性能有了較大的提升,因此人們對(duì)基于移動(dòng)設(shè)備的應(yīng)用軟件的性能與功能也有了較高的要求,而現(xiàn)階段的軟件存在以下問(wèn)題:(1)數(shù)據(jù)更新周期需要較長(zhǎng)的時(shí)間特別是矢量數(shù)據(jù)和三維數(shù)據(jù),尤其對(duì)于中小城市、更新周期更長(zhǎng)。(2)直觀性差;沒(méi)有遙感數(shù)據(jù)參照,更沒(méi)有與實(shí)地相一致的三維地形和建筑特征。(3)國(guó)外軟件所控制;核心技術(shù)來(lái)自國(guó)外,存在著國(guó)家安全及信息安全的隱患。
1 國(guó)內(nèi)外現(xiàn)狀以及發(fā)展趨勢(shì)
國(guó)內(nèi)GIS公司在此方面的移動(dòng)業(yè)務(wù)主要以二維矢量數(shù)據(jù)為主,少有實(shí)景影像、三維模型信息,缺乏地形特征,應(yīng)用面較窄。市場(chǎng)上少見到基于三維數(shù)據(jù)地理服務(wù)的相關(guān)移動(dòng)產(chǎn)品,獨(dú)立開發(fā)的平臺(tái)更少,研發(fā)的投入與產(chǎn)品的開發(fā)力度和高度都不夠。
GOOGLE利用自身現(xiàn)有的海量影像數(shù)據(jù),以及數(shù)據(jù)管理平臺(tái)的優(yōu)勢(shì),正大力推出相應(yīng)的軟件產(chǎn)品。Blue Point Studio公司開發(fā)了Pocket Earth軟件。日本、韓國(guó)、以色列等國(guó),在三維導(dǎo)航、導(dǎo)游服務(wù)方面,已經(jīng)有相關(guān)的產(chǎn)品出現(xiàn)。但這些國(guó)外產(chǎn)品只可進(jìn)行有限的應(yīng)用拓展,不能滿足國(guó)內(nèi)用戶應(yīng)用的個(gè)性需求,效果也不夠理想。
隨著基于下一代互聯(lián)網(wǎng)絡(luò)IPV6網(wǎng)絡(luò)平臺(tái)與3G移動(dòng)系統(tǒng)的推出,實(shí)現(xiàn)實(shí)時(shí)動(dòng)態(tài)傳輸?shù)娜S搜索查詢、漫游以及面向公眾的移動(dòng)三維地理空間信息服務(wù)將是一大趨勢(shì),同時(shí)與網(wǎng)絡(luò)運(yùn)營(yíng)商聯(lián)合,基于該系統(tǒng)可在網(wǎng)絡(luò)平臺(tái)、數(shù)字電視、3G手機(jī)等領(lǐng)域?qū)崿F(xiàn)跨平臺(tái)的應(yīng)用并帶動(dòng)相關(guān)產(chǎn)業(yè)的形成。
2 研究?jī)?nèi)容
2.1 海量數(shù)據(jù)調(diào)度管理
采用金字塔結(jié)構(gòu)來(lái)組織數(shù)字地形和影像數(shù)據(jù)實(shí)現(xiàn)海量數(shù)據(jù)在移動(dòng)設(shè)備上有限資源的動(dòng)態(tài)調(diào)入。按照金字塔結(jié)構(gòu)來(lái)處理后的數(shù)據(jù)形成一個(gè)多分辨率的層次結(jié)構(gòu),并采四叉樹來(lái)索引這個(gè)結(jié)構(gòu)中的不同層次中的塊(Tile),從塔頂至塔底分辨率由低到高變化,相應(yīng)的分塊數(shù)則由少到多,主要包括數(shù)據(jù)分塊、合并、光滑等一系列處理過(guò)程。
2.2 空間基礎(chǔ)數(shù)據(jù)信息數(shù)字技術(shù)標(biāo)準(zhǔn)規(guī)范的統(tǒng)一
由于數(shù)字移動(dòng)三維空間信息涉及到基礎(chǔ)地理空間數(shù)據(jù),專業(yè)空間數(shù)據(jù)和影像數(shù)據(jù)以及相關(guān)的屬性數(shù)據(jù),另外還有專業(yè)數(shù)據(jù)的內(nèi)容,面對(duì)如此巨大的數(shù)據(jù)量,數(shù)據(jù)的組織和管理是關(guān)鍵問(wèn)題,而技術(shù)標(biāo)準(zhǔn)規(guī)范是進(jìn)行數(shù)據(jù)組織管理的基礎(chǔ)。
2.3 數(shù)字移動(dòng)設(shè)備系統(tǒng)的可視化
采用COM接口利用DirectMobile3D API建立主要面向三維空間場(chǎng)景描述。其一種快速有效的建模工具,同時(shí)又給虛擬系統(tǒng)的各個(gè)不同應(yīng)用之間提供了一種信息交換標(biāo)準(zhǔn)。針對(duì)數(shù)字移動(dòng)系統(tǒng)涉及的對(duì)象,除了具有三維空間信息以外,還具有時(shí)間和多重屬性等信息。需要考慮定義新的對(duì)象層次結(jié)構(gòu)和適合于地理信息對(duì)象造型的方法。
2.4 面向應(yīng)用層的數(shù)據(jù)管理
以GIS數(shù)據(jù)、三維模型數(shù)據(jù)為一體的數(shù)據(jù)庫(kù)為數(shù)據(jù)后臺(tái)支持的三維空間信息管理系統(tǒng)。根據(jù)地理分區(qū)、邏輯分層的原則,利用網(wǎng)格技術(shù),根據(jù)數(shù)據(jù)之間的關(guān)聯(lián)進(jìn)行組合及分層管理,實(shí)現(xiàn)各種信息的一體化管理,并實(shí)現(xiàn)各類空間數(shù)據(jù)的三維數(shù)據(jù)管理。
2.5 面向移動(dòng)的可視化
數(shù)字移動(dòng)三維的可視化建模理論涉及到多方面的可視化建模理論和信息可視化技術(shù)。
3 系統(tǒng)實(shí)現(xiàn)
3.1 系統(tǒng)總體設(shè)計(jì)
整個(gè)移動(dòng)三維地理空間信息服務(wù)系統(tǒng)由手持設(shè)備,數(shù)據(jù)服務(wù)器,地理信息基礎(chǔ)數(shù)據(jù)庫(kù),三維模型數(shù)據(jù)庫(kù)組成,其中移動(dòng)終端設(shè)備自帶或者接有GPS接收機(jī),移動(dòng)終端設(shè)備通過(guò)GPS獲得當(dāng)前位置的位置信息,并將位置信息發(fā)送到數(shù)據(jù)服務(wù)器。數(shù)據(jù)服務(wù)器根據(jù)收到的信息,查詢相應(yīng)的三維地理信息數(shù)據(jù)并實(shí)時(shí)返回給用戶。
整個(gè)平臺(tái)采用三層軟件機(jī)構(gòu)模型,如圖1。
業(yè)務(wù)層為移動(dòng)終端設(shè)備,提供用戶交互接口,數(shù)據(jù)層為由影像數(shù)據(jù)庫(kù),地形數(shù)據(jù)庫(kù),三維模型數(shù)據(jù)庫(kù)組成的三維GIS數(shù)據(jù)庫(kù),中間層為數(shù)據(jù)服務(wù)器,負(fù)責(zé)業(yè)務(wù)層和移動(dòng)終端之間的通訊,同時(shí)進(jìn)行安全驗(yàn)證等操作。
軟件模型采用中間件技術(shù)機(jī)型網(wǎng)絡(luò)通訊,用戶數(shù)據(jù)請(qǐng)求被發(fā)送到中間件上,中間件使用對(duì)象傳輸協(xié)議,將請(qǐng)求傳輸給數(shù)據(jù)服務(wù)器,數(shù)據(jù)服務(wù)器執(zhí)行相應(yīng)查詢,并將查詢結(jié)果數(shù)據(jù)集進(jìn)行編碼,在通過(guò)中間件返回給移動(dòng)三維地理空間信息瀏覽器,瀏覽器解碼該三維GIS數(shù)據(jù),通過(guò)三維引擎進(jìn)行數(shù)據(jù)的調(diào)度和快速渲染和瀏覽,將三維圖像呈現(xiàn)給移動(dòng)終端用戶,如何解決讓有限的硬件資源的移動(dòng)終端快速、流暢的進(jìn)行三維展示,是整個(gè)設(shè)計(jì)方案可用性的關(guān)鍵所在,也就是說(shuō)三維場(chǎng)景引擎在有限的硬件資源下實(shí)現(xiàn)三維場(chǎng)景渲染的效果,左右著該移動(dòng)三維地理空間信息服務(wù)系統(tǒng)的用戶體驗(yàn)感受和可用性。
從該系統(tǒng)的軟件結(jié)構(gòu)模型中我們可以看到該系統(tǒng)包括4個(gè)主要部分:場(chǎng)景數(shù)據(jù)庫(kù)、對(duì)象建模、場(chǎng)景引擎、交互模型。
場(chǎng)景數(shù)據(jù)庫(kù):場(chǎng)景數(shù)據(jù)庫(kù)管理三維場(chǎng)景中的所有實(shí)體數(shù)據(jù)和關(guān)系數(shù)據(jù)。系統(tǒng)涉及大量模型數(shù)據(jù)、影像數(shù)據(jù)、地形數(shù)據(jù),場(chǎng)景數(shù)據(jù)庫(kù)必須負(fù)責(zé)數(shù)據(jù)的簡(jiǎn)化、壓縮和結(jié)構(gòu)存儲(chǔ),同時(shí)負(fù)責(zé)數(shù)據(jù)查詢、提取和信息恢復(fù)等任務(wù)。
對(duì)象建模:虛擬可視化系統(tǒng)中各種不同實(shí)體和關(guān)系非常復(fù)雜,對(duì)象建模將有效地簡(jiǎn)化系統(tǒng)的設(shè)計(jì)。
場(chǎng)景引擎:場(chǎng)景引擎負(fù)責(zé)虛擬系統(tǒng)的繪制和事件以及消息機(jī)制的實(shí)現(xiàn)。也是可視化系統(tǒng)的關(guān)鍵,如何解決場(chǎng)景的復(fù)雜度和移動(dòng)設(shè)備圖形和性能不足之間的矛盾,是場(chǎng)景引擎研究的主要問(wèn)題?;贒irect3D MOBILE的三維場(chǎng)景引擎的渲染。
3.2 系統(tǒng)實(shí)現(xiàn)
創(chuàng)建D3DM對(duì)象和設(shè)備
(1)D3DMPRESENT_PARAMETERS結(jié)構(gòu)體
這個(gè)結(jié)構(gòu)用于設(shè)定將要?jiǎng)?chuàng)建的D3D設(shè)備對(duì)象的一些特性,主要包括后備緩沖表面的寬度,高度,象素格式,后備緩沖表面的數(shù)量,通常只有一個(gè),全屏抗鋸齒的類型,指定表面在交換鏈中是如何被交換的,窗口模式,D3D是否自動(dòng)創(chuàng)建深度、模板緩沖,深度/模板緩沖的格式,屏幕刷新率等。
(2)創(chuàng)建設(shè)備
創(chuàng)建相關(guān)設(shè)備并且設(shè)置設(shè)備的相關(guān)屬性,包括指定對(duì)象要表示的物理顯示設(shè)備,設(shè)備的類型,與設(shè)備相關(guān)的窗口句柄,指定一個(gè)已經(jīng)初始化好D3DPRESENT_PARAMETERS結(jié)構(gòu)體等。
(3)設(shè)置渲染狀態(tài)
利用D3D設(shè)置場(chǎng)景引擎的多種渲染狀態(tài),它影響幾何物體怎么樣被渲染。渲染狀態(tài)有默認(rèn)值,主要包括裁剪開關(guān)、光照開關(guān)、Z緩沖開關(guān)等。
創(chuàng)建要渲染的場(chǎng)景對(duì)象
(1)頂點(diǎn)緩沖的創(chuàng)建
頂點(diǎn)類似于數(shù)學(xué)上點(diǎn)的結(jié)構(gòu),但DirectX的頂點(diǎn)包含了許多附加的屬性,如位置、顏色、法線向量、紋理坐標(biāo)。一個(gè)頂點(diǎn)緩沖區(qū)是一塊連續(xù)存儲(chǔ)了的頂點(diǎn)數(shù)據(jù)的內(nèi)存。
(2)索引緩沖的創(chuàng)建及索引數(shù)組的計(jì)算
為了表現(xiàn)復(fù)雜模型的時(shí)候,減少重復(fù)的頂點(diǎn)數(shù),系統(tǒng)創(chuàng)建頂點(diǎn)列表和索引列表(index list),其中頂點(diǎn)列表包含所有不重復(fù)的頂點(diǎn),索引列表中則用頂點(diǎn)列表中定義的值來(lái)表示每一個(gè)三角形的構(gòu)造方式。
(3)紋理的創(chuàng)建
對(duì)于紋理的創(chuàng)建,首先要?jiǎng)?chuàng)建紋理表面,他包括該紋理圖面的寬度、高度以及指向的指針等,再?gòu)膬?nèi)存中讀取數(shù)據(jù)到紋理表面。
(4)渲染過(guò)程
一旦創(chuàng)建好頂點(diǎn)緩沖區(qū)和索引緩沖區(qū)及計(jì)算好索引后并且各紋理光照等條件都已經(jīng)到位,則接下來(lái)就可以進(jìn)行渲染,主要包括設(shè)置資源流、設(shè)置索引緩沖區(qū)、繪制三方面的工作。
3.3 三維數(shù)據(jù)快速瀏覽的實(shí)現(xiàn)
(1)三維數(shù)據(jù)加載優(yōu)化
由于移動(dòng)終端資源有限,對(duì)大塊三維數(shù)據(jù)的操作需要較長(zhǎng)時(shí)間。因此我們將三維數(shù)據(jù)通過(guò)另一種壓縮算法先分好塊再存儲(chǔ)起來(lái),這樣可以避免頻繁操作大塊三維數(shù)據(jù)的情況,給瀏覽器的其他處理留下了充分的時(shí)間。
(2)三維數(shù)據(jù)存儲(chǔ)優(yōu)化
三維數(shù)據(jù)通過(guò)壓縮算法進(jìn)行壓縮后壓縮比達(dá)到5∶1,大大的縮小了需要占用的存儲(chǔ)空間,極大減少了移動(dòng)終端的資源占用。又因?yàn)樵趬嚎s時(shí)采用了分塊存儲(chǔ)并建立了索引的方法,加速了讀取速度,很大程度上提高了讀取的效率。
(3)基于LOD的三維數(shù)據(jù)的生成
在實(shí)際開發(fā)中注意相鄰復(fù)雜度模型中低復(fù)雜度模型的多邊形數(shù)目是高復(fù)雜度模型多邊形數(shù)目的75%。采用LOD技術(shù)不但可以增強(qiáng)場(chǎng)景的逼真度,也可以減少場(chǎng)景繪制的多邊形的數(shù)量,既提高了可視性又節(jié)約了系統(tǒng)資源。
(4)三維數(shù)據(jù)拼接縫消除
使用LOD技術(shù)時(shí)在不同精度的層之間的連接就會(huì)導(dǎo)致拼接處有明顯的縫隙,給人明顯的不連續(xù)的感覺,會(huì)大大降低場(chǎng)景的真實(shí)性,因此我們?cè)诓煌葘拥钠唇犹幉捎媒㈨旤c(diǎn)索引并對(duì)這種塊進(jìn)行重新分配空間及調(diào)整三角面列表的生成序列的方法來(lái)解決。
4 結(jié)語(yǔ)
本系統(tǒng)針對(duì)移動(dòng)終端在計(jì)算能力和三維圖形處理方面存在的局限性,采用三維多細(xì)節(jié)層次LOD建模方式,同時(shí)對(duì)該建模方式進(jìn)行了改進(jìn)和優(yōu)化,消除了不同精度的三維數(shù)據(jù)拼接縫的問(wèn)題,對(duì)基于D3D MOBILE的三維場(chǎng)景引擎進(jìn)行了優(yōu)化設(shè)計(jì)和研究開發(fā),綜合使用中間件技術(shù)、壓縮技術(shù)、渲染技術(shù)等優(yōu)化了移動(dòng)終端的三維虛擬場(chǎng)景。
參考文獻(xiàn)
[1]陳飛翔,楊崇俊.基于LBS的移動(dòng)GIS研究[J].計(jì)算機(jī)工程與應(yīng)用,2006(2):200-201.
[2]高山.虛擬城市的三維建模[J].測(cè)繪通報(bào),2004(6):4647.