尹志永,王濤,徐瑩,劉慶濤(天津市測(cè)繪院,天津 300381)
基于OSG的城市三維GIS系統(tǒng)的初步設(shè)計(jì)與開(kāi)發(fā)
尹志永?,王濤,徐瑩,劉慶濤
(天津市測(cè)繪院,天津 300381)
摘 要:相對(duì)于二維GIS系統(tǒng),城市三維GIS系統(tǒng)具有直觀、準(zhǔn)確的優(yōu)點(diǎn),是數(shù)字城市建設(shè)的一個(gè)重要環(huán)節(jié)。基于OSG引擎,設(shè)計(jì)了一個(gè)城市三維GIS系統(tǒng),詳細(xì)闡述數(shù)據(jù)制作和系統(tǒng)開(kāi)發(fā)兩大部分,系統(tǒng)數(shù)據(jù)包含三維地形模型、地上地下景觀三維模型和屬性數(shù)據(jù);重點(diǎn)分析了OSG對(duì)海量數(shù)據(jù)的高效組織和調(diào)度機(jī)制,最后對(duì)系統(tǒng)的軟件功能予以展示。
關(guān)鍵詞:城市三維GIS系統(tǒng);OSG三維引擎;海量數(shù)據(jù);系統(tǒng)開(kāi)發(fā)
二維GIS由于具有數(shù)據(jù)管理完善、空間分析查詢功能實(shí)用[1]的特點(diǎn)已廣泛應(yīng)用于現(xiàn)代城市的交通、規(guī)劃、公安、環(huán)境監(jiān)測(cè)、土地管理等領(lǐng)域。但由于城市是處在三維空間中[2],這使得以平面圖形作載體的二維GIS系統(tǒng)近年來(lái)已顯示出不足,現(xiàn)代社會(huì)管理的發(fā)展要求建立城市三維GIS系統(tǒng)。
城市三維GIS技術(shù)是將虛擬現(xiàn)實(shí)技術(shù)用于城市環(huán)境及資源的仿真,對(duì)城市的真實(shí)地形、地上地下景觀進(jìn)行數(shù)字化三維模擬,給用戶提供一個(gè)與真實(shí)城市一致的虛擬城市環(huán)境,具有三維瀏覽、三維空間分析、信息檢索、輔助設(shè)計(jì)等功能。在三維GIS系統(tǒng)中,用戶能以動(dòng)態(tài)交互的方式對(duì)城市立體環(huán)境進(jìn)行身臨其境的接觸、觀察。利用其立體化、數(shù)字化特點(diǎn),為城市建設(shè)等領(lǐng)域提供直觀、準(zhǔn)確的空間信息,提高城市空間信息的利用水平,從而實(shí)現(xiàn)城市管理的高效率。
城市三維GIS系統(tǒng)的建立過(guò)程包括資料收集、數(shù)據(jù)處理及三維模型建立、系統(tǒng)開(kāi)發(fā)三個(gè)步驟。
2.1數(shù)據(jù)處理及三維建模
系統(tǒng)運(yùn)用的數(shù)據(jù)包括三維模型、二維矢量數(shù)據(jù)及景觀物屬性數(shù)據(jù)。三維模型包括三維地形模型、建筑及城市部件三維模型、地下管網(wǎng)三維模型。二維矢量數(shù)據(jù)為城市路網(wǎng)數(shù)據(jù),用以在三維場(chǎng)景中動(dòng)態(tài)顯示路名標(biāo)注。景觀物包括地下管網(wǎng)和地上建筑,其屬性數(shù)據(jù)為二維關(guān)系表,與景觀物的三維模型是一一對(duì)應(yīng)的并通過(guò)唯一的ID聯(lián)系。
三維地形模型是DOM與DEM融合而成的,作為系統(tǒng)的立體影像底圖使用,其構(gòu)建可利用開(kāi)源工具VirtualPlanetBuilder(簡(jiǎn)稱(chēng)VPB)。建筑及部件三維模型的制作可利用3ds Max等建模軟件,底圖數(shù)據(jù)是現(xiàn)勢(shì)性強(qiáng)的1∶500比例尺地形圖,制作方式以人工為主,其中利用MAX Script腳本語(yǔ)言實(shí)現(xiàn)了建筑模型的快速制作[3]。地下管網(wǎng)三維模型則是利用自主開(kāi)發(fā)的3ds Max建模插件,依據(jù)管網(wǎng)測(cè)繪資料完成自動(dòng)建模工作。
2.2系統(tǒng)開(kāi)發(fā)
系統(tǒng)框架由數(shù)據(jù)層、驅(qū)動(dòng)層和應(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ù)。對(duì)三維模型數(shù)據(jù)采用了文件式管理,其格式為OpenSceneGraph(簡(jiǎn)稱(chēng)OSG)支持的二進(jìn)制IVE格式,采用此格式文件讀取速度快。對(duì)管網(wǎng)屬性數(shù)據(jù)、建筑基本信息數(shù)據(jù)、路網(wǎng)矢量數(shù)據(jù)進(jìn)行數(shù)據(jù)庫(kù)管理,采用的數(shù)據(jù)庫(kù)軟件為SQL Server。
(2)驅(qū)動(dòng)層。采用OSG三維引擎對(duì)三維數(shù)據(jù)進(jìn)行渲染和顯示,為用戶提供一個(gè)三維、動(dòng)態(tài)、交互式的仿真環(huán)境。OSG是一套開(kāi)源的三維場(chǎng)景開(kāi)發(fā)庫(kù),其特點(diǎn)是將OpenGL的底層代碼封裝成易操作的接口[4],使程序員能高效地創(chuàng)建高性能的三維圖形系統(tǒng)。
(3)應(yīng)用層。具有三維景觀模型在三維地形環(huán)境下的三維瀏覽、場(chǎng)景漫游、數(shù)據(jù)查詢、空間分析等功能。
2.3關(guān)鍵技術(shù)
由于要管理海量的高分辨率影像和三維景觀模型,三維數(shù)據(jù)的組織、顯示是城市三維GIS技術(shù)的核心問(wèn)題,目前普遍采用了數(shù)據(jù)制作過(guò)程中進(jìn)行分塊、分層處理[5],系統(tǒng)運(yùn)行中動(dòng)態(tài)調(diào)用數(shù)據(jù)的技術(shù)。數(shù)據(jù)分塊是對(duì)三維數(shù)據(jù)進(jìn)行網(wǎng)格化切分,使用時(shí)根據(jù)場(chǎng)景視點(diǎn)位置實(shí)時(shí)調(diào)用所需的數(shù)據(jù)塊。數(shù)據(jù)分層指建立多層次、多分辨率的三維模型,使用時(shí)依據(jù)視點(diǎn)距離動(dòng)態(tài)調(diào)用適當(dāng)分辨率的模型,通常是視距短時(shí)調(diào)用高分辨率、精細(xì)度高的模型,反之則調(diào)用精細(xì)度低的模型。通常系統(tǒng)運(yùn)行時(shí)分塊數(shù)據(jù)與分層數(shù)據(jù)是配合調(diào)用的。
此外數(shù)據(jù)的分頁(yè)動(dòng)態(tài)調(diào)度尤為重要,即在顯示當(dāng)前視域場(chǎng)景的同時(shí),預(yù)判下一步要載入的數(shù)據(jù),做出正確的數(shù)據(jù)加載和卸載處理[6],確保內(nèi)存中始終維持硬件系統(tǒng)能承載的數(shù)據(jù)額度,并保證無(wú)重要信息的丟失或場(chǎng)景顯示遲緩的現(xiàn)象。
2.4OSG的特點(diǎn)
OSG使用OpenGL底層渲染API,并由一系列高性能的三維圖形學(xué)功能模塊組成,主要為三維圖形圖像系統(tǒng)的開(kāi)發(fā)提供場(chǎng)景管理和圖形渲染的功能。OSG的核心代碼支持場(chǎng)景裁剪技術(shù)、細(xì)節(jié)層次節(jié)點(diǎn)LOD技術(shù)、場(chǎng)景的動(dòng)態(tài)調(diào)度、多線程渲染等技術(shù),這使得OSG成為高性能的三維圖形引擎。隨著虛擬仿真技術(shù)的發(fā)展,OSG已在三維GIS、計(jì)算機(jī)輔助設(shè)計(jì)、科學(xué)與工程數(shù)據(jù)可視化、網(wǎng)絡(luò)游戲等多個(gè)行業(yè)得到廣泛應(yīng)用。
基于OSG引擎開(kāi)發(fā)三維圖形系統(tǒng)所用到的關(guān)鍵技術(shù)有:
(1)LOD(level of details)。LOD是較有代表性的數(shù)據(jù)分層技術(shù),采用LOD技術(shù)當(dāng)視域覆蓋范圍廣時(shí),可用粗略三維模型繪制,這樣既不影響視覺(jué)效果又可提高繪制效率。
(2)分頁(yè)動(dòng)態(tài)調(diào)度。OSG中的分頁(yè)數(shù)據(jù)庫(kù)DatabasePager類(lèi)可對(duì)三維數(shù)據(jù)自動(dòng)執(zhí)行動(dòng)態(tài)調(diào)度,前提是其處理對(duì)象須為分頁(yè)LOD節(jié)點(diǎn)(即PagedLOD),即三維模型數(shù)據(jù)成為PagedLOD節(jié)點(diǎn)后能滿足程序?qū)?shù)據(jù)的動(dòng)態(tài)調(diào)度要求。實(shí)際上,用VPB工具創(chuàng)建的三維地形模型即為PagedLOD類(lèi)型數(shù)據(jù),可供程序直接動(dòng)態(tài)調(diào)用;對(duì)其他非PagedLOD節(jié)點(diǎn)類(lèi)型的三維模型,需將加載進(jìn)的多層三維模型設(shè)置為PagedLOD節(jié)點(diǎn)方可實(shí)現(xiàn)其的動(dòng)態(tài)調(diào)度。
(3)碰撞檢測(cè)。其原理為:從當(dāng)前視點(diǎn)出發(fā),沿指定方向引一條測(cè)試線,將測(cè)試線與場(chǎng)景實(shí)體進(jìn)行相交測(cè)試,得到碰撞實(shí)體是否存在、碰撞點(diǎn)三維坐標(biāo)、碰撞實(shí)體ID等信息。本系統(tǒng)中運(yùn)用碰撞檢測(cè)可實(shí)現(xiàn)屬性查看、三維量測(cè)、道路斷面圖及漫游中的碰撞阻擋等功能。
3.1三維地形
VPB是基于OSG和GDAL的用于構(gòu)建海量三維地形的第三方工具,VPB是開(kāi)源工具,利用VPB基于DOM和DEM可快速生成分塊、分層的三維地形模型,且具有TB級(jí)的處理能力。利用VPB生成的三維地形模型為IVE格式,可快速加載到OSG場(chǎng)景中供瀏覽和漫游。VPB支持多線程作業(yè),可根據(jù)CPU個(gè)數(shù)和性能合理分配系統(tǒng)資源從而提高三維模型的生成效率。
3.2建筑模型和部件模型
建筑模型、部件模型是城市三維GIS系統(tǒng)必要的數(shù)據(jù),模型的建立在3ds Max中依靠人工制作完成,將已確定高程基準(zhǔn)面的建筑、部件模型分別導(dǎo)入到3ds Max 中,逐個(gè)對(duì)模型進(jìn)行紋理貼圖、擺放等處理,得到空間位置準(zhǔn)確、視覺(jué)效果真實(shí)的三維模型。最后,利用免費(fèi)的OSGEXP插件將三維模型整體導(dǎo)出為IVE文件。
本文采用了建筑三維模型的快速建立方法,即利用數(shù)字?jǐn)z影測(cè)量工作站,基于數(shù)字航拍影像采集建筑外觀特征的三維點(diǎn)線面,再使用MAX Script腳本語(yǔ)言快速構(gòu)建建筑三維模型。
3.3地下管網(wǎng)模型
管網(wǎng)三維建模利用的是基于3ds Max SDK技術(shù)開(kāi)發(fā)的自動(dòng)建模插件[7]。自動(dòng)建模插件開(kāi)發(fā)的原理是:從屬性文件提取管點(diǎn)三維坐標(biāo)和管線的尺寸、材質(zhì)、埋設(shè)方式等信息,計(jì)算管線的空間位置、走向及形狀,調(diào)用3ds Max SDK的相應(yīng)接口生成與實(shí)地相符的圓柱體或立方體形狀的管線模型,并對(duì)管線模型進(jìn)行紋理渲染對(duì)造型各異的管線井、出地設(shè)備等設(shè)施,首先在3ds Max中創(chuàng)建設(shè)施模型庫(kù),建模插件從模型庫(kù)中調(diào)用模型并放置到相應(yīng)的位置即可。地下管網(wǎng)自動(dòng)建模插件如圖2所示。

圖2 地下管網(wǎng)自動(dòng)建模插件
本系統(tǒng)對(duì)IVE格式的三維建筑模型采用了分塊分層處理,共分3個(gè)層,分塊分層處理利用的是基于OSG開(kāi)發(fā)的Builder工具,分層原理為按不同的壓縮率對(duì)模型的紋理貼圖進(jìn)行圖像壓縮。對(duì)城市部件模型、管網(wǎng)模型采用了分塊處理,未作分層處理。利用VPB工具創(chuàng)建三維地形模型時(shí)已進(jìn)行了分塊分層處理。此4種數(shù)據(jù)分塊處理所用的格網(wǎng)為城市1∶2 000地形圖圖廓。
系統(tǒng)采用VC2010平臺(tái)的MFC框架結(jié)合OSG引擎開(kāi)發(fā),其界面如圖3所示。系統(tǒng)運(yùn)行所用數(shù)據(jù)為天津市內(nèi)某區(qū)的三維模型數(shù)據(jù)及屬性數(shù)據(jù),數(shù)據(jù)量約50 G,由于用到了數(shù)據(jù)分塊分層處理及分頁(yè)動(dòng)態(tài)調(diào)度從而實(shí)現(xiàn)了對(duì)海量數(shù)據(jù)的順暢加載及運(yùn)行,系統(tǒng)在普通臺(tái)式機(jī)上即可運(yùn)行,運(yùn)行時(shí)內(nèi)存負(fù)載約為400 M。

圖3 城市三維GIS系統(tǒng)的界面
系統(tǒng)功能主要包括:三維瀏覽、場(chǎng)景漫游、信息查詢及標(biāo)注、興趣點(diǎn)收藏及定位、三維量測(cè)、空間分析、統(tǒng)計(jì)輸出及數(shù)據(jù)管理。
(1)三維瀏覽。場(chǎng)景視圖可放大、縮小,具有視角切換瀏覽功能、圖層控制功能,管網(wǎng)井蓋、影像底圖可動(dòng)態(tài)顯示透明度。
(2)場(chǎng)景漫游。場(chǎng)景漫游方式有三種:軌跡球方式、步行方式及自定義路徑飛行方式。軌跡球方式為OSG自帶的。步行方式讓用戶以第一身份在三維場(chǎng)景中進(jìn)行步行漫游,步行的高度面可升高、降低;為使步行漫游更真實(shí),系統(tǒng)還設(shè)置了碰撞阻擋,即步行時(shí)碰觸到實(shí)體時(shí)不可越過(guò)只能繞行。自定義路徑飛行方式按設(shè)計(jì)路徑進(jìn)行飛行漫游,飛行高度、速度可調(diào)節(jié),且具有飛行路徑錄制和回調(diào)功能,飛行漫游如圖4所示。不同漫游方式可無(wú)縫切換。
(3)屬性查看、信息查詢及文字標(biāo)注。屬性數(shù)據(jù)庫(kù)中存儲(chǔ)了地下管網(wǎng)齊全的屬性信息,還存儲(chǔ)了建筑的基本信息,三維模型與屬性數(shù)據(jù)通過(guò)唯一標(biāo)識(shí)符對(duì)應(yīng)。當(dāng)點(diǎn)擊某一模型實(shí)體時(shí),憑借唯一標(biāo)識(shí)符通過(guò)SQL語(yǔ)言從屬性數(shù)據(jù)庫(kù)中檢索出對(duì)象并顯示其屬性。可按用戶設(shè)置的屬性條件通過(guò)SQL語(yǔ)言進(jìn)行對(duì)象查詢,查詢過(guò)程如圖5所示,從查詢結(jié)果表中選中某個(gè)對(duì)象還可自動(dòng)定位到該對(duì)象進(jìn)行聚焦察看。可對(duì)感興趣地物(包括地名地址、單位名稱(chēng)等)進(jìn)行文字標(biāo)注,文字標(biāo)注采用HUD抬頭顯示技術(shù)實(shí)現(xiàn)了立體顯示。利用開(kāi)源的OGR庫(kù)的接口讀取路網(wǎng)矢量文件,提取道路名稱(chēng)并動(dòng)態(tài)顯示一定視場(chǎng)內(nèi)的道路名稱(chēng)注記。

圖4 飛行漫游

圖5 管線查詢及定位
(4)地點(diǎn)收藏及自動(dòng)定位。地點(diǎn)收藏功能是將視窗中感興趣地點(diǎn)動(dòng)態(tài)地添加到系統(tǒng)收藏夾,點(diǎn)擊收藏節(jié)點(diǎn)則自動(dòng)定位到興趣地點(diǎn)上。對(duì)象的自動(dòng)定位是通過(guò)對(duì)象的標(biāo)識(shí)符或地點(diǎn)的中心點(diǎn)坐標(biāo)跟蹤實(shí)現(xiàn)的,收藏地點(diǎn)的定位及信息查詢結(jié)果的定位用到了此功能。地點(diǎn)收藏及自動(dòng)定位如圖6所示。此外系統(tǒng)還具有場(chǎng)景視窗抓屏功能。

圖6 地點(diǎn)收藏及自動(dòng)定位
(5)三維量測(cè),盾構(gòu)工程模擬,地面開(kāi)挖分析、管網(wǎng)連通性分析。三維量測(cè)運(yùn)用碰撞檢測(cè)方法,依據(jù)碰撞起始點(diǎn)的三維坐標(biāo)計(jì)算其距離,其功能如圖7所示。盾構(gòu)模擬是對(duì)城市地下空間進(jìn)行隧道盾構(gòu)工程的模擬,觀察、檢測(cè)盾構(gòu)體與地下空間中已有地物的空間關(guān)系,可用于地下工程設(shè)計(jì)及施工輔助,如圖8所示。地面開(kāi)挖分析可動(dòng)態(tài)、直觀顯示出虛擬化的地面開(kāi)挖效果,可用于地下工程輔助設(shè)計(jì)。連通性分析是在三維真實(shí)空間中展示、分析管線的連接關(guān)系及管線走向。

圖7 三維量測(cè)

圖8 盾構(gòu)工程模擬
(6)數(shù)據(jù)統(tǒng)計(jì)、專(zhuān)題圖表輸出,數(shù)據(jù)管理。通過(guò)SQL語(yǔ)言從數(shù)據(jù)庫(kù)中檢索出符合條件的景觀對(duì)象并進(jìn)行統(tǒng)計(jì),生成各種統(tǒng)計(jì)圖表并輸出。本系統(tǒng)還具有道路斷面圖繪制功能,其依據(jù)碰撞檢測(cè)原理檢測(cè)出道路斷面層上的所有管線對(duì)象并繪圖。數(shù)據(jù)管理功能是對(duì)系統(tǒng)中的空間數(shù)據(jù)及屬性數(shù)據(jù)進(jìn)行維護(hù)和管理。
由于OSG具有高性能、免費(fèi)的特點(diǎn),將其應(yīng)用于城市三維GIS的開(kāi)發(fā)可降低系統(tǒng)開(kāi)發(fā)成本;并可擺脫對(duì)商業(yè)平臺(tái)底層的依賴(lài),使得系統(tǒng)具有良好的擴(kuò)展性。本文所介紹的城市三維GIS系統(tǒng)不僅具有三維瀏覽、場(chǎng)景漫游等可視化功能;還具有三維量測(cè)、信息查詢及統(tǒng)計(jì),盾構(gòu)工程模擬,道路斷面分析,地點(diǎn)收藏及定位等功能,實(shí)現(xiàn)了對(duì)城市三維景觀的模擬、仿真,可用于對(duì)城市三維環(huán)境進(jìn)行數(shù)字化管理。該系統(tǒng)可作為數(shù)字城市建設(shè)的一個(gè)環(huán)節(jié),為數(shù)字城市建設(shè)工作的開(kāi)展提供了一個(gè)思路。
參考文獻(xiàn)
[1] 龔竟,張新長(zhǎng),唐楨.三維城市規(guī)劃輔助審批系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)研究[J].測(cè)繪通報(bào),2010(6):51~77.
[2] 陳穎彪,千慶蘭,陳健飛.基于GIS技術(shù)的城市三維景觀動(dòng)態(tài)仿真技術(shù)研究[J].中國(guó)圖象圖形學(xué)報(bào),2008,13 (1):176~183.
[3] 陳楚,段有林.淺談如何快速制作建筑模型[J].測(cè)繪與空間地理信息,2012,35(2):95~97.
[4] 韓哲,楊方廷,劉玉明.基于OSG的電子沙盤(pán)系統(tǒng)的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2012,33(4):1522~1527.
[5] 朱國(guó)敏,馬照亭,孫隆祥等.城市三維地理信息系統(tǒng)中海量數(shù)據(jù)的數(shù)據(jù)庫(kù)組織與管理[J].測(cè)繪科學(xué),2008,33 (1):238~240.
[6] 王銳,錢(qián)學(xué)雷.OpenSceneGraph三維渲染引擎設(shè)計(jì)與實(shí)踐[M].北京:清華大學(xué)出版社,2009:313~318.
[7] 羅勝.3ds max SDK插件開(kāi)發(fā)技術(shù)[J].機(jī)床與液壓,2003 (6):242~244.
[8] 李清泉,嚴(yán)勇,楊必勝.地下管線的三維可視化研究[J].武漢大學(xué)學(xué)報(bào)·信息科學(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
文章編號(hào):1672-8262(2015)01-52-04中圖分類(lèi)號(hào):P208.2
文獻(xiàn)標(biāo)識(shí)碼:A
收稿日期:?2014—07—21
作者簡(jiǎn)介:尹志永(1974—),男,高級(jí)工程師,主要從事測(cè)繪技術(shù)開(kāi)發(fā)與管理等工作。
基金項(xiàng)目:天津市濱海高新區(qū)智慧城市政府資源規(guī)劃管理決策移動(dòng)查詢系統(tǒng)(XYGK2013021)