尹志永,王濤,徐瑩,劉慶濤(天津市測繪院,天津 300381)
基于OSG的城市三維GIS系統(tǒng)的初步設(shè)計與開發(fā)
尹志永?,王濤,徐瑩,劉慶濤
(天津市測繪院,天津 300381)
摘 要:相對于二維GIS系統(tǒng),城市三維GIS系統(tǒng)具有直觀、準(zhǔn)確的優(yōu)點,是數(shù)字城市建設(shè)的一個重要環(huán)節(jié)?;贠SG引擎,設(shè)計了一個城市三維GIS系統(tǒng),詳細闡述數(shù)據(jù)制作和系統(tǒng)開發(fā)兩大部分,系統(tǒng)數(shù)據(jù)包含三維地形模型、地上地下景觀三維模型和屬性數(shù)據(jù);重點分析了OSG對海量數(shù)據(jù)的高效組織和調(diào)度機制,最后對系統(tǒng)的軟件功能予以展示。
關(guān)鍵詞:城市三維GIS系統(tǒng);OSG三維引擎;海量數(shù)據(jù);系統(tǒng)開發(fā)
二維GIS由于具有數(shù)據(jù)管理完善、空間分析查詢功能實用[1]的特點已廣泛應(yīng)用于現(xiàn)代城市的交通、規(guī)劃、公安、環(huán)境監(jiān)測、土地管理等領(lǐng)域。但由于城市是處在三維空間中[2],這使得以平面圖形作載體的二維GIS系統(tǒng)近年來已顯示出不足,現(xiàn)代社會管理的發(fā)展要求建立城市三維GIS系統(tǒng)。
城市三維GIS技術(shù)是將虛擬現(xiàn)實技術(shù)用于城市環(huán)境及資源的仿真,對城市的真實地形、地上地下景觀進行數(shù)字化三維模擬,給用戶提供一個與真實城市一致的虛擬城市環(huán)境,具有三維瀏覽、三維空間分析、信息檢索、輔助設(shè)計等功能。在三維GIS系統(tǒng)中,用戶能以動態(tài)交互的方式對城市立體環(huán)境進行身臨其境的接觸、觀察。利用其立體化、數(shù)字化特點,為城市建設(shè)等領(lǐng)域提供直觀、準(zhǔn)確的空間信息,提高城市空間信息的利用水平,從而實現(xiàn)城市管理的高效率。
城市三維GIS系統(tǒng)的建立過程包括資料收集、數(shù)據(jù)處理及三維模型建立、系統(tǒng)開發(fā)三個步驟。
2.1數(shù)據(jù)處理及三維建模
系統(tǒng)運用的數(shù)據(jù)包括三維模型、二維矢量數(shù)據(jù)及景觀物屬性數(shù)據(jù)。三維模型包括三維地形模型、建筑及城市部件三維模型、地下管網(wǎng)三維模型。二維矢量數(shù)據(jù)為城市路網(wǎng)數(shù)據(jù),用以在三維場景中動態(tài)顯示路名標(biāo)注。景觀物包括地下管網(wǎng)和地上建筑,其屬性數(shù)據(jù)為二維關(guān)系表,與景觀物的三維模型是一一對應(yīng)的并通過唯一的ID聯(lián)系。
三維地形模型是DOM與DEM融合而成的,作為系統(tǒng)的立體影像底圖使用,其構(gòu)建可利用開源工具VirtualPlanetBuilder(簡稱VPB)。建筑及部件三維模型的制作可利用3ds Max等建模軟件,底圖數(shù)據(jù)是現(xiàn)勢性強的1∶500比例尺地形圖,制作方式以人工為主,其中利用MAX Script腳本語言實現(xiàn)了建筑模型的快速制作[3]。地下管網(wǎng)三維模型則是利用自主開發(fā)的3ds Max建模插件,依據(jù)管網(wǎng)測繪資料完成自動建模工作。
2.2系統(tǒng)開發(fā)
系統(tǒng)框架由數(shù)據(jù)層、驅(qū)動層和應(yīng)用層三部分構(gòu)成,其體系結(jié)構(gòu)如圖1所示。
圖1 城市三維GIS系統(tǒng)的體系結(jié)構(gòu)
(1)數(shù)據(jù)層。包括三維模型數(shù)據(jù)、景觀物屬性數(shù)據(jù)和城市路網(wǎng)二維矢量數(shù)據(jù)。對三維模型數(shù)據(jù)采用了文件式管理,其格式為OpenSceneGraph(簡稱OSG)支持的二進制IVE格式,采用此格式文件讀取速度快。對管網(wǎng)屬性數(shù)據(jù)、建筑基本信息數(shù)據(jù)、路網(wǎng)矢量數(shù)據(jù)進行數(shù)據(jù)庫管理,采用的數(shù)據(jù)庫軟件為SQL Server。
(2)驅(qū)動層。采用OSG三維引擎對三維數(shù)據(jù)進行渲染和顯示,為用戶提供一個三維、動態(tài)、交互式的仿真環(huán)境。OSG是一套開源的三維場景開發(fā)庫,其特點是將OpenGL的底層代碼封裝成易操作的接口[4],使程序員能高效地創(chuàng)建高性能的三維圖形系統(tǒng)。
(3)應(yīng)用層。具有三維景觀模型在三維地形環(huán)境下的三維瀏覽、場景漫游、數(shù)據(jù)查詢、空間分析等功能。
2.3關(guān)鍵技術(shù)
由于要管理海量的高分辨率影像和三維景觀模型,三維數(shù)據(jù)的組織、顯示是城市三維GIS技術(shù)的核心問題,目前普遍采用了數(shù)據(jù)制作過程中進行分塊、分層處理[5],系統(tǒng)運行中動態(tài)調(diào)用數(shù)據(jù)的技術(shù)。數(shù)據(jù)分塊是對三維數(shù)據(jù)進行網(wǎng)格化切分,使用時根據(jù)場景視點位置實時調(diào)用所需的數(shù)據(jù)塊。數(shù)據(jù)分層指建立多層次、多分辨率的三維模型,使用時依據(jù)視點距離動態(tài)調(diào)用適當(dāng)分辨率的模型,通常是視距短時調(diào)用高分辨率、精細度高的模型,反之則調(diào)用精細度低的模型。通常系統(tǒng)運行時分塊數(shù)據(jù)與分層數(shù)據(jù)是配合調(diào)用的。
此外數(shù)據(jù)的分頁動態(tài)調(diào)度尤為重要,即在顯示當(dāng)前視域場景的同時,預(yù)判下一步要載入的數(shù)據(jù),做出正確的數(shù)據(jù)加載和卸載處理[6],確保內(nèi)存中始終維持硬件系統(tǒng)能承載的數(shù)據(jù)額度,并保證無重要信息的丟失或場景顯示遲緩的現(xiàn)象。
2.4OSG的特點
OSG使用OpenGL底層渲染API,并由一系列高性能的三維圖形學(xué)功能模塊組成,主要為三維圖形圖像系統(tǒng)的開發(fā)提供場景管理和圖形渲染的功能。OSG的核心代碼支持場景裁剪技術(shù)、細節(jié)層次節(jié)點LOD技術(shù)、場景的動態(tài)調(diào)度、多線程渲染等技術(shù),這使得OSG成為高性能的三維圖形引擎。隨著虛擬仿真技術(shù)的發(fā)展,OSG已在三維GIS、計算機輔助設(shè)計、科學(xué)與工程數(shù)據(jù)可視化、網(wǎng)絡(luò)游戲等多個行業(yè)得到廣泛應(yīng)用。
基于OSG引擎開發(fā)三維圖形系統(tǒng)所用到的關(guān)鍵技術(shù)有:
(1)LOD(level of details)。LOD是較有代表性的數(shù)據(jù)分層技術(shù),采用LOD技術(shù)當(dāng)視域覆蓋范圍廣時,可用粗略三維模型繪制,這樣既不影響視覺效果又可提高繪制效率。
(2)分頁動態(tài)調(diào)度。OSG中的分頁數(shù)據(jù)庫DatabasePager類可對三維數(shù)據(jù)自動執(zhí)行動態(tài)調(diào)度,前提是其處理對象須為分頁LOD節(jié)點(即PagedLOD),即三維模型數(shù)據(jù)成為PagedLOD節(jié)點后能滿足程序?qū)?shù)據(jù)的動態(tài)調(diào)度要求。實際上,用VPB工具創(chuàng)建的三維地形模型即為PagedLOD類型數(shù)據(jù),可供程序直接動態(tài)調(diào)用;對其他非PagedLOD節(jié)點類型的三維模型,需將加載進的多層三維模型設(shè)置為PagedLOD節(jié)點方可實現(xiàn)其的動態(tài)調(diào)度。
(3)碰撞檢測。其原理為:從當(dāng)前視點出發(fā),沿指定方向引一條測試線,將測試線與場景實體進行相交測試,得到碰撞實體是否存在、碰撞點三維坐標(biāo)、碰撞實體ID等信息。本系統(tǒng)中運用碰撞檢測可實現(xiàn)屬性查看、三維量測、道路斷面圖及漫游中的碰撞阻擋等功能。
3.1三維地形
VPB是基于OSG和GDAL的用于構(gòu)建海量三維地形的第三方工具,VPB是開源工具,利用VPB基于DOM和DEM可快速生成分塊、分層的三維地形模型,且具有TB級的處理能力。利用VPB生成的三維地形模型為IVE格式,可快速加載到OSG場景中供瀏覽和漫游。VPB支持多線程作業(yè),可根據(jù)CPU個數(shù)和性能合理分配系統(tǒng)資源從而提高三維模型的生成效率。
3.2建筑模型和部件模型
建筑模型、部件模型是城市三維GIS系統(tǒng)必要的數(shù)據(jù),模型的建立在3ds Max中依靠人工制作完成,將已確定高程基準(zhǔn)面的建筑、部件模型分別導(dǎo)入到3ds Max 中,逐個對模型進行紋理貼圖、擺放等處理,得到空間位置準(zhǔn)確、視覺效果真實的三維模型。最后,利用免費的OSGEXP插件將三維模型整體導(dǎo)出為IVE文件。
本文采用了建筑三維模型的快速建立方法,即利用數(shù)字攝影測量工作站,基于數(shù)字航拍影像采集建筑外觀特征的三維點線面,再使用MAX Script腳本語言快速構(gòu)建建筑三維模型。
3.3地下管網(wǎng)模型
管網(wǎng)三維建模利用的是基于3ds Max SDK技術(shù)開發(fā)的自動建模插件[7]。自動建模插件開發(fā)的原理是:從屬性文件提取管點三維坐標(biāo)和管線的尺寸、材質(zhì)、埋設(shè)方式等信息,計算管線的空間位置、走向及形狀,調(diào)用3ds Max SDK的相應(yīng)接口生成與實地相符的圓柱體或立方體形狀的管線模型,并對管線模型進行紋理渲染對造型各異的管線井、出地設(shè)備等設(shè)施,首先在3ds Max中創(chuàng)建設(shè)施模型庫,建模插件從模型庫中調(diào)用模型并放置到相應(yīng)的位置即可。地下管網(wǎng)自動建模插件如圖2所示。
圖2 地下管網(wǎng)自動建模插件
本系統(tǒng)對IVE格式的三維建筑模型采用了分塊分層處理,共分3個層,分塊分層處理利用的是基于OSG開發(fā)的Builder工具,分層原理為按不同的壓縮率對模型的紋理貼圖進行圖像壓縮。對城市部件模型、管網(wǎng)模型采用了分塊處理,未作分層處理。利用VPB工具創(chuàng)建三維地形模型時已進行了分塊分層處理。此4種數(shù)據(jù)分塊處理所用的格網(wǎng)為城市1∶2 000地形圖圖廓。
系統(tǒng)采用VC2010平臺的MFC框架結(jié)合OSG引擎開發(fā),其界面如圖3所示。系統(tǒng)運行所用數(shù)據(jù)為天津市內(nèi)某區(qū)的三維模型數(shù)據(jù)及屬性數(shù)據(jù),數(shù)據(jù)量約50 G,由于用到了數(shù)據(jù)分塊分層處理及分頁動態(tài)調(diào)度從而實現(xiàn)了對海量數(shù)據(jù)的順暢加載及運行,系統(tǒng)在普通臺式機上即可運行,運行時內(nèi)存負載約為400 M。
圖3 城市三維GIS系統(tǒng)的界面
系統(tǒng)功能主要包括:三維瀏覽、場景漫游、信息查詢及標(biāo)注、興趣點收藏及定位、三維量測、空間分析、統(tǒng)計輸出及數(shù)據(jù)管理。
(1)三維瀏覽。場景視圖可放大、縮小,具有視角切換瀏覽功能、圖層控制功能,管網(wǎng)井蓋、影像底圖可動態(tài)顯示透明度。
(2)場景漫游。場景漫游方式有三種:軌跡球方式、步行方式及自定義路徑飛行方式。軌跡球方式為OSG自帶的。步行方式讓用戶以第一身份在三維場景中進行步行漫游,步行的高度面可升高、降低;為使步行漫游更真實,系統(tǒng)還設(shè)置了碰撞阻擋,即步行時碰觸到實體時不可越過只能繞行。自定義路徑飛行方式按設(shè)計路徑進行飛行漫游,飛行高度、速度可調(diào)節(jié),且具有飛行路徑錄制和回調(diào)功能,飛行漫游如圖4所示。不同漫游方式可無縫切換。
(3)屬性查看、信息查詢及文字標(biāo)注。屬性數(shù)據(jù)庫中存儲了地下管網(wǎng)齊全的屬性信息,還存儲了建筑的基本信息,三維模型與屬性數(shù)據(jù)通過唯一標(biāo)識符對應(yīng)。當(dāng)點擊某一模型實體時,憑借唯一標(biāo)識符通過SQL語言從屬性數(shù)據(jù)庫中檢索出對象并顯示其屬性??砂从脩粼O(shè)置的屬性條件通過SQL語言進行對象查詢,查詢過程如圖5所示,從查詢結(jié)果表中選中某個對象還可自動定位到該對象進行聚焦察看??蓪Ω信d趣地物(包括地名地址、單位名稱等)進行文字標(biāo)注,文字標(biāo)注采用HUD抬頭顯示技術(shù)實現(xiàn)了立體顯示。利用開源的OGR庫的接口讀取路網(wǎng)矢量文件,提取道路名稱并動態(tài)顯示一定視場內(nèi)的道路名稱注記。
圖4 飛行漫游
圖5 管線查詢及定位
(4)地點收藏及自動定位。地點收藏功能是將視窗中感興趣地點動態(tài)地添加到系統(tǒng)收藏夾,點擊收藏節(jié)點則自動定位到興趣地點上。對象的自動定位是通過對象的標(biāo)識符或地點的中心點坐標(biāo)跟蹤實現(xiàn)的,收藏地點的定位及信息查詢結(jié)果的定位用到了此功能。地點收藏及自動定位如圖6所示。此外系統(tǒng)還具有場景視窗抓屏功能。
圖6 地點收藏及自動定位
(5)三維量測,盾構(gòu)工程模擬,地面開挖分析、管網(wǎng)連通性分析。三維量測運用碰撞檢測方法,依據(jù)碰撞起始點的三維坐標(biāo)計算其距離,其功能如圖7所示。盾構(gòu)模擬是對城市地下空間進行隧道盾構(gòu)工程的模擬,觀察、檢測盾構(gòu)體與地下空間中已有地物的空間關(guān)系,可用于地下工程設(shè)計及施工輔助,如圖8所示。地面開挖分析可動態(tài)、直觀顯示出虛擬化的地面開挖效果,可用于地下工程輔助設(shè)計。連通性分析是在三維真實空間中展示、分析管線的連接關(guān)系及管線走向。
圖7 三維量測
圖8 盾構(gòu)工程模擬
(6)數(shù)據(jù)統(tǒng)計、專題圖表輸出,數(shù)據(jù)管理。通過SQL語言從數(shù)據(jù)庫中檢索出符合條件的景觀對象并進行統(tǒng)計,生成各種統(tǒng)計圖表并輸出。本系統(tǒng)還具有道路斷面圖繪制功能,其依據(jù)碰撞檢測原理檢測出道路斷面層上的所有管線對象并繪圖。數(shù)據(jù)管理功能是對系統(tǒng)中的空間數(shù)據(jù)及屬性數(shù)據(jù)進行維護和管理。
由于OSG具有高性能、免費的特點,將其應(yīng)用于城市三維GIS的開發(fā)可降低系統(tǒng)開發(fā)成本;并可擺脫對商業(yè)平臺底層的依賴,使得系統(tǒng)具有良好的擴展性。本文所介紹的城市三維GIS系統(tǒng)不僅具有三維瀏覽、場景漫游等可視化功能;還具有三維量測、信息查詢及統(tǒng)計,盾構(gòu)工程模擬,道路斷面分析,地點收藏及定位等功能,實現(xiàn)了對城市三維景觀的模擬、仿真,可用于對城市三維環(huán)境進行數(shù)字化管理。該系統(tǒng)可作為數(shù)字城市建設(shè)的一個環(huán)節(jié),為數(shù)字城市建設(shè)工作的開展提供了一個思路。
參考文獻
[1] 龔竟,張新長,唐楨.三維城市規(guī)劃輔助審批系統(tǒng)的設(shè)計與實現(xiàn)研究[J].測繪通報,2010(6):51~77.
[2] 陳穎彪,千慶蘭,陳健飛.基于GIS技術(shù)的城市三維景觀動態(tài)仿真技術(shù)研究[J].中國圖象圖形學(xué)報,2008,13 (1):176~183.
[3] 陳楚,段有林.淺談如何快速制作建筑模型[J].測繪與空間地理信息,2012,35(2):95~97.
[4] 韓哲,楊方廷,劉玉明.基于OSG的電子沙盤系統(tǒng)的研究與實現(xiàn)[J].計算機工程與設(shè)計,2012,33(4):1522~1527.
[5] 朱國敏,馬照亭,孫隆祥等.城市三維地理信息系統(tǒng)中海量數(shù)據(jù)的數(shù)據(jù)庫組織與管理[J].測繪科學(xué),2008,33 (1):238~240.
[6] 王銳,錢學(xué)雷.OpenSceneGraph三維渲染引擎設(shè)計與實踐[M].北京:清華大學(xué)出版社,2009:313~318.
[7] 羅勝.3ds max SDK插件開發(fā)技術(shù)[J].機床與液壓,2003 (6):242~244.
[8] 李清泉,嚴勇,楊必勝.地下管線的三維可視化研究[J].武漢大學(xué)學(xué)報·信息科學(xué)版,2003,28(3):277~282.
Design and Development of Urban 3D GIS System Based on OSG
Yin Zhiyong,Wang Tao,Xu Ying,Liu Qingtao
(Tianjin Institute of Surveying and Mapping,Tianjin 300381,China)
Abstract:Compared to 2D GIS system urban 3D GIS system has the advantage of intuitive and accuracy,it is an important step of digital urban construction.This paper designed architecture of urban 3D GIS system and introduced technical route of 3D GIS system building,two major parts which is data production and system development were detailedly presentated in this paper.In this application system the used data includes 3D terrain model,aboveground landscape 3D model,underground landscape 3D model and attribute database,and the core supporting technology of system development is OSG 3D engine.This paper prominently analysed OSG efficient organization and scheduling mechanism to massive data and demonstrated system software functions. Key words:urban 3D GIS system;OSG 3D engine;massive data;system development
文章編號:1672-8262(2015)01-52-04中圖分類號:P208.2
文獻標(biāo)識碼:A
收稿日期:?2014—07—21
作者簡介:尹志永(1974—),男,高級工程師,主要從事測繪技術(shù)開發(fā)與管理等工作。
基金項目:天津市濱海高新區(qū)智慧城市政府資源規(guī)劃管理決策移動查詢系統(tǒng)(XYGK2013021)