王海濤,宋文浩,秦進(jìn)春
(1.西安測(cè)繪總站,陜西 西安710054;2.西安測(cè)繪研究所,陜西 西安710043)
基于ArcEngine的三維城市建模方法
王海濤1,宋文浩1,秦進(jìn)春1
(1.西安測(cè)繪總站,陜西 西安710054;2.西安測(cè)繪研究所,陜西 西安710043)
三維城市建模是進(jìn)行三維城市空間分析的基礎(chǔ),也是構(gòu)建“數(shù)字城市”的重要手段。研究了利用ArcEngine組件對(duì)象模型構(gòu)建三維城市模型的方法,將三維城市建模分為地上地物建模和地下管網(wǎng)建模,分別探討了通過幾何體拉伸、組合等操作構(gòu)建地上地物模型和通過圓柱體擬合構(gòu)建地下管線的方法,分析了利用3DMax軟件構(gòu)建三維管件模型的方法,通過實(shí)驗(yàn)驗(yàn)證了該方法的可行性,為城市規(guī)劃部門輔助決策提供依據(jù)。
ArcEngine;地上地物;地下管網(wǎng);建模
研究三維城市構(gòu)建方法在城市的現(xiàn)代化建設(shè)中具有很實(shí)際的意義[1]。一般而言,城市由地上場(chǎng)景和地下管網(wǎng)組成,二者相互協(xié)作才能保證城市的正常運(yùn)行,因此,三維城市建模分為地上場(chǎng)景建模和地下管網(wǎng)建模。ArcGIS提供Multipath數(shù)據(jù)模型用于描述地理空間中的三維對(duì)象,Multipatch數(shù)據(jù)模型是由具有三維坐標(biāo)的點(diǎn)按照一定順序組成的集合。由于點(diǎn)與點(diǎn)之間排列方式的不同,Multipath數(shù)據(jù)模型具有三角形、三角條帶、三角扇和環(huán)等4種類型[2]。
地理空間要素按類型可以分為點(diǎn)狀要素、線狀要素和面狀要素,點(diǎn)狀地物包括路燈、電話亭、樹等,ArcGIS符號(hào)庫中提供了大量點(diǎn)狀地物模型,可以滿足需求;線狀地物包括道路、河流等,這類地物的建模主要是通過獲取地物輪廓節(jié)點(diǎn),再將其組合成面狀模型,以元素(element)表達(dá);面狀地物主要指建筑物,需要獲取其在平面上的橫截面,再將該橫截面進(jìn)行拉伸組合就能得到建筑物的三維模型。
1)線狀要素三維建模方法。在二維矢量ShapeFile數(shù)據(jù)中,線狀要素均是以節(jié)點(diǎn)集合存儲(chǔ),因此,線狀要素建模首先要讀取線狀要素各節(jié)點(diǎn)坐標(biāo),將其轉(zhuǎn)化為多片(multipatch)的點(diǎn)集合,再獲取其三維高程信息,將二維點(diǎn)集合轉(zhuǎn)化為三維點(diǎn)集合,然后將該三維點(diǎn)集合以幾何對(duì)象(geometry)表示[3],最后將該幾何對(duì)象以多片的形式添加到三維場(chǎng)景中,具體流程如圖1所示。
2)面狀要素三維建模方法。面狀建筑物可以由其橫截面通過拉伸構(gòu)建,其一般思路是獲取建筑物輪廓橫截面坐標(biāo)頂點(diǎn)信息,組合構(gòu)成多邊形,對(duì)該多邊形進(jìn)行垂直拉伸,得到一個(gè)三維空間幾何體,將該幾何體以元素的形式添加到場(chǎng)景中,具體過程如圖2所示。
圖1 線要素建模流程圖
圖2 建筑物拉伸圖
城市地下管網(wǎng)紛亂復(fù)雜,如果對(duì)地下管網(wǎng)系統(tǒng)中所有管線和管件進(jìn)行建模,不僅嚴(yán)重影響建模效率,而且建成后的地下管網(wǎng)模型也會(huì)比較復(fù)雜。為了構(gòu)建美觀、高效、實(shí)用的城市地下管網(wǎng)三維模型,需要在保證視覺逼真效果的基礎(chǔ)上對(duì)地下管網(wǎng)進(jìn)行適當(dāng)簡化。簡化地下管網(wǎng)的關(guān)鍵有兩點(diǎn):一是簡化管線,二是抽象管線[4]。簡化管線的目的是舍去管網(wǎng)系統(tǒng)中重要性比較次要的支流管線,抽象管線是指將管網(wǎng)系統(tǒng)抽象為僅由直管和管件組成的系統(tǒng),因此,管網(wǎng)建??梢苑譃橹惫芙:凸芗5]。
2.1 直管建模。
本文采用ArcGIS提供的Multipath數(shù)據(jù)模型建立地下管線三維模型,將直管抽象為圓柱體,用正多邊形描述圓柱體,將正多邊形體上下面頂點(diǎn)交叉組合構(gòu)成三角條帶(Multipath對(duì)象),從而構(gòu)建出直管三維模型[6]。需要注意的是,頂點(diǎn)數(shù)量要保持適中,以便在減少運(yùn)算量的同時(shí)保證建模的逼真度。一般情況下,頂點(diǎn)數(shù)為8~10時(shí)既能有效提高建模效率,又能保證模型的逼真度。本文將直管抽象為正十邊圓柱體,如圖3所示。研究利用Multipath數(shù)據(jù)建模構(gòu)建直管模型的方法如下:
1)數(shù)據(jù)獲取。獲取管線要素類(featureClass),依次讀取每個(gè)管線要素(feature),獲取每條管線的起終點(diǎn)坐標(biāo)、管徑、埋設(shè)方式及長度等屬性信息。
2)頂點(diǎn)坐標(biāo)計(jì)算。利用ArcEngine提供的向量接口(IVector3D中的方法ConstructDifference)構(gòu)造管線起點(diǎn)A到終點(diǎn)B的向量利用該接口下的ConstructVector3D方法計(jì)算向量的垂直向量將管徑賦給將向量繞向量AB方向旋轉(zhuǎn)得到A2點(diǎn)坐標(biāo);依次類推,計(jì)算正十邊形上其他各頂點(diǎn)坐標(biāo)。
3)構(gòu)建三角條帶。選擇正十邊形底面圓上相鄰兩點(diǎn)A1、A2,在頂面圓上選擇與A1連線平行于AB的點(diǎn)B1,這三點(diǎn)A1A2B1構(gòu)成第一個(gè)三角片對(duì)象;以此類推,可以組成三角形B1B2A2、A2A3B2、B2B3A3等,每個(gè)三角片都是位于不同平面的多片,它們之間僅有一條公共邊線和兩個(gè)公共頂點(diǎn)連接,構(gòu)成了三角條帶,三角條帶首尾相連構(gòu)成了正圓柱體。
4)布置管線模型。根據(jù)管線類型對(duì)管線進(jìn)行顏色渲染,以便在三維場(chǎng)景中區(qū)分。將上述管線三維模型轉(zhuǎn)化為空間幾何對(duì)象(geometry),將管線模型以元素(element)的形式添加到三維場(chǎng)景中對(duì)應(yīng)的位置。利用起點(diǎn)A的坐標(biāo)計(jì)算出A1點(diǎn)坐標(biāo);計(jì)算正圓柱體每條邊對(duì)應(yīng)的圓心角∠A1AA2,利用空間旋轉(zhuǎn)接口(ITransform3D下的RotateVector3D方法)
圖3 直管三維建模構(gòu)造圖
2.2 管件建模
管件是城市地下管網(wǎng)系統(tǒng)中起控制、分流、連接、變向等作用的零部件。本文研究了運(yùn)用3DMax建模軟件構(gòu)建地下管網(wǎng)系統(tǒng)中管件三維模型的方法,將基本幾何體進(jìn)行拉伸、旋轉(zhuǎn)、組合等操作,構(gòu)建閥門、堵頭、彎頭、流量計(jì)、三通管等管件三維模型。將構(gòu)建好的三維管件模型(3ds文件)統(tǒng)一存儲(chǔ)在ArcGIS的style符號(hào)庫中。在構(gòu)建城市地下管網(wǎng)三維場(chǎng)景時(shí),參考管線連接相關(guān)規(guī)范及管件連接標(biāo)準(zhǔn),綜合考慮管線交叉處的管線個(gè)數(shù)、管徑和流向等情況,選用合適的三維管件模型,調(diào)整管件模型的位置和大小,使其與直管完好匹配。
城市三維場(chǎng)景建模的數(shù)據(jù)源是地上地物二維矢量Shapefile數(shù)據(jù),該數(shù)據(jù)主要分字段描述地上要素的相關(guān)屬性。本文以某市地下管線普查數(shù)據(jù)為數(shù)據(jù)源,利用ArcEngine數(shù)據(jù)模型與C#編程實(shí)現(xiàn)了三維城市建模的實(shí)驗(yàn)驗(yàn)證,具體步驟如下:
1)讀取地上地物要素類(featureClass),判斷要素類型,選擇合適的點(diǎn)線面建模方法,將模型添加到三維場(chǎng)景中。
2)讀取地下管線要素類,將其劃分為正十邊體,計(jì)算圓柱體頂點(diǎn)坐標(biāo),擬合直管模型,將其添加到三維場(chǎng)景中。
3)利用3DMax軟件構(gòu)建常用管點(diǎn)三維模型,將其存儲(chǔ)于ArcGIS符號(hào)庫,根據(jù)管點(diǎn)的類型調(diào)用合適的管點(diǎn)模型,讀取管點(diǎn)位置信息,將模型添加到該位置處。
4)通過上述3個(gè)步驟,構(gòu)建出三維城市場(chǎng)景,地上部分如圖4,地下部分如圖5。
圖4 地上三維場(chǎng)景圖
圖5 地下管網(wǎng)三維場(chǎng)景圖
現(xiàn)代化的城市GIS系統(tǒng)往往要具備三維可視化及三維空間分析功能,而這些功能的構(gòu)建都是以三維城市可視化為基礎(chǔ)。本文重點(diǎn)研究了利用ArcEngine組件對(duì)象模型構(gòu)建三維城市的方法,解決了城市三維可視化過程中的若干關(guān)鍵技術(shù)問題,為相關(guān)個(gè)人及組織進(jìn)行城市三維可視化方面的研究提供參考。
[1] 余慧明.城市地下管網(wǎng)綜合地理信息系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].鄭州:信息工程大學(xué),2007
[2] 李培軍.基于GIS的地下管網(wǎng)可視化研究[D].鄭州:信息工程大學(xué),2006
[3] 嚴(yán)勇.地下管線的三維可視化研究[D].武漢:武漢大學(xué),2003
[4] 常河.Google ShetchUp與ArcGIS在城市三維地下綜合管網(wǎng)中的應(yīng)用研究[D].云南:昆明理工大學(xué),2008
[5] 孟祥華.管線三維可視化管理系統(tǒng)中的拓?fù)浞治雠c實(shí)現(xiàn)[D].青島:山東大學(xué),2012
[6] 杜國明,龔健雅,熊漢江,等.城市三維管網(wǎng)的可視化及其功能實(shí)現(xiàn)的關(guān)鍵技術(shù)[J].武漢大學(xué)學(xué)報(bào)(信息科學(xué)版),2002,27(5):534-537
[7] 彭強(qiáng)勇,周衛(wèi),張彥彥,等.基于ArcEngine的地圖整飾功能的實(shí)現(xiàn)[J].現(xiàn)代測(cè)繪,2007,30(4):42-44
P208
B文章編號(hào):1672-4623(2017)06-0090-03
10.3969/j.issn.1672-4623.2017.06.028
王海濤,碩士,研究方向?yàn)镚IS開發(fā)與地理信息服務(wù)。
2016-02-25。
項(xiàng)目來源:國家自然科學(xué)基金資助項(xiàng)目(41301526)。