王衛(wèi)紅 陳建華
1 成都理工大學(xué)地球科學(xué)學(xué)院 四川 610059
2 成都理工大學(xué)地球物理學(xué)院 四川 610059
數(shù)字地球戰(zhàn)略思想提出后,迅速在國內(nèi)外引起強烈反響并引發(fā)了世界范圍內(nèi)的研究熱潮。數(shù)字中國、數(shù)字省份、數(shù)字城市、數(shù)字海洋、數(shù)字流域、數(shù)字礦山、數(shù)字奧運等分支領(lǐng)域紛紛提出,并積極開展了各種研究與實踐。數(shù)字中國研究院2004年2月在北京大學(xué)設(shè)立,國際數(shù)字地球?qū)W會2006年5月在北京成立,標志著數(shù)字地球浩大工程的研究步入了全球化、組織化、深入化的新時期。
以Google Earth為代表的各種數(shù)字地球系統(tǒng),是“數(shù)字地球”概念的延伸和實現(xiàn),是數(shù)字地球的雛形,是人們認識、研究、利用和保護地球的技術(shù)平臺,即數(shù)字地球平臺,是“數(shù)字地球”進程中的必然產(chǎn)物。數(shù)字地球平臺(Digital Earth Platform,DEP)就是集地球空間數(shù)據(jù)采集、存儲、傳輸、轉(zhuǎn)換、處理、分析、檢索、表達、輸出為一體的應(yīng)用、服務(wù)和決策支持系統(tǒng)。它以多分辨率空間影像數(shù)據(jù)為基礎(chǔ),以統(tǒng)一的坐標投影系統(tǒng)為框架,以開放的XML為數(shù)據(jù)交換標準,以空間數(shù)據(jù)基礎(chǔ)設(shè)施為支撐,以三維可視化技術(shù)為手段,以分布式網(wǎng)絡(luò)為紐帶,為人類提供全新的觀察地球、分析和研究地球、建立基于空間信息的各類應(yīng)用和提供不同服務(wù)的有力工具。
原生GML空間數(shù)據(jù)庫系統(tǒng)的研究為大量涌現(xiàn)的GML格式空間數(shù)據(jù)的有效管理提供了強有力的技術(shù)保障,為GML空間數(shù)據(jù)的拓展應(yīng)用奠定了堅實的基礎(chǔ)。而Google Earth作為目前數(shù)字地球原型系統(tǒng)的典型代表,本文將原生GML空間數(shù)據(jù)庫系統(tǒng)與Google Earth集成,并以G/S模式為體系結(jié)構(gòu)風(fēng)格,結(jié)合GML/KML壓縮傳輸與交換技術(shù),設(shè)計、實現(xiàn)GGEarth(G/S&GML&Geo Google Earth)空間數(shù)據(jù)應(yīng)用服務(wù)系統(tǒng),集成2D&3D顯示、數(shù)據(jù)查詢、數(shù)據(jù)編輯與更新、數(shù)據(jù)導(dǎo)入導(dǎo)出、時序追蹤、線路追蹤、空間分析、3D飛行、實時視頻、GPS導(dǎo)航定位等功能;是一種全新模式和架構(gòu)的網(wǎng)絡(luò)地理信息服務(wù)系統(tǒng)。GGEarth可應(yīng)用于數(shù)字城市、數(shù)字旅游及傳統(tǒng)網(wǎng)絡(luò)地理信息系統(tǒng)應(yīng)用領(lǐng)域,對于新型網(wǎng)絡(luò)地理信息系統(tǒng)的研究與發(fā)展具有借鑒意義。
本文研究設(shè)計了GGEarth空間數(shù)據(jù)應(yīng)用服務(wù)系統(tǒng)原型體系結(jié)構(gòu),見圖1。其涵蓋內(nèi)容分述如下。
圖1 GGEarth空間數(shù)據(jù)應(yīng)用服務(wù)系統(tǒng)原型體系結(jié)構(gòu)
GGEarth空間數(shù)據(jù)應(yīng)用服務(wù)系統(tǒng)基于G/S模式,整體上包括:GGEarth客戶端、GGEarth服務(wù)器端和GGEarth服務(wù)器管理客戶端。客戶端與服務(wù)器端之間為多對一關(guān)系,并基于TCP/IP進行網(wǎng)絡(luò)通信;系統(tǒng)整體部署于Internet環(huán)境中。
GGEarth客戶端構(gòu)建于Google Earth客戶端內(nèi)核之上,即Google Earth COM API??蛻舳私M成模塊包括:2D&3D顯示、數(shù)據(jù)查詢、數(shù)據(jù)編輯與更新、數(shù)據(jù)導(dǎo)入導(dǎo)出、時序追蹤、線路追蹤、空間分析、3D飛行、實時視頻、GPS導(dǎo)航定位、壓縮解壓、數(shù)據(jù)交換等。在GGEarth客戶端中所有操作的應(yīng)用數(shù)據(jù)皆為KML格式。
(1) 2D&3D顯示。該模塊用于實現(xiàn)衛(wèi)星影像地理底圖的2D、3D模式交互顯示,以及自建模型的2D、3D交互顯示。用戶自建模型數(shù)據(jù)可分別來自GGEarth服務(wù)器端原生GML空間數(shù)據(jù)庫系統(tǒng)、GML文檔集或KML文檔集,也可自GGEarth客戶端直接導(dǎo)入KML格式建模數(shù)據(jù)。
(2) 數(shù)據(jù)查詢。該模塊負責(zé)在GGEarth客戶端啟動初始化后,根據(jù)用戶選擇的特定應(yīng)用地標數(shù)據(jù),向GGEarth服務(wù)器端請求,并返回顯示于客戶端視圖區(qū)中。服務(wù)器端的數(shù)據(jù)可以分別來自原生GML空間數(shù)據(jù)庫系統(tǒng)、GML文檔集或KML文檔集。
(3) 數(shù)據(jù)編輯與更新。該模塊用于用戶對GGEarth客戶端視圖區(qū)中的指定應(yīng)用數(shù)據(jù)(如:點、線、面等)進行編輯、修改,并更新保存于GGEarth服務(wù)器端GML數(shù)據(jù)庫或GML/KML文檔集中。
(4) 數(shù)據(jù)導(dǎo)入導(dǎo)出。該模塊為方便用戶使用GGEarth客戶端直接在客戶端導(dǎo)入導(dǎo)出KML數(shù)據(jù)文件而設(shè),此時數(shù)據(jù)可不用來自GGEarth服務(wù)器端。
(5) 時序追蹤。該模塊用于依據(jù)時間順序動態(tài)顯示諸如地震、降雨、動物遷徙等發(fā)生、分布狀況;形象、直觀。
(6) 線路追蹤。該模塊用于野外地理、地質(zhì)調(diào)查等線路的宏觀、直接規(guī)劃,預(yù)調(diào)查分析等。
(7) 空間分析。該模塊用于特定應(yīng)用數(shù)據(jù)的空間查詢與量算、緩沖區(qū)分析、疊置分析、網(wǎng)絡(luò)分析等,是網(wǎng)絡(luò)地理信息系統(tǒng)著力研究的內(nèi)容,是GGEarth的高級功能。
(8) 3D飛行。該模塊基于3D衛(wèi)星影像底圖,依據(jù)地形進行視角動態(tài)移動、觀察,可對特定區(qū)域進行立體、直觀的的展示。
(9) 實時視頻。該模塊用于將實時攝制視頻在GGEarth客戶端指定地點以彈出窗口方式實現(xiàn)共享、播放。在數(shù)字旅游、數(shù)字城市熱點景觀實時展示,特定監(jiān)控方面意義顯著。
(10) GPS導(dǎo)航定位。該模塊用于將GPS實時定位信息提供給GGEarth客戶端,以此在客戶端視圖區(qū)中實時顯示其位置信息,并結(jié)合定位實現(xiàn)導(dǎo)航功能。
(11) 壓縮解壓。該模塊用于將來在GGEarth服務(wù)器端的GML/KML數(shù)據(jù)解壓,也將上傳至服務(wù)器端的GML/KML數(shù)據(jù)進行壓縮。由于GML/KML文本數(shù)據(jù)通常數(shù)據(jù)量很大,而其壓縮比又很高,采用合適的壓縮算法可顯著節(jié)省帶寬,提高數(shù)據(jù)傳輸效率。
(12) 數(shù)據(jù)交換。該模塊用于將來在GGEarth服務(wù)器端的GML數(shù)據(jù)轉(zhuǎn)換為KML,也將上傳至服務(wù)器端的KML數(shù)據(jù)根據(jù)需要轉(zhuǎn)換為GML格式上傳存儲。由于GGEarth客戶端中所有操作的應(yīng)用數(shù)據(jù)皆須KML格式,而數(shù)據(jù)源為GML時,則需進行交換。
GGEarth服務(wù)器端包括:GGEarth應(yīng)用服務(wù)器,Google公司Google Earth服務(wù)器,以及原生GML空間數(shù)據(jù)庫系統(tǒng)、GML文檔集、KML文檔集。Google Earth服務(wù)器用于提供全球多級分辨率與統(tǒng)一坐標投影體系的衛(wèi)星影像地理底圖等信息,客戶端Google Earth內(nèi)核可直接對其進行訪問。GGEarth應(yīng)用服務(wù)器用于為客戶端提供特定應(yīng)用領(lǐng)域GML/KML格式空間數(shù)據(jù)的訪問與綜合處理服務(wù);它包括:用戶認證、調(diào)度控制、數(shù)據(jù)訪問、壓縮解壓等功能模塊。
(1) 用戶認證。該模塊用于實現(xiàn)客戶端用戶的注冊授權(quán)、登錄認證、用戶信息管理等功能。涉及的用戶包括GGEarth客戶端用戶和GGEarth服務(wù)器管理客戶端管理員用戶。用戶信息以XML格式存儲于原生GML空間數(shù)據(jù)庫系統(tǒng)。
(2) 調(diào)度控制。該模塊是GGEarth應(yīng)用服務(wù)器的核心模塊之一,用于對大量客戶端的登錄認證、數(shù)據(jù)請求進行協(xié)調(diào)控制,同時協(xié)調(diào)GGEarth應(yīng)用服務(wù)器中各功能模塊的正常運行。
(3) 數(shù)據(jù)訪問。出于對多源數(shù)據(jù)支持的考慮,GGEarth服務(wù)器端支持原生GML空間數(shù)據(jù)庫、GML文檔集、KML文檔集三種數(shù)據(jù)源類型;原生GML空間數(shù)據(jù)庫存儲的數(shù)據(jù)包括:特定應(yīng)用GML格式空間數(shù)據(jù)、客戶端用戶XML格式信息數(shù)據(jù),以及服務(wù)器端XML格式的其它配置信息。而GML文檔集和KML文檔集是直接存儲于文件系統(tǒng)中的文本數(shù)據(jù)集合??臻g應(yīng)用數(shù)據(jù)除了以GML格式直接存儲于原生GML數(shù)據(jù)庫中外,也可以直接存儲于普通文件系統(tǒng)中;而且還可能有以KML格式直接存儲于文件系統(tǒng)中的數(shù)據(jù),如此便于系統(tǒng)的擴展和靈活應(yīng)用(自然,數(shù)據(jù)庫方式的存儲效率是最高的)。數(shù)據(jù)訪問模塊負責(zé)根據(jù)調(diào)度控制模塊傳來的數(shù)據(jù)請求,依據(jù)數(shù)據(jù)請求類型獲取請求數(shù)據(jù)并返回;同時,也根據(jù)調(diào)度控制模塊傳來的數(shù)據(jù)存儲或更新請求,完成數(shù)據(jù)的存儲。
(4) 壓縮解壓。由于GML/KML文本數(shù)據(jù)通常數(shù)據(jù)量很大,而其壓縮比又很高,采用合適的壓縮算法可顯著節(jié)省帶寬,提高數(shù)據(jù)傳輸效率。該模塊用于將發(fā)送至GGEarth客戶端的GML/KML數(shù)據(jù)壓縮然后交由通信模塊進行傳輸;同時,也將來自客戶端的GML/KML格式更新數(shù)據(jù)解壓后提交數(shù)據(jù)訪問模塊進行存儲。
GGEarth服務(wù)器管理客戶端主要實現(xiàn)各種管理功能。包括:管理員用戶、普通用戶信息的管理(包括:注冊、修改、刪除等),GGEarth應(yīng)用服務(wù)器端特定應(yīng)用GML/KML空間數(shù)據(jù)的批量導(dǎo)入、導(dǎo)出、數(shù)據(jù)備份等,GGEarth應(yīng)用服務(wù)器啟動、停止、運行參數(shù)配置、運行狀態(tài)檢測等。
GGEarth空間數(shù)據(jù)應(yīng)用服務(wù)系統(tǒng)原型的實現(xiàn)將涉及多種關(guān)鍵技術(shù),如:影像無級縮放、影像無縫拼接、影像快速顯示、影像3D顯示、3D飛行、實時視頻、GPS導(dǎo)航定位等,上述關(guān)鍵技術(shù)的實現(xiàn)基本上已由Google Earth COM API提供;除此之外,GGEarth系統(tǒng)原型的實現(xiàn)還綜合采用了以下關(guān)鍵技術(shù)。
(1) 多線程
多線程技術(shù)對于程序的并發(fā)運行,尤其是服務(wù)器端程序的并發(fā)運行至關(guān)重要。它能夠確保程序中多條分支路徑或多個功能模塊的并發(fā)運行,能夠充分利用計算機的CPU,顯著的提高程序的運行效率。GGEarth系統(tǒng)原型服務(wù)器端和客戶端都采用多線程技術(shù),以確保系統(tǒng)的并發(fā)性和及時響應(yīng)性。
(2) 微內(nèi)核結(jié)構(gòu)
微內(nèi)核結(jié)構(gòu)是新型操作系統(tǒng)的一種體系結(jié)構(gòu)。其基本思想是:內(nèi)核僅提供系統(tǒng)最基本的功能和服務(wù),通常包括:進程/線程管理、存儲管理、進程間通信、與硬件相關(guān)的管理等;其它系統(tǒng)擴展功能都以服務(wù)進程的方式提供,服務(wù)進程間通過微內(nèi)核以消息的方式進行通信,此類功能如:文件系統(tǒng)、窗口系統(tǒng)等。微內(nèi)核結(jié)構(gòu)的如此設(shè)計,充分保障了系統(tǒng)的靈活性、可擴展性、可裁減性、可移植性、健壯性和可維護性。將微內(nèi)核體系思想移植于應(yīng)用軟件體系結(jié)構(gòu)的設(shè)計,是應(yīng)用軟件系統(tǒng)設(shè)計的積極嘗試。
GGEarth系統(tǒng)原型服務(wù)器端GGEarth應(yīng)用服務(wù)器采用微內(nèi)核結(jié)構(gòu),即應(yīng)用服務(wù)器中的調(diào)度控制器只進行初始化、加載、任務(wù)調(diào)度等工作,具體業(yè)務(wù)皆由靈活加載的各業(yè)務(wù)模塊完成。如此設(shè)計,能夠確保GGEarth應(yīng)用服務(wù)器的可擴展性、健壯性和可維護性,并能最大限度的提高系統(tǒng)的性能。
(3) XSLT數(shù)據(jù)轉(zhuǎn)換
來自GGEarth服務(wù)器端的GML數(shù)據(jù)在GGEarth客戶端加載顯示前需要轉(zhuǎn)換為KML格式,同樣KML格式的客戶端數(shù)據(jù)更新存儲到服務(wù)器端時一般也需要轉(zhuǎn)換為GML格式。空間數(shù)據(jù)在GML與KML之間的轉(zhuǎn)換需要自動完成,而XSLT方式的轉(zhuǎn)換是直接而有效的,但是需要開發(fā)出GML―>KML的通用XSLT模版代碼和KML->GML的通用XSLT模版代碼,以便程序自動應(yīng)對各種GML、KML數(shù)據(jù)。
(4) LOD
層次細節(jié)(Level of Detail,LOD)技術(shù)是圖形渲染的重要方法,它根據(jù)視點的變化而加載、渲染不同的數(shù)據(jù);當(dāng)視點一定時,距離視點較近的區(qū)域加載細節(jié)數(shù)據(jù),而距離視點較遠的區(qū)域則忽略或簡化處理,視點的遠近通過閥值設(shè)定。LOD技術(shù)的使用可使圖形關(guān)注區(qū)域細膩渲染的同時,又無需一次加載所有圖形數(shù)據(jù),在顯著提高圖形顯示的同時又降低了數(shù)據(jù)傳輸?shù)木W(wǎng)絡(luò)帶寬,優(yōu)勢明顯。GGEarth系統(tǒng)原型客戶端采用LOD算法對各種2D、3D特定應(yīng)用圖形或模型數(shù)據(jù)進行加載、渲染,以顯著提高客戶端的性能和可操作性。
(5) KML數(shù)據(jù)空間運算
GGEarth系統(tǒng)原型客戶端采用KML格式數(shù)據(jù)進行各種操作和展示。對空間分析、時序追蹤、線路追蹤、3D飛行等各種處理和空間運算,專門設(shè)計了針對KML格式數(shù)據(jù)的處理方法,從而有效實現(xiàn)上述各種高級功能。
GGEarth系統(tǒng)原型的研發(fā)是一個迭代和增量的過程。目前采用Delphi集成開發(fā)工具開發(fā)了實驗系統(tǒng),圖2、圖3是客戶端運行的部分截圖。其中圖2是5·12汶川地震時序分布的截圖,原始數(shù)據(jù)通過GML格式編碼并通過XSLT轉(zhuǎn)換為KML,然后加載于客戶端中。圖3是疊加了高分辨率“快鳥”衛(wèi)星影像的九寨溝景區(qū)三維效果截圖。
圖2 5·12汶川地震分布客戶端截圖(4.0-4.9級)
圖3 數(shù)字九寨虛擬游覽客戶端截圖
Google Earth的出現(xiàn)為數(shù)字地球的發(fā)展注入了新的活力;G/S模式為計算機技術(shù)與空間信息技術(shù)的集成應(yīng)用提供了新的思路;作者基于Google Earth COM API,結(jié)合G/S模式、GML、KML,設(shè)計了一種網(wǎng)絡(luò)化空間數(shù)據(jù)應(yīng)用服務(wù)系統(tǒng),并開發(fā)了實驗系統(tǒng),對5·12汶川地震時序分布和數(shù)字九寨虛擬游覽進行了實驗運行。系統(tǒng)意在應(yīng)用于數(shù)字城市、數(shù)字旅游及傳統(tǒng)網(wǎng)絡(luò)GIS應(yīng)用領(lǐng)域。
[1李德仁.數(shù)字地球與“3S”技術(shù)[J].中國測繪.2003.
[2] 劉永志,張行南,張文婷.基于X3D的數(shù)字地球系統(tǒng)的研究[J].系統(tǒng)仿真學(xué)報.2006.
[3] 苗放,葉成名,劉瑞等.新一代數(shù)字地球平臺與“數(shù)字中國”技術(shù)體系架構(gòu)探討[J].測繪科學(xué).
[4] OGC. OpenGIS Geography Markup Language (GML) Implementation Specification (Version 2.1.1)[EB/OL]. http:// www.opengeospatial.org/standards/gml.2002.
[5] OGC. OpenGIS Geography Markup Language (GML) Implementation Specification (Version 3.1.1)[EB/OL]. http://www.opengeospatial.org/standards/gml.2004.
[6] OGC. OpenGIS Geography Markup Language (GML) Encoding Standard(Version 3.2.1)[EB/OL]. http://www. opengeospatial.org/standards/gml.2007.
[7] 陳建華.原生模式GML空間數(shù)據(jù)管理機制研究[D].成都理工大學(xué)博士學(xué)位論文.2008.
[8] OGC. OGC KML(Version: 2.2.0)[EB/OL]. http://www.opengeospatial. org/standards/ kml.2008.
[9] Google. Google Earth COM API Documentation[EB/OL].http://earth.google.com/ comapi/.2008.
[10] Black D.L., Golub D.B., Julin D.P. et al. Microkernel operating system architecture and mach[C]. In: Proceedings of the USENIX Workshop on Micro-kernels and Other Kernel Architecture.Washington.1992.
[11] Christopher Browne. Microkernel-based OS efforts[EB/OL].http://linuxfinances.info/ info/microkernel.html.2004.
[12] 陳建華,苗放.基于微內(nèi)核結(jié)構(gòu)的統(tǒng)一網(wǎng)管平臺設(shè)計研究[J].微電子學(xué)與計算機.2008.
[13] Clark James H.. Hierarchical Geometric Models for Visible Surface Algorithms[J]. Communications of the ACM.1976.
[14] 陳剛,熊興華.海量地形漫游中動態(tài)LOD算法研究[J].測繪通報.2007.