APP下载

2.5维地图坐标转换的算法及实现

2012-09-22阮明谭庆涛王文瑞

城市勘测 2012年2期
关键词:投影面视图投影

阮明,谭庆涛,王文瑞

(南宁市勘测院,广西 南宁 530001)

1 引言

近年来,随着计算机技术的飞速发展,三维地理信息系统正在迅速进入大众的视野。三维地图具有虚拟现实表现的高度真实感,其在城市基础设施管理、城市规划、城市公共安全、城市开发决策支持、污染分布仿真和土木工程等众多领域中显示出了巨大的应用潜力,已经成为普遍关注的热点产品。然而,基于B/S的三维地图在发布效率、数据处理、网络传输等方面具有较大的技术难度,且成本较高。因此,以“E都市”、“都市圈”为代表的2.5维地图网站脱颖而出,既解决了网络发布的技术难题,也满足了三维仿真的高真实感。在制作2.5维地图的过程中,实现二维地图到2.5维地图的坐标转换是关键环节,本文将论述采用坐标旋转的方法实现二维地图到2.5维地图的坐标匹配,并通过编程实现批量数据的多视觉角度投影变换。

2 2.5维地图投影

2.5维地图是将三维模型按照一定投影规则映射到平面上,以展示三维模型效果的二维地图,它的制作过程是在3ds Max中构建三维模型,然后按某一用户视图视角渲染出图,并进行后期拼接。

3ds Max渲染包括两种投影:平行投影(正交投影)和透视投影。在真三维地图中,一般采用透视投影,其视觉效果较为真实,但在2.5维地图渲染时,采用透视投影将会造成变形,离相机中心越远的地方变形越大,因此不宜采用这种投影方式。在平行投影中,图形沿平行线变换到投影面上,保持各点的变化一致,因此,选择平行投影。

在3ds Max中,根据渲染相机的位置,主要有两种投影:正视投影和轴测投影。正视投影指的是投影面与某一坐标轴垂直,包括了正南、正东、正西和正北;轴测投影指的是投影面不与任何坐标轴垂直,包括了东南轴测、东北轴测、西北轴测和西南轴测。当投影方向与某一坐标轴的夹角为0°时即为正视投影,而当投影方向与任一坐标轴的夹角都不为0°时即为轴测投影。

用户视图的高度角指的是渲染相机的投影方向与投影面的夹角,其取值范围在0°到正负90°之间。

用户视图角度决定了相机的投影方向,包括三个角度,为了保证出图效果是正平行投影而不是斜平行投影,我们在制作2.5维地图时只旋转两个方向的角度,一个是高度角,一个是水平角,而相机本身不旋转。

3 坐标转换公式

根据以上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轴旋转的角度。

公式中的旋转角度以逆时针为正,顺时针为负。

4 案例分析

以制作南宁市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维地图

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

猜你喜欢

投影面视图投影
解变分不等式的一种二次投影算法
中职学生学习机械制图的困难及破解方法
基于最大相关熵的簇稀疏仿射投影算法
找投影
找投影
直线、平面在三面投影体系中的投影特性分析
直角三角形法求实长的应用
5.3 视图与投影
视图
Y—20重型运输机多视图