劉一飛 江文萍 馬家俊 黃欣然 夏竹君
(1.武漢大學(xué) 資源與環(huán)境科學(xué)學(xué)院, 湖北 武漢 430079; 2.中國(guó)地質(zhì)大學(xué)(武漢)地理與信息工程學(xué)院, 湖北 武漢 430074)
當(dāng)今,隨著城市化進(jìn)程不斷加劇,傳統(tǒng)的平面交通道路不足以滿足急劇增多的機(jī)動(dòng)車通行需求,修建越來(lái)越多的立交橋,以緩解擁堵,提高城市交通水平,立交橋?qū)τ诔鞘邪l(fā)展有重大意義[1]。隨著立交橋數(shù)量的不斷增多,其三維可視化也成為數(shù)字城市、智慧交通和三維地理信息系統(tǒng)等領(lǐng)域的重要課題。各類立體交通設(shè)施不斷發(fā)展,為了更大化地提高交通運(yùn)輸效率,根據(jù)不同的地形與地理位置環(huán)境,各式各樣的立交橋被修建[2]。一些復(fù)雜立交橋甚至難以用平面圖進(jìn)行表達(dá),因此,對(duì)立交橋三維模型構(gòu)建有了更高的要求。
目前主要的立交橋三維模型構(gòu)建方法為依靠人工使用計(jì)算機(jī)輔助設(shè)計(jì)等方式手動(dòng)建模[3],以及使用車載、機(jī)載等平臺(tái)搭載遙感傳感器進(jìn)行數(shù)據(jù)采集并建模[4-5]。對(duì)于人工建模法,雖然能夠構(gòu)建出效果逼真、精細(xì)的立交橋模型,但建模過(guò)程需要耗費(fèi)大量的人力和時(shí)間[6]。對(duì)于遙感類的建模方法,雖然能實(shí)現(xiàn)模型的高效構(gòu)建,但是需要進(jìn)行額外的外業(yè)作業(yè)并投入大量的物力資源[7]。為此,亟須一種效率高、低成本的三維立交橋模型構(gòu)建方法。
相比于三維地理信息數(shù)據(jù),二維基礎(chǔ)測(cè)繪測(cè)量數(shù)據(jù)和數(shù)字表面模型(Digital Surface Model,DSM)數(shù)據(jù)較為容易獲取。因而,本文提出了一種利用立交橋中心線及相應(yīng)寬度、立交橋范圍的數(shù)字表面模型進(jìn)行復(fù)雜立交橋三維模型快速構(gòu)建的算法和方案,基于三維開(kāi)源圖形渲染引擎(OpenSceneGraph, OSG)實(shí)現(xiàn)立交橋面模型的自動(dòng)化構(gòu)建和顯示。
立交橋形式多種多樣。通常情況下,可按相交道路是否互通分為分離式立交和互通式立交。而互通式立交又可分為完全互通式立交和部分互通式立交[8]。完全互通式立交涉及多條車道交錯(cuò),直接根據(jù)俯視圖較難對(duì)其車道走向進(jìn)行直接辨識(shí)。而且多數(shù)完全互通式立交為多枝多層,利用傳統(tǒng)方法對(duì)這類立交橋建模更為困難。完全互通式立交橋按照外形劃分,其代表有苜蓿葉形、菱形、喇叭形等[9]。因此,為說(shuō)明建模方案的有效性與適用性,本文選取較為復(fù)雜的苜蓿葉形與菱形立交進(jìn)行建模分析。實(shí)驗(yàn)數(shù)據(jù)形態(tài)(中心線)俯視如圖1所示。
圖1 立交橋俯視圖
立交橋中心線及中心線對(duì)應(yīng)的立交橋?qū)挾容^易獲取,進(jìn)而采用立交橋區(qū)域位置的DSM數(shù)據(jù),處理得到含有高程信息的點(diǎn)要素?cái)?shù)據(jù)[10]。因此,本文方法立交橋面建模選用的數(shù)據(jù)為帶有寬度字段的立交橋中心線Shape格式折線數(shù)據(jù),以及立交橋區(qū)域內(nèi)帶有高程字段的Shape格式離散點(diǎn)數(shù)據(jù),如表1所示。
表1 立交橋建模所需數(shù)據(jù)
由于互通式立交橋整體相對(duì)復(fù)雜,為更加準(zhǔn)確地說(shuō)明立交橋建模流程和算法,本章節(jié)選取一段立交橋局部區(qū)域詳細(xì)說(shuō)明立交橋面模型構(gòu)建。
由立交橋中心線及橋面寬度屬性可確定立交橋二維形態(tài)。為使立交橋中心線數(shù)據(jù)在三維層面延展,可根據(jù)高程點(diǎn)數(shù)據(jù)對(duì)其高程進(jìn)行提取、計(jì)算和賦值。因?yàn)榕c橋面位置范圍一致的高程點(diǎn)所表達(dá)的高程信息為橋面的真實(shí)高程,所以首先要將上述與橋面的位置范圍一致的高程點(diǎn)進(jìn)行篩選。
對(duì)全部高程點(diǎn)初篩,得到立交橋外接矩形范圍內(nèi)的高程點(diǎn)集P。然后,分別計(jì)算高程點(diǎn)集P中每個(gè)高程點(diǎn)Pi到每條立交橋中心線Lj的距離。因Lj是由多段折線構(gòu)成的折線段,所以需要求Pi到Lj中每一折線段的距離,并記dij為Pi到Lj中各線段距離的最小者。如圖2所示的局部區(qū)域,分別計(jì)算P1到線L1和L2中各線段的距離,用虛線表示。其中點(diǎn)到折線段最近距離用更深顏色的虛線標(biāo)出,并分別標(biāo)記為d11和d12。設(shè)立交橋中心線段Lj寬度的一半為wj,若dij≤wj,則認(rèn)為高程點(diǎn)Pi為立交橋中心線段Lj的有效高程點(diǎn),并將Pi與Lj互稱相關(guān)。在圖2的示例中,P1與L2相關(guān)。
圖2 橋面相關(guān)高程點(diǎn)的計(jì)算
圖3 高程點(diǎn)的吸附計(jì)算
根據(jù)求得的實(shí)際高程點(diǎn),經(jīng)線性內(nèi)插法,得到立交橋的整體高程情況[11]。以每一條立交橋中心線端點(diǎn)作為起點(diǎn),對(duì)每一條線建立道路線性參考坐標(biāo)系[12]。在線性坐標(biāo)系下,可計(jì)算出上文中求得的立交橋中心線實(shí)際高程點(diǎn)的線性參考坐標(biāo)值。再利用線性坐標(biāo),找到距離每一折線段節(jié)點(diǎn)最近,即線性坐標(biāo)差值最小的前后兩高程點(diǎn)進(jìn)行線性內(nèi)插,得到立交橋中線各折線段節(jié)點(diǎn)的高程值。
以立交橋中心線為軸線,橋面寬度的一半為半徑構(gòu)造緩沖區(qū),得到中心線兩側(cè)的緩沖區(qū)邊線,即立交橋邊線。一般地,立交橋兩側(cè)邊線的折線段節(jié)點(diǎn)高程值應(yīng)與中心線對(duì)應(yīng)位置的折線段節(jié)點(diǎn)高程值一致[13]。分別對(duì)立交橋邊線折線段節(jié)點(diǎn)進(jìn)行高程值的賦值,得到了具備三維屬性的立交橋邊線。
以立交橋兩側(cè)邊線的折線段節(jié)點(diǎn)作控制點(diǎn),以立交橋兩側(cè)邊線作約束邊,構(gòu)建約束Delaunay三角網(wǎng)[14]。三角網(wǎng)應(yīng)分段構(gòu)建,即依次對(duì)每一段立交橋中心線對(duì)應(yīng)的邊界進(jìn)行構(gòu)建。由此得到分段的立交橋面不規(guī)則空間三角網(wǎng)。
而在實(shí)際場(chǎng)景中,立交橋橋面各處的寬度并非一致,且立交橋中存在多段道路交匯的場(chǎng)景。僅通過(guò)立交橋邊線逐段構(gòu)建空間三角網(wǎng)得到的橋面在不同段道路交匯的位置會(huì)出現(xiàn)銜接異常,具體體現(xiàn)在道路變寬變窄的情況,以及多條道路交匯、匝道位置。因此,需要對(duì)立交橋交匯銜接位置進(jìn)行優(yōu)化[15]。
為識(shí)別立交橋各處交匯情況,將每一座立交橋按照?qǐng)D結(jié)構(gòu)進(jìn)行存儲(chǔ)。每一立交橋中心線作為圖的邊,而立交橋中心線的端點(diǎn)位置作為圖結(jié)點(diǎn)[16]。下文對(duì)橋面寬度變化位置和匝道合并位置的三角網(wǎng)優(yōu)化進(jìn)行說(shuō)明。
2.2.1橋面寬度變化位置的三角網(wǎng)優(yōu)化
橋面寬度變化主要出現(xiàn)在兩條立交橋中心線的銜接處,對(duì)應(yīng)于立交橋圖結(jié)構(gòu)中結(jié)點(diǎn)度數(shù)為2的情況。由于不同段立交橋中心線具備不同的寬度,依據(jù)此形成的橋面空間三角網(wǎng)寬度也會(huì)不同。
對(duì)于某段待優(yōu)化的單側(cè)變窄局部立交橋面,經(jīng)橋面三角網(wǎng)生成過(guò)程,已經(jīng)得到的空間三角網(wǎng)在平面上的投影如圖4(a)所示,為了便于后文中的敘述,將圖中上側(cè)的道路稱為“較窄道路”,而下側(cè)的道路稱為“較寬道路”。首先移除較窄道路的三角網(wǎng),并將較窄道路的中心線控制點(diǎn)按序標(biāo)出,結(jié)果如圖4(b)所示。接著,從交匯的位置點(diǎn)1出發(fā),沿較窄道路立交橋中心線向上找到與其最近的控制節(jié)點(diǎn)2。從較窄道路的立交橋中心線控制節(jié)點(diǎn)集中移除節(jié)點(diǎn)1,將節(jié)點(diǎn)2作為較窄道路立交橋中心線端點(diǎn),并重建較窄道路面三角網(wǎng),如圖4(c)所示。從較寬道路三角網(wǎng)中,找到節(jié)點(diǎn)1對(duì)應(yīng)的立交橋邊線控制節(jié)點(diǎn),命名為節(jié)點(diǎn)A,B;從較窄道路三角網(wǎng)中,找到節(jié)點(diǎn)2對(duì)應(yīng)的立交橋邊線控制節(jié)點(diǎn),命名為節(jié)點(diǎn)C,D,并將A,B,C,D組合為多邊形,如圖4(d)所示。最后,在這一多邊形內(nèi)部構(gòu)建空間三角網(wǎng),得到優(yōu)化后的交匯面,整體效果如圖4(e)所示。
圖4 橋面寬度變化位置三角網(wǎng)優(yōu)化過(guò)程
2.2.2橋面匝道合并位置的三角網(wǎng)優(yōu)化
在立交橋中,通常將相交的主要道路稱干線(主線),相交的次要道路稱支線(引線),連接干線與支線互通的線路稱為匝道[17]。它們對(duì)應(yīng)立交橋圖結(jié)構(gòu)節(jié)點(diǎn)度數(shù)為3的情況。其優(yōu)化過(guò)程涵蓋干線支線的識(shí)別、交匯平滑過(guò)渡、支線交匯合并、支線重組分離與連通區(qū)域構(gòu)建等工作,最終得到過(guò)度均勻并符合實(shí)際情況的匝道三角網(wǎng)。
對(duì)于某匝道交匯,經(jīng)橋面三角網(wǎng)生成過(guò)程,得到的空間三角網(wǎng)在平面上的投影(粗實(shí)線)如圖5(a)所示。記圖5(a)中上方的道路L1為干線,而下方面的兩條道路L2與L3為支線。進(jìn)而,找到交匯位置處干線的兩立交橋邊線端點(diǎn),即圖5(b)中的點(diǎn)A和B。并找到交匯位置處兩支線外側(cè)的立交橋邊線端點(diǎn),即圖5(b)中的點(diǎn)C和D。將點(diǎn)C移至A處,點(diǎn)D移至B處,得到結(jié)果如圖5(c)所示。對(duì)兩支線橋面三角網(wǎng)的二維投影進(jìn)行多邊形裁剪操作,按照區(qū)域取并處理,并將兩支線內(nèi)側(cè)邊界的交點(diǎn)設(shè)為點(diǎn)O,得到結(jié)果如圖5(d)所示。
隨后,從O點(diǎn)向支線的合并邊界線兩外側(cè)做垂線,分別相交于兩支線的中心線于點(diǎn)M,N,垂足為P,Q,如圖5(e)所示。兩支線的起始端點(diǎn)不變,將M,N作為兩支線的末端點(diǎn)重建三角網(wǎng),得到新的支線道路三角網(wǎng),如圖5(f)所示。最后,清除A,B,P,Q、O五點(diǎn)組成的區(qū)域內(nèi)的所有三角網(wǎng)及邊線要素,并在此區(qū)域重新進(jìn)行三角網(wǎng)的構(gòu)建,得到優(yōu)化后的匝道交匯面,最終結(jié)果如圖5(g)所示。
圖5 橋面三路交會(huì)位置三角網(wǎng)優(yōu)化過(guò)程
而度數(shù)大于3的其他交匯情況與匝道的優(yōu)化基本相同,在提取一條干線和多條支線后,對(duì)支線做相似處理即可對(duì)匝道處橋面三角網(wǎng)完成優(yōu)化。
根據(jù)上述方法對(duì)立交橋?qū)挾茸兓恢眉霸训肋M(jìn)行處理,實(shí)現(xiàn)橋面空間三角網(wǎng)的創(chuàng)建。
為實(shí)現(xiàn)三維立交橋面模型實(shí)現(xiàn)自動(dòng)化構(gòu)建,本文在技術(shù)上采用OSG三維渲染引擎。OSG是一個(gè)專為3D計(jì)算機(jī)圖形開(kāi)發(fā)而設(shè)計(jì)的高層次的可編程接口,廣泛用于虛擬仿真、動(dòng)畫設(shè)計(jì)以及各種可視化程序中。OSG具備快速開(kāi)發(fā)、較高的渲染性能等優(yōu)勢(shì)[18]。
每段道路構(gòu)建過(guò)程如下。首先,依據(jù)道路三角網(wǎng)、兩側(cè)道路邊線構(gòu)建出立交橋道路面,因橋面有一定的厚度,因此,還需要將道路面向z軸方向平移一定距離,創(chuàng)建立交橋底面。對(duì)于立交橋道路面,可以依據(jù)左右邊界和中線進(jìn)行紋理綁定,根據(jù)不同的道路寬度及車道屬性,采用不同類別車道線紋理樣式進(jìn)行可視化;對(duì)于立交橋底部,采用水泥墻面樣式紋理。而后,構(gòu)建立交橋道路兩側(cè)墻體,設(shè)置墻體面的高度為道路底面創(chuàng)建過(guò)程的平移距離,然后根據(jù)道路面的邊界線折點(diǎn)進(jìn)行創(chuàng)建。墻體的紋理同樣采用水泥墻面樣式。由此,得到的一段三維道路面,如圖6所示。
圖6 三維道路面
為了得到完整立交橋三維模型,還需進(jìn)行橋墩、橋側(cè)護(hù)欄和指示牌等立交橋附屬設(shè)施三維模型的創(chuàng)建[19]。這些附屬設(shè)施模型可根據(jù)二維基礎(chǔ)測(cè)繪數(shù)據(jù)中相應(yīng)的點(diǎn)要素調(diào)取模型庫(kù)中的三維模型,或人工進(jìn)行標(biāo)記建模。由此,實(shí)現(xiàn)高效且便于操作的三維立交橋模型交互構(gòu)建。
根據(jù)實(shí)驗(yàn)數(shù)據(jù)的苜蓿葉型與菱形立交進(jìn)行立交橋模型的實(shí)例,結(jié)合本文方法進(jìn)行三維橋面模型構(gòu)建。利用優(yōu)化后的空間三角網(wǎng)進(jìn)行建模和貼圖,并基于OSG實(shí)現(xiàn),最終得到的整體效果和細(xì)節(jié)示意如圖7所示。
圖7 苜蓿葉形立交(左)與菱形立交模型及細(xì)節(jié)
上述整個(gè)建模過(guò)程無(wú)須人工干預(yù),僅需要將數(shù)據(jù)導(dǎo)入程序,便可以根據(jù)建模算法自動(dòng)化完成。
本文提出了一種復(fù)雜立交橋三維橋面模型的構(gòu)建方法,根據(jù)這一方法,僅需通過(guò)二維基礎(chǔ)測(cè)繪測(cè)量數(shù)據(jù)中的立交橋中心線及對(duì)應(yīng)寬度、DSM數(shù)據(jù)即可自動(dòng)化完成三維立交橋橋面的建模。在此基礎(chǔ)上,用戶可以通過(guò)3DsMax等軟件對(duì)生成的橋面模型進(jìn)行編輯,從而高效構(gòu)建更加精細(xì)的模型。
立交橋三維模型快速構(gòu)建方法中的自動(dòng)化三維橋面構(gòu)建算法總結(jié)為:首先,提取DSM中與立交橋相關(guān)的有效高程點(diǎn);然后,按立交橋中心線和橋面進(jìn)行緩沖區(qū)拓寬得到橋面三角網(wǎng);進(jìn)而,進(jìn)行橋面三角網(wǎng)交匯位置的處理。利用得到的橋面三角網(wǎng)在OSG中進(jìn)行貼圖和可視化,從而完成三維立交橋橋面模型的構(gòu)建。
在我國(guó)立交橋、高架橋數(shù)量急劇增長(zhǎng)的今天,其三維模型的快速構(gòu)建的需求更為迫切。依據(jù)本文提出的方法,可以自動(dòng)化快速生成立交橋的粗模,并經(jīng)相對(duì)便捷的人工操作就可以得到立交橋的橋面精細(xì)模型,從而應(yīng)用于三維城市建模、智慧城市等多個(gè)領(lǐng)域。但是這一方法依然存在不足之處,如構(gòu)建的橋面模型在匝道交匯銜接的位置難以得到絕對(duì)真實(shí)的效果,橋面底部和側(cè)面只能以一種固定的模式呈現(xiàn),其附屬設(shè)施如橋墩及指示牌等還未能可視化呈現(xiàn)。后續(xù)的研究將針對(duì)這些不足進(jìn)行完善,從而得到一個(gè)更加完備的立交橋自動(dòng)化建模方法,建立更加精細(xì)的立交橋三維模型。