阮明,譚慶濤,王文瑞
(南寧市勘測(cè)院,廣西 南寧 530001)
近年來(lái),隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展,三維地理信息系統(tǒng)正在迅速進(jìn)入大眾的視野。三維地圖具有虛擬現(xiàn)實(shí)表現(xiàn)的高度真實(shí)感,其在城市基礎(chǔ)設(shè)施管理、城市規(guī)劃、城市公共安全、城市開(kāi)發(fā)決策支持、污染分布仿真和土木工程等眾多領(lǐng)域中顯示出了巨大的應(yīng)用潛力,已經(jīng)成為普遍關(guān)注的熱點(diǎn)產(chǎn)品。然而,基于B/S的三維地圖在發(fā)布效率、數(shù)據(jù)處理、網(wǎng)絡(luò)傳輸?shù)确矫婢哂休^大的技術(shù)難度,且成本較高。因此,以“E都市”、“都市圈”為代表的2.5維地圖網(wǎng)站脫穎而出,既解決了網(wǎng)絡(luò)發(fā)布的技術(shù)難題,也滿足了三維仿真的高真實(shí)感。在制作2.5維地圖的過(guò)程中,實(shí)現(xiàn)二維地圖到2.5維地圖的坐標(biāo)轉(zhuǎn)換是關(guān)鍵環(huán)節(jié),本文將論述采用坐標(biāo)旋轉(zhuǎn)的方法實(shí)現(xiàn)二維地圖到2.5維地圖的坐標(biāo)匹配,并通過(guò)編程實(shí)現(xiàn)批量數(shù)據(jù)的多視覺(jué)角度投影變換。
2.5維地圖是將三維模型按照一定投影規(guī)則映射到平面上,以展示三維模型效果的二維地圖,它的制作過(guò)程是在3ds Max中構(gòu)建三維模型,然后按某一用戶視圖視角渲染出圖,并進(jìn)行后期拼接。
3ds Max渲染包括兩種投影:平行投影(正交投影)和透視投影。在真三維地圖中,一般采用透視投影,其視覺(jué)效果較為真實(shí),但在2.5維地圖渲染時(shí),采用透視投影將會(huì)造成變形,離相機(jī)中心越遠(yuǎn)的地方變形越大,因此不宜采用這種投影方式。在平行投影中,圖形沿平行線變換到投影面上,保持各點(diǎn)的變化一致,因此,選擇平行投影。
在3ds Max中,根據(jù)渲染相機(jī)的位置,主要有兩種投影:正視投影和軸測(cè)投影。正視投影指的是投影面與某一坐標(biāo)軸垂直,包括了正南、正東、正西和正北;軸測(cè)投影指的是投影面不與任何坐標(biāo)軸垂直,包括了東南軸測(cè)、東北軸測(cè)、西北軸測(cè)和西南軸測(cè)。當(dāng)投影方向與某一坐標(biāo)軸的夾角為0°時(shí)即為正視投影,而當(dāng)投影方向與任一坐標(biāo)軸的夾角都不為0°時(shí)即為軸測(cè)投影。
用戶視圖的高度角指的是渲染相機(jī)的投影方向與投影面的夾角,其取值范圍在0°到正負(fù)90°之間。
用戶視圖角度決定了相機(jī)的投影方向,包括三個(gè)角度,為了保證出圖效果是正平行投影而不是斜平行投影,我們?cè)谥谱?.5維地圖時(shí)只旋轉(zhuǎn)兩個(gè)方向的角度,一個(gè)是高度角,一個(gè)是水平角,而相機(jī)本身不旋轉(zhuǎn)。
根據(jù)以上2.5維地圖投影的定義,改變渲染三維模型的用戶視圖視角,也就是改變投影面的位置。反過(guò)來(lái),如果我們假設(shè)投影面固定,對(duì)三維模型在不同用戶視圖視角的投影,其實(shí)就是對(duì)模型在不同方向旋轉(zhuǎn)某一角度后,投影在固定投影面上的圖形。因此,要實(shí)現(xiàn)二維數(shù)據(jù)到2.5維地圖的坐標(biāo)轉(zhuǎn)換,就是要推導(dǎo)出不同方向時(shí)的物體坐標(biāo)旋轉(zhuǎn)公式。
以東南等軸測(cè)45°高度角的投影方向?yàn)槔T诳臻g直角坐標(biāo)系中,假設(shè)以oxy平面為投影面,東南等軸測(cè)45°高度角的投影方向即是物體平行于oxy平面(繞z軸)旋轉(zhuǎn)45°,再平行于 ozy平面(繞 x軸)旋轉(zhuǎn)45°后,在oxy平面上的投影值。
由于在oxy面上的投影值即是物體的x和y值,因此不要考慮z值。
根據(jù)二維平面的坐標(biāo)旋轉(zhuǎn)公式:
(x,y):旋轉(zhuǎn)前的坐標(biāo);(x',y'):旋轉(zhuǎn)后的坐標(biāo);θ:旋轉(zhuǎn)的角度。
得,旋轉(zhuǎn)兩個(gè)方向后在oxy平面上的投影值:
(x,y):旋轉(zhuǎn)前的坐標(biāo);(x',y'):旋轉(zhuǎn)后的坐標(biāo);θz:繞z軸旋轉(zhuǎn)的角度;θx:繞x軸旋轉(zhuǎn)的角度。
公式中的旋轉(zhuǎn)角度以逆時(shí)針為正,順時(shí)針為負(fù)。
以制作南寧市140 km22.5維地圖為例,在實(shí)際制作過(guò)程中,由于范圍較大,采用分幅制作后期合成的方法。南寧市二維地圖采用的是1954年北京坐標(biāo)系,140 km2范圍共分為60幅圖。首先要對(duì)分幅圖進(jìn)行坐標(biāo)轉(zhuǎn)換,由于南寧市采用的1954年北京坐標(biāo)系中X、Y值較大,不方便在3ds Max和Photoshop軟件中進(jìn)行操作,因此需要對(duì)坐標(biāo)變換后的分幅圖進(jìn)行歸零,即平移坐標(biāo),把分幅圖中心置于坐標(biāo)原點(diǎn)(0,0)處,在完成渲染出圖和拼接后,再根據(jù)平移關(guān)系將分幅圖轉(zhuǎn)換到1954年北京坐標(biāo)系上。具體制作過(guò)程如下:
(1)選定分幅圖中心點(diǎn)坐標(biāo);
(2)平移坐標(biāo)系,將分幅圖中心點(diǎn)置于坐標(biāo)系原點(diǎn);
(3)確定2.5維地圖的用戶視圖視角,即兩個(gè)方向的角度,水平角和高度角;
(4)運(yùn)用坐標(biāo)旋轉(zhuǎn)公式,根據(jù)確定的水平角和高度角,將分幅圖各點(diǎn)坐標(biāo)換算到最終2.5維地圖的投影上;
(5)根據(jù)分幅圖進(jìn)行2.5維地圖拼接;
(6)平移坐標(biāo)系,將分幅圖中心換算到原始的1954年北京坐標(biāo)系上;
(7)將2.5維地圖平移到1954年北京坐標(biāo)系下。
以上步驟完成了二維分幅圖在1954年北京坐標(biāo)系下到2.5維地圖的投影變換??梢詫⒃摬襟E和公式用C#語(yǔ)言實(shí)現(xiàn)其他二維數(shù)據(jù)在1954年北京坐標(biāo)系下到2.5維地圖的多視覺(jué)角度的投影變換。程序代碼如下:
x1,y1:為轉(zhuǎn)換點(diǎn)X值和Y值;dx,dy:為坐標(biāo)系原點(diǎn)平移X值和Y值;azD為繞Z軸旋轉(zhuǎn)角度,單位為度;axD為繞X軸旋轉(zhuǎn)角度,單位為度;x2,y2:為目標(biāo)點(diǎn)X值和Y值。
根據(jù)以上程序,可以實(shí)現(xiàn)二維數(shù)據(jù)到2.5維地圖多視覺(jué)角度的投影變換,圖1~圖6展示了各種方向和角度的投影變化效果。
圖1 原始坐標(biāo)分幅圖
圖2 正南俯視45°投影后的分幅圖
圖3 東南俯視60°投影后的分幅圖
圖4 東南俯視45°投影后的分幅圖
圖5 正南俯視45°投影后的2.5維地圖
圖6 東南俯視45°投影后的2.5維地圖
2.5 維地圖作為從二維地圖到三維地圖的一種過(guò)渡產(chǎn)品,具有數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)單、真實(shí)感強(qiáng)等特點(diǎn),既可以在網(wǎng)絡(luò)環(huán)境下作為電子地圖發(fā)布,又可以制作成地圖打印,是現(xiàn)階段較好的一種地理信息產(chǎn)品,具有廣泛的使用前景。2.5維地圖的生產(chǎn)和使用,離不開(kāi)各種二維的專題數(shù)據(jù)的疊加,而本文就提供了一種在生產(chǎn)2.5維地圖過(guò)程中所要面臨的坐標(biāo)轉(zhuǎn)換的關(guān)鍵技術(shù)的實(shí)現(xiàn)方法,運(yùn)用該方法可通過(guò)編程、實(shí)現(xiàn)任意方向和角度的投影變換,為制作地圖和開(kāi)發(fā)基于B/S的三維仿真地理信息系統(tǒng)提供了數(shù)學(xué)和坐標(biāo)基礎(chǔ)。
[1]付蔚霞,梁寒冬.淺談寧波三維仿真地圖的建設(shè)[J].城市勘測(cè),2011(2)
[2]宋珉,劉鵬超,趙維等.2.5維地圖制作算法研究與實(shí)現(xiàn)[J].城市勘測(cè),2010(5)
[3]Donald Hearn.計(jì)算機(jī)圖形學(xué)[M].北京:電子工業(yè)出版社,2005
[4]龔健雅,杜道生,李清泉等.當(dāng)代地理信息技術(shù)[M].北京:科學(xué)出版社,2004
[5]劉新,李成名,劉文寶.3DGIS中方向關(guān)系定性推理規(guī)律研究[J].測(cè)繪科學(xué),2009,34(2)
[6]張競(jìng),王結(jié)臣.一種便捷的城市三維景觀可視化方法[J].測(cè)繪科學(xué),2009,34(4)
[7]譚仁春.三維城市建模的研究現(xiàn)狀綜述[J].城市勘測(cè),2007(3):42~46