李金貴,翁敬農
(北京航空航天大學計算機學院,北京100191)
數字地球(digital earth)是美國前副總統戈爾于1998年1月發(fā)表的題為《數字地球:認識21世紀我們所居住的星球》的演說時提出的一個與地理信息系統、網絡、虛擬現實等高新技術密切相關的概念。在戈爾的演說中,他將數字地球看作是“對地球的三維多分辨率表示,它能夠放入大量的地理數據?!弊詳底值厍蚋拍钐岢鲆詠恚瑖H上許多科研機構與企業(yè)掀起了對其研究的熱潮,關于數字地球一系列具有代表性的產品脫穎而出,如Google Earth、Arc-Globe、EV-Globe等。如何在虛擬三維地形上展示空間數據成為了研究重點與熱點。地形數據、柵格數據、矢量數據是數字地球最基礎、最重要的數據。在虛擬三維地形上覆蓋全球影像數據,進而顯示矢量專題數據,就構成了數字地球原型[1]。
GIS發(fā)展至今已經積累了大量的二維數據,形成了成熟的規(guī)范與生產流程。二維數據的三維可視化已成為GIS發(fā)展的趨勢。在數字地球三維環(huán)境下,如何將二維GIS數據在三維地形上進行可視化無疑是重要的部分之一[2]。在數字地球環(huán)境中,對于全球影像數據一般采用影像金字塔的形式進行組織,通過WMS進行調用[3],以紋理映射的方式進行可視化。這種方式與二維環(huán)境比較相似,影像數據的可視化也比較成熟。然而對于矢量數據,由于其結構相對復雜,有內部屬性且要素間具有拓撲關系,又是空間分析的主要對象,在數字地球三維場景中對它的可視化方式雖然進行了大量研究,并且取得了豐碩的成果,但存在的問題仍然比較突出。在數字地球環(huán)境下,對大數據量的矢量數據進行可視化時,要兼顧可視化效果與對原矢量數據屬性與結構的保持,這是引起問題的主要原因。另外,由于數字地球環(huán)境中通常采用的是金字塔多分辨率地形模型,在對矢量進行渲染時不僅要使其緊貼地面,而且要隨視域范圍與視點高度的變化而變化,這無疑增加了問題的難度。本文在對三維環(huán)境下現有矢量數據可視化技術研究的基礎之上,提出了在數字地球環(huán)境下帶樣式矢量動態(tài)紋理可視化方法及球面矢量點選交互技術。
目前,二維矢量的三維可視化方法主要有兩種,分別是基于幾何和基于紋理的可視化方法[4]?;趲缀蔚目梢暬歉鶕噶繑祿?chuàng)建與地形幾何表面相適應的矢量幾何數據,即給矢量數據添加并插值高程值,對矢量數據進行渲染[5],具體方法又分為集成法與疊加法。集成法是將矢量數據的幾何機構嵌入到地形格網,以使高程信息集成到矢量數據的坐標中,使地形格網和矢量幾何融為一體[6];而在疊加法中,矢量數據與地形數據之間是相互獨立的,通過空間位置關系關聯起來,在顯示效果上融合為一體?;诩y理的矢量繪制方法的思想是:首先將二維矢量數據柵格化為紋理影像,然后采用紋理映射的方法進行繪制,這樣能夠保證矢量數據與三維地形很好地疊加在一起。兩種可視化方法的優(yōu)缺點及在數字地形環(huán)境下的基本應用見表1。
表1 矢量數據三維可視化方法優(yōu)缺對比與基本應用
帶樣式矢量動態(tài)紋理可視化方法的主要思想是根據三維場景的視域范圍及視點高度調度可見層級的可見瓦快[7],利用矢量數據與瓦快之間的映射關系找到需加載的瓦快區(qū)域對應的矢量數據,讀取指定樣式(地理符號),動態(tài)生成與地形地段大小匹配的紋理塊,供數字地球軟件進行加載顯示。該方法的實現有些類似WMS的工作原理,所不同的是該方法在對矢量進行紋理可視化時,直接根據地形的渲染發(fā)出請求,返回對應的數據進行渲染并進行緩存,主要分為兩部分:紋理在數字地球平臺的可視化與帶樣式矢量圖層快速柵格化。
(1)紋理在數字地球平臺的可視化
在數字地球環(huán)境下,對大規(guī)模場景的地形數據與影像進行渲染時,需要根據視域范圍與視點高度讀取緩存中的瓦塊進行加載。地形數據與地表影像數據通常以金字塔結構[8]在服務器端進行存儲,數字地球客戶端以WMS的形式向服務器發(fā)送請求,并將數據以金字塔的形式緩存到本地。這樣的層次細節(jié)模型(LOD)可以提高加載速度且保證足夠細節(jié)。為了不對矢量數據的內部屬性及要素間的拓撲關系造成破壞,對矢量數據接入時,開始并不對矢量數據進行瓦片分割構建多分辨率的中間文件,而是建立瓦塊與矢量數據之間的函數關系,需要顯示時則根據這層映射關系找到對應范圍的矢量數據進行渲染。因此,矢量數據的組織管理應與高程數據、影像數據具有統一的網絡劃分方案。
設當前瀏覽數據的層級為n,數據的經緯度為longitude、latitude,若金字塔最底層的度數為Δ,則可得該點所在的文件行列號row與column為:row=(latitude+90°)/Δ×2n,column=(longitude+180°)/Δ×2n。根據視域范圍可以計算出可見層級中的哪些瓦塊需要調用。根據矢量數據與瓦塊之間的映射關系,由當前層級n、最底層的度數Δ,以及行列號row、column,可計算出對應矢量的范圍為:longitude=column×Δ/(2n)-180°,latitude=row×Δ/(2n)-90°;當前層級的間隔為:Δ/(2n)。得到范圍后對數據生成線程發(fā)送請求,則可以將對應范圍的矢量以圖片的形式返回并映射到數字地球模型對應的位置,同樣以影像金字塔的形式進行緩存,以便后繼瀏覽到相同層級、相同范圍時無須再次生成紋理,極大地提高了數據瀏覽的速度。
(2)紋理在數字地球平臺的可視化
對矢量要素的線寬及面要素內部填充色的設置,以圖層樣式表(SLD)的形式保存在文件中。圖層樣式表是OGC制定的一種基于XML語言的文本文件,用來描繪特征數據的表現形式,它可以精確描述制圖層上的每一個特征要素的表現形式,并靈活展示不同狀態(tài)下的空間要素[9]。Geotools作為開放空間地理信息聯盟的重要組成部分,高效地實現了其大部分標準接口,并能夠直接解析SLD文件進行渲染,生成指定范圍的紋理。本文利用Geotools開源工具包生成動態(tài)紋理主要分為6個步驟,包括請求解析、加載數據、將數據置入緩存、樣式設置、添加圖層,以及紋理生成。圖1為柵格紋理生成流程。在實際應用中,由于柵格紋理生成模塊需要頻繁連接數據源,因此設置了數據緩存池。該緩存池容量默認為8,并采用LRU原則進行數據替換[10]。
①請求解析
請求解析模塊主要負責解析映射字符串,提取矢量數據的連接參數及紋理參數,并驗證參數的有效性。參數包括數據源、圖層樣式表(SLD)、坐標系(本文為WGS-84)、紋理文件格式(本文為PNG)、紋理的分辨率(本文為256)及請求紋理的范圍。如果參數有效,則繼續(xù)處理;否則退出此次柵格紋理生 成過程。
圖1 柵格紋理生成流程
②加載數據
加載數據時首先驗證數據是否已放入緩存,若是則直接進入樣式設置模塊,否則根據數據連接參數讀取數據;讀取完成后驗證數據是否加載成功,若是則進入樣式設置模塊,否則退出紋理生成過程。
③樣式設置
樣式設置模塊主要負責讀取映射字符串中指定的地圖符號化樣式,并將此樣式與對應圖層數據關聯起來。Geotools是通過用戶提供的樣式信息進行渲染控制。在對樣式進行交互式設置時,使用SLD文件對矢量文件的樣式進行描述。
④添加圖層
針對多個矢量圖層的渲染,為避免重復創(chuàng)建上下文環(huán)境,添加圖層模塊加載多個已讀入數據圖層,并送交紋理生成模塊。這樣可以對多個矢量圖層同時進行柵格紋理生成,在進行渲染時可以減少渲染量,并且在進行金字塔緩存時也可以減少磁盤占有量。
⑤紋理生成
紋理生成模塊主要負責根據紋理參數,如紋理分辨率、格式等,繪制指定經緯區(qū)域的矢量圖層數據,并將生成的紋理數據轉換為字節(jié)返回。在此模塊中,主要使用了Geotools的GTRenderer接口,它的主要實現為Streaming Renderer類。它在第一次調用時就可以在消耗較低內存的情況下,生成優(yōu)質的圖像緩存,并且無須再對同一數據的后繼調用渲染進行優(yōu)化,這樣在對大型矢量數據進行處理時效果更加明顯。
(3)球面矢量數據點選交互技術
當對矢量數據主要以整理形式進行展現時,若數據量較大,直接以基于幾何的方式進行渲染,則需要消耗較大內存進行計算,極大地降低了系統的性能。因此,可以采用上述帶樣式的動態(tài)矢量紋理可視化方法。如果僅對矢量數據中的單個要素進行展示,則在不影響性能的情況下,采用基于幾何的可視化方法就可以對數據進行完美展示。球面矢量數據點選功能是在對矢量圖層進行點擊時,對點擊下的要素進行高亮顯示,并進行屬性數據查詢。由于矢量數據柵格化方法技術產生的數據并沒有包含矢量的屬性,對其進行點擊并不能產生實質性的結果。但是由于矢量數據的完整性,可以通過位置查詢出點擊處的要素。這樣只要把查詢出的矢量要素返回并經過基于幾何的模板陰影法進行渲染,其效果是以新的要素覆蓋在原結果之上,在不對原有渲染進行修改的情況下就可以產生高亮效果。其流程如圖2所示。
圖2 球面矢量數據點選流程
百科地球(WikiGlobe)平臺是由北航數字地球與地理信息系統實驗室課題組開發(fā)的數字地球平臺,它專注于與空間信息相關的百科知識的傳播與共享。百科地球之“世界國家概況”專題應用以介紹國家信息為主,同時展示全球范圍內與中國建交的國家分布及一些重要組織的分布,如世貿組織、亞太空間合作組織等。專題數據主要來自CIA網站、聯合國網站、中國外交部網站、維基百科及世界貿易組織網站等。
本應用的矢量數據為世界國家行政邊界,幾何數據主要來源于Esri,通過將聯合國網站國家列表與CIA中的世界國家概況進行對比,整理出百科地球版本的國家列表,其屬性數據主要收集于互聯網,包括各國的面積、人口、GDP、簡介等。對國家進行展示時,行政邊界設置樣式后,實時進行柵格紋理化可視化,并通過金字塔結構進行緩存。對國家信息進行展示時,通過點擊興趣國家所在的區(qū)域,通過球面點選技術,實時對矢量數據進行查詢,獲得點擊處國家?guī)缀渭皩傩孕畔?,并對幾何信息以基于幾何的模板陰影法進行繪制。效果如圖3所示。
圖3 球面點選信息展示
本文探討了數字地球環(huán)境下二維矢量數據的三維可視化及其應用問題,通過對現在矢量繪制方法優(yōu)缺點的對比,提出了在數據量較大時采用帶樣式動態(tài)矢量紋理可視化方法及在小數據量交互時直接采用幾何方法進行繪制的應用。帶樣式矢量紋理可視化方法是對現有基于紋理的可視化方法的改進,利用金字塔結構對紋理進行緩存,利用Geotools進行樣式解析及紋理生成,有效解決了因矢量數據量及柵格化分辨率較大而產生的內存泄露問題。而對于與球面矢量數據交互時小數據量矢量數據的繪制,采用基于幾何的可視化方法,該方式在球面矢量數據點選可視化時得到了廣泛應用。本文的研究為矢量數據在數字地球環(huán)境下的可視化及應用提供了有效途徑。
[1] 陳東升,戴和原,許錦鵬.基于數字地球平臺的數據可視化技術研究[J].數字技術與應用,2013(11):54-56.
[2] KERSTING O,D?LLNER J.Interactive 3D Visualization of Vector Data in GIS[C]∥Proceedings of the 10th ACM International Symposium on Advances in Geographic Information Systems.NY:ACM,2010:1-507-112.
[3] 姜仁貴,解建倉,李建勛,等.基于數字地球的Web-GIS開發(fā)及其應用[J].計算機工程,2011,37(6):225-227.
[4] XU Y F,SUI Z W,WENG J N,et al.Visualization Methods of Vector Data on a Digital Earth System[C]∥18th International Conference on Geoinformatics.Bei-Jing:IEEE,2010:1-5.
[5] 陳鴻,湯曉安,謝耀華,等.基于視點相關透視紋理的矢量數據在三維地形上的疊加繪制[J].計算機輔助設計與圖形學學報,2010,22(5):753-761.
[6] KOCH A,HEIPKE C.Integrating 2D Topographic Vector Data with a Digital Terrain Model-a Consistent and Semantically Correct Approach[C]∥RIEDL A,KAINZ W,ELMES G A.Progress in Spatial Data Handling.Berlin and New York:Springer-Verlag,2006:353-364.
[7] XU Y,WAN G L.Technology of Displaying Mass Data Image in Real Time[J].Computer Engineering and Design,2003,24(6):36-38.
[8] YANG L Y,GONG J H,SUN J,et al.An Effective Method for Massive Polygon Data Visualization on Digital Earth Platform[C]∥2010 International Conference on Multimedia Technology(ICMT).Ningbo:IEEE,2010:1-4.
[9] MULLINIX C,HEARN P,ZHANG H J,et al.Webbased Decision Support and Visualization Tools for Water Quality Management in the Chesapeake Bay Watershed[C]∥17th International Conference on Geoinformatics.Fairfax VA:IEEE,2009:1-6.
[10] RISHE N,SUN Y L,CHEKMASOV M,et al.System Architecture for 3D TerraFly Online GIS[C]∥Sixth International Symposium on Multimedia Software Engineering.Miami Florida:IEEE,2004:273-276.