阮明,譚慶濤,王文瑞
(南寧市勘測院,廣西 南寧 530001)
近年來,隨著計算機技術的飛速發展,三維地理信息系統正在迅速進入大眾的視野。三維地圖具有虛擬現實表現的高度真實感,其在城市基礎設施管理、城市規劃、城市公共安全、城市開發決策支持、污染分布仿真和土木工程等眾多領域中顯示出了巨大的應用潛力,已經成為普遍關注的熱點產品。然而,基于B/S的三維地圖在發布效率、數據處理、網絡傳輸等方面具有較大的技術難度,且成本較高。因此,以“E都市”、“都市圈”為代表的2.5維地圖網站脫穎而出,既解決了網絡發布的技術難題,也滿足了三維仿真的高真實感。在制作2.5維地圖的過程中,實現二維地圖到2.5維地圖的坐標轉換是關鍵環節,本文將論述采用坐標旋轉的方法實現二維地圖到2.5維地圖的坐標匹配,并通過編程實現批量數據的多視覺角度投影變換。
2.5維地圖是將三維模型按照一定投影規則映射到平面上,以展示三維模型效果的二維地圖,它的制作過程是在3ds Max中構建三維模型,然后按某一用戶視圖視角渲染出圖,并進行后期拼接。
3ds Max渲染包括兩種投影:平行投影(正交投影)和透視投影。在真三維地圖中,一般采用透視投影,其視覺效果較為真實,但在2.5維地圖渲染時,采用透視投影將會造成變形,離相機中心越遠的地方變形越大,因此不宜采用這種投影方式。在平行投影中,圖形沿平行線變換到投影面上,保持各點的變化一致,因此,選擇平行投影。
在3ds Max中,根據渲染相機的位置,主要有兩種投影:正視投影和軸測投影。正視投影指的是投影面與某一坐標軸垂直,包括了正南、正東、正西和正北;軸測投影指的是投影面不與任何坐標軸垂直,包括了東南軸測、東北軸測、西北軸測和西南軸測。當投影方向與某一坐標軸的夾角為0°時即為正視投影,而當投影方向與任一坐標軸的夾角都不為0°時即為軸測投影。
用戶視圖的高度角指的是渲染相機的投影方向與投影面的夾角,其取值范圍在0°到正負90°之間。
用戶視圖角度決定了相機的投影方向,包括三個角度,為了保證出圖效果是正平行投影而不是斜平行投影,我們在制作2.5維地圖時只旋轉兩個方向的角度,一個是高度角,一個是水平角,而相機本身不旋轉。
根據以上2.5維地圖投影的定義,改變渲染三維模型的用戶視圖視角,也就是改變投影面的位置。反過來,如果我們假設投影面固定,對三維模型在不同用戶視圖視角的投影,其實就是對模型在不同方向旋轉某一角度后,投影在固定投影面上的圖形。因此,要實現二維數據到2.5維地圖的坐標轉換,就是要推導出不同方向時的物體坐標旋轉公式。
以東南等軸測45°高度角的投影方向為例。在空間直角坐標系中,假設以oxy平面為投影面,東南等軸測45°高度角的投影方向即是物體平行于oxy平面(繞z軸)旋轉45°,再平行于 ozy平面(繞 x軸)旋轉45°后,在oxy平面上的投影值。
由于在oxy面上的投影值即是物體的x和y值,因此不要考慮z值。
根據二維平面的坐標旋轉公式:

(x,y):旋轉前的坐標;(x',y'):旋轉后的坐標;θ:旋轉的角度。
得,旋轉兩個方向后在oxy平面上的投影值:

(x,y):旋轉前的坐標;(x',y'):旋轉后的坐標;θz:繞z軸旋轉的角度;θx:繞x軸旋轉的角度。
公式中的旋轉角度以逆時針為正,順時針為負。
以制作南寧市140 km22.5維地圖為例,在實際制作過程中,由于范圍較大,采用分幅制作后期合成的方法。南寧市二維地圖采用的是1954年北京坐標系,140 km2范圍共分為60幅圖。首先要對分幅圖進行坐標轉換,由于南寧市采用的1954年北京坐標系中X、Y值較大,不方便在3ds Max和Photoshop軟件中進行操作,因此需要對坐標變換后的分幅圖進行歸零,即平移坐標,把分幅圖中心置于坐標原點(0,0)處,在完成渲染出圖和拼接后,再根據平移關系將分幅圖轉換到1954年北京坐標系上。具體制作過程如下:
(1)選定分幅圖中心點坐標;
(2)平移坐標系,將分幅圖中心點置于坐標系原點;
(3)確定2.5維地圖的用戶視圖視角,即兩個方向的角度,水平角和高度角;
(4)運用坐標旋轉公式,根據確定的水平角和高度角,將分幅圖各點坐標換算到最終2.5維地圖的投影上;
(5)根據分幅圖進行2.5維地圖拼接;
(6)平移坐標系,將分幅圖中心換算到原始的1954年北京坐標系上;
(7)將2.5維地圖平移到1954年北京坐標系下。
以上步驟完成了二維分幅圖在1954年北京坐標系下到2.5維地圖的投影變換。可以將該步驟和公式用C#語言實現其他二維數據在1954年北京坐標系下到2.5維地圖的多視覺角度的投影變換。程序代碼如下:


x1,y1:為轉換點X值和Y值;dx,dy:為坐標系原點平移X值和Y值;azD為繞Z軸旋轉角度,單位為度;axD為繞X軸旋轉角度,單位為度;x2,y2:為目標點X值和Y值。
根據以上程序,可以實現二維數據到2.5維地圖多視覺角度的投影變換,圖1~圖6展示了各種方向和角度的投影變化效果。

圖1 原始坐標分幅圖

圖2 正南俯視45°投影后的分幅圖

圖3 東南俯視60°投影后的分幅圖

圖4 東南俯視45°投影后的分幅圖

圖5 正南俯視45°投影后的2.5維地圖

圖6 東南俯視45°投影后的2.5維地圖
2.5 維地圖作為從二維地圖到三維地圖的一種過渡產品,具有數據結構簡單、真實感強等特點,既可以在網絡環境下作為電子地圖發布,又可以制作成地圖打印,是現階段較好的一種地理信息產品,具有廣泛的使用前景。2.5維地圖的生產和使用,離不開各種二維的專題數據的疊加,而本文就提供了一種在生產2.5維地圖過程中所要面臨的坐標轉換的關鍵技術的實現方法,運用該方法可通過編程、實現任意方向和角度的投影變換,為制作地圖和開發基于B/S的三維仿真地理信息系統提供了數學和坐標基礎。
[1]付蔚霞,梁寒冬.淺談寧波三維仿真地圖的建設[J].城市勘測,2011(2)
[2]宋珉,劉鵬超,趙維等.2.5維地圖制作算法研究與實現[J].城市勘測,2010(5)
[3]Donald Hearn.計算機圖形學[M].北京:電子工業出版社,2005
[4]龔健雅,杜道生,李清泉等.當代地理信息技術[M].北京:科學出版社,2004
[5]劉新,李成名,劉文寶.3DGIS中方向關系定性推理規律研究[J].測繪科學,2009,34(2)
[6]張競,王結臣.一種便捷的城市三維景觀可視化方法[J].測繪科學,2009,34(4)
[7]譚仁春.三維城市建模的研究現狀綜述[J].城市勘測,2007(3):42~46