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