趙亞蓓,時建新
(1河南測繪職業(yè)學(xué)院,河南鄭州,450015; 2 中鐵七局集團(tuán)廣州工程有限公司,廣東廣州,510700)
目前地下管線的信息化水平發(fā)展不均衡,有些城市已建立了地下管線信息系統(tǒng),而有些城市比較落后,地下管線數(shù)據(jù)精度不高、資料不完整,不能實(shí)現(xiàn)動態(tài)更新。因此建立一個較為完善的城市地下管線三維可視化系統(tǒng)[1],是一個刻不容緩的問題。本文在前期對地下管線信息化建設(shè)情況調(diào)查研究的基礎(chǔ)上[2],重點(diǎn)針對地下管線三維可視化系統(tǒng)建設(shè)中的管線空間模型轉(zhuǎn)換、空間銜接等幾個關(guān)鍵技術(shù)進(jìn)行了相關(guān)研究。
管線可視化需要先對管線空間位置進(jìn)行模型轉(zhuǎn)換[3],在 OpenGL中,通過調(diào)用glRotate*()、glTranlate*()、glscale*()這三個進(jìn)行模型轉(zhuǎn)換的函數(shù)可以實(shí)現(xiàn)對管線的移動、旋轉(zhuǎn)或縮放等轉(zhuǎn)換。其中函數(shù)glRotate*(α,x,y,z)的功能是在物體繞原點(diǎn)到點(diǎn)(x,y,z)的直線矢量逆時針旋轉(zhuǎn)的過程中可以生成一個旋轉(zhuǎn)矩陣。利用圓柱函數(shù)、球函數(shù)和3Dmax模型分別來實(shí)現(xiàn)管線的直線部分、管線的結(jié)點(diǎn)和附屬設(shè)施的顯示。通過空間模型轉(zhuǎn)換可以使管線兩端點(diǎn)形成的向量與軸線相重合,如圖1所示。
圖1 管線模型變換圖
首先將模型變換所需的參數(shù)(α,x,y,z)的算出來:
設(shè)管線段兩端點(diǎn)的坐標(biāo)為A(x1,y1,z1),B(x2,y2,z2);
則圓柱的高度為:
如圖1所示,先把圓柱旋轉(zhuǎn)使圓柱的軸線與OB'相重合,然后再將圓柱平移x1,y1,z1,就和線AB相重合。管線的空間顯示代碼如下:
對管線進(jìn)行模型轉(zhuǎn)換[4]后,再對其空間位置進(jìn)行銜接。銜接的方法主要有以下兩種。
剪切面法是首先延長進(jìn)行空間銜接的管線的直線部分,再剪切掉多余的部分進(jìn)行銜接,如圖2所示。剪切面的代數(shù)方程為:
圖2 剪切面圖
圓環(huán)面法的優(yōu)勢是可以平滑過渡管線進(jìn)行自然銜接,可以利用OpenGL中的glutSolidTorus函數(shù)實(shí)現(xiàn)。實(shí)現(xiàn)的步驟如下:
2.2.1 模型轉(zhuǎn)換
首先對空間模型進(jìn)行轉(zhuǎn)換,如圖3所示:在OpenGL中,圓環(huán)面所在的平面表達(dá)式為:
圖3 圓環(huán)模型變換圖
設(shè)任意兩管段的向量為(a1,b1,c1)、(a2,b2,c2),其組成的平面方程為:
將圓環(huán)面平移到平面APB中。
聯(lián)立方程(7)(8)的交線方程 :
兩平面的夾角α即為兩平面垂線夾角,平面的垂線向量及夾角為:
平移量為:
其中 :(xp,yp,zp)為P點(diǎn)坐標(biāo) ;
r為圓環(huán)的內(nèi)半徑;
2.2.2 剪切面的確定
OpenGL中,附加的剪切面可以通過函數(shù)glClipPlane(Glenum plane,const Gldouble *equation)來實(shí)現(xiàn),其中參數(shù)equation可以表示一個數(shù)組,該數(shù)組包含四個元素;參數(shù)plane是用來指定剪切面的編號。剪切面方程為Ax+By+Cz+D=0,進(jìn)行剪切時,調(diào)用函數(shù)g1Enable(GL_CLIP_PLANEi)啟用剪切面,使附加剪切面產(chǎn)生剪切作用,得到剪切面的四個參數(shù)A、B、C和D。當(dāng)不再使用某剪切面時,通過調(diào)用函數(shù)g1Disable(GL_CLIP_PLANEi)來關(guān)閉該剪切面。當(dāng)管道的管徑不相同且管段之間沒有附屬物時,需要用無數(shù)圓環(huán)面進(jìn)行拼接[5],如圖4所示。
圖4 圓環(huán)組相接圖
繪制截面圖是為了研究管線的管徑、埋深、走向及相鄰管線的空間位置關(guān)系,包括橫斷面圖和縱斷面圖,橫斷面圖是垂直于管線切線方向的截面圖,縱斷面圖是沿著管線方向的截面圖。
繪制橫斷面圖需要對橫剖面數(shù)據(jù)進(jìn)行計算,首先計算出剖面線與空間管線的交點(diǎn)坐標(biāo),然后按一定比例生成截面圖。先將剖面線的起點(diǎn)、終點(diǎn)的屏幕坐標(biāo)轉(zhuǎn)換為世界坐標(biāo),然后再分別與各類管線求交點(diǎn),通過圖元ID與數(shù)據(jù)庫中的ID關(guān)聯(lián)進(jìn)行查詢, 可以得到管線兩端點(diǎn)的埋深,管線兩端點(diǎn)中任一點(diǎn)地埋深以及剖面線與管線交點(diǎn)處的地面高程、管底標(biāo)高等數(shù)據(jù)可以通過線性內(nèi)插求出。如果橫斷面圖的橫剖面線與x軸大致平行,將按每個數(shù)據(jù)的x坐標(biāo)由小到大的順序儲存在數(shù)組中;如果與Y軸大致平行,則按數(shù)據(jù)的Y軸坐標(biāo)從小到大的順序儲存在數(shù)組中。管徑從數(shù)據(jù)庫中取得,得到管線的三維坐標(biāo)和管徑后就可以以橫斷面線的起點(diǎn)作為原點(diǎn),橫斷面線作為橫坐標(biāo)軸,以管線的埋深作為縱坐標(biāo)建立坐標(biāo)系來畫剖面圖了。
繪制縱斷面圖需要對縱剖面數(shù)據(jù)進(jìn)行計算,重點(diǎn)是管線的坡度等數(shù)據(jù)的計算。具體計算方法是利用每條管線的兩個端點(diǎn)地面標(biāo)高計算出管線的坡度,這些標(biāo)高數(shù)據(jù)可以從屬性數(shù)據(jù)庫中獲取。以管線的埋深作為縱坐標(biāo),以管線的長度作為橫坐標(biāo),縱軸的比例尺可以選取橫軸比例尺的K倍,這樣能清楚地反映出管線的埋深情況。
繪制斷面圖的關(guān)鍵是要確定出原點(diǎn)及縱橫軸坐標(biāo)范圍,剖面線起點(diǎn)的坐標(biāo)即是剖面圖原點(diǎn)的坐標(biāo),橫軸坐標(biāo)的范圍是剖面線起點(diǎn)和終點(diǎn)之間的距離,所以要確定出剖面線起點(diǎn)的坐標(biāo)和終點(diǎn)的坐標(biāo),斷面圖的縱軸坐標(biāo)范圍是剖面線與各類管線交點(diǎn)的地面高程的最大值。管線斷面數(shù)據(jù)結(jié)構(gòu)的設(shè)計需要獲取管線的管徑、管頂高、管底高等屬性信息和交點(diǎn)的三維坐標(biāo)。設(shè)計如下:
B/S與C/S兩種架構(gòu)都有各自的優(yōu)缺點(diǎn),本文提出將二者相結(jié)合,實(shí)現(xiàn)優(yōu)勢互補(bǔ),充分發(fā)揮各自的優(yōu)點(diǎn)。地下管線數(shù)據(jù)的入庫、更新、利用、管理及空間分析等功能可以在C/S架構(gòu)下實(shí)現(xiàn);地下管線信息的瀏覽、查詢、簡單的統(tǒng)計分析等功能可以在B/S架構(gòu)下實(shí)現(xiàn)。根據(jù)地下管線數(shù)據(jù)的特征,B/S架構(gòu)采用三層結(jié)構(gòu),即前端瀏覽器、Web服務(wù)器和地圖應(yīng)用服務(wù)器、數(shù)據(jù)庫服務(wù)器,如圖5所示。
圖5 B/S三層架構(gòu)
構(gòu)成管線數(shù)據(jù)庫數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)主要分為專業(yè)管線數(shù)據(jù)和輔助數(shù)據(jù),專業(yè)管線數(shù)據(jù)根據(jù)管線種類進(jìn)行分層管理[6],主要分為給水層、排水層、電信層、暖氣層、熱力層、燃?xì)鈱?;輔助數(shù)據(jù)包括道路中線、邊線及附屬設(shè)施等。管線數(shù)據(jù)庫的結(jié)構(gòu)設(shè)計[7]如圖6所示。
圖6 地下管線數(shù)據(jù)結(jié)構(gòu)組織
城市地下管線三維可視化系統(tǒng)在應(yīng)用過程中應(yīng)能實(shí)時將新增的管線、改管或拆除等管線的變動情況,傳遞到系統(tǒng)平臺,利用動態(tài)更新機(jī)制把變化的管線信息在數(shù)據(jù)庫中進(jìn)行更新,使數(shù)據(jù)庫的信息與實(shí)際的管線信息同步。而進(jìn)行數(shù)據(jù)庫的動態(tài)更新,就要利用內(nèi)外業(yè)一體化技術(shù)[8],即在統(tǒng)一數(shù)據(jù)標(biāo)準(zhǔn)的基礎(chǔ)上,在管線數(shù)據(jù)采集、管線數(shù)據(jù)檢查、管線數(shù)據(jù)庫與模型庫四者之間建立完備的動態(tài)鏈接機(jī)制,盡量避免數(shù)據(jù)的重復(fù)生產(chǎn),關(guān)聯(lián)空間數(shù)據(jù)和屬性數(shù)據(jù),進(jìn)行數(shù)據(jù)快速入庫,具體流程如圖7所示。
圖7 數(shù)據(jù)庫動態(tài)更新機(jī)制流程圖
地下管線三維可視化系統(tǒng)設(shè)計的有與城市管理監(jiān)督指揮中心安全平臺軟件的接口,如某處熱力管線出現(xiàn)爆裂,安全平臺將啟動應(yīng)急處置預(yù)案,同時系統(tǒng)啟用事故分析功能,根據(jù)最佳路徑分析功能,進(jìn)行最近設(shè)施分析,查找最近閥門的位置,并通過緩沖區(qū)分析功能確定該故障所影響到的用戶范圍,快速制定出應(yīng)急搶修預(yù)案,在最短的時間內(nèi)關(guān)閉閥門并及時到現(xiàn)場開挖,把故障帶來的影響降至最低。進(jìn)行最佳路線分析時,系統(tǒng)平臺將各種管線、檢修井點(diǎn)、發(fā)生故障的地點(diǎn)等地圖要素加載到地圖控件中,這樣用戶輸入需要檢修的起點(diǎn)與終點(diǎn),利用最佳路徑算法,確定最佳路線。最近設(shè)施分析方法與最佳路徑相似,是在管線出現(xiàn)故障時,首先考慮各種管線的壓力和流向等特點(diǎn),然后設(shè)置查找方向、上游設(shè)施、下游設(shè)施,從而快速及時找到最近的閥門等設(shè)施,制定出合理的搶修方案。