-
多视角三维仿真城市实现方法 Realization Method for 3D Multi-View Virtual Digital City
摘 要
目前三维仿真城市只通过单一视角的三维仿真地图进行展示,针对单一视角因视线遮挡造成地理信息丢失的问题, 本文提出了一种多视角的三维仿真城市地图方法,即通过多个可以互相切换的视角对三维仿真地图数据进行发布,多视角 的三维仿真地图具有信息量大,色彩鲜明,形象立体的优点.本文在分析多视角三维仿真地图数据的基础上,给出了数据 组织模型,提出了三维仿真地图的多视角局部坐标与地理坐标的转换方法,实现了多个视角的三维仿真地图的地图调用与 发布.
关键词 三维仿真数字城市;坐标转换;金字塔模型
ABSTRACT Now the 3D virtual digital city can only provide a certain view angle map to display geo data, in order to solve the problem of geo data loss because of map blind point, this paper provide a method to publish multi views 3D virtual digital city using different switchable view angles, 3D multi-view virtual map has some advantages including the large amount of information, vibrant colors and stereoscopic image. Based on the analysis of multi view angles of geo data, this paper provide a data organization model, and discuss the transformation between map coordinate system and geographic coordinate system, implement the use and release of multi angles 3d virtual map.
KEYWORDS 3D Virtual Digital City; Coordinate Transformation; Pyramid Model
1
引言
地物对绝对高度低的地物不可避免的会产生视觉遮 挡,直接导致了大量的地理位置信息,地物形状信 息与拓扑信息的丢失.综上所述,单一视角的三维 仿真地图大大限制了三维仿真地图的信息表量. 针对上述问题,本文提出了一种多视角的三维仿 真城市地图解决方案,通过不同视角的三维仿真地图 对同一区域的地理数据进行展示,并实现不同视角的 三维仿真地图之间的快速切换,进而有效地减少地物 的不可见部分,进一步提高了三维仿真城市的地理信 息量,丰富了三维仿真地图的展示手段.
三维仿真城市作为一种新兴的地图服务形式, 已经成为国内各大城市服务市民生活,展现城市魅力 的重要手段.三维仿真城市以三维仿真地图,二维地 图,遥感影像等数据形式对地理数据进行展示,提供 了比较全面的地理信息和良好的用户体验. 三维仿真地图在城市真三维场景的基础上,以 一个固定的视角生成的具有视觉立体效果的栅格地 图数据,它吸收了传统的二维地图与真三维地图的 优点,不但在地图的视觉效果方面具有真三维地图 形象立体,色彩艳丽的特点,而且在地图性能方面 与传统的二维地图相差不大,甚至完全满足大数据 交互量的公众服务的需要.但目前的三维仿真城市 地图只是从单一固定的视角进行地图数据的展示, 而单一视角的三维仿真地图通过一个固定视角来观 测城市地物,只有被观测地物正对观测视角的部分 是可见的,而被观测地物背对观测视角的部分是不 可见的,这样地物背面的形状与纹理信息就会丢 失.此外,城市是一个地理环境相对复杂的系统, 地形高低起伏, 城市建筑错落有致,以单一视角三 维仿真地图的形式进行可视化展示,绝对高度高的
2
多视角三维仿真城市的地图数据管理
2.1 数据组成
多视角三维仿真城市的地图数据由多个视角的 三维仿真地图,二维地图与高分辨率遥感影像组成. 多视角三维仿真城市的二维地图采用标准的数 字栅格地图DRG(DigitalRasterGraphic),数字栅 格地图是在纸质地图的基础上经过扫描,图像处理与 几何纠正纠正得到,在数字栅格图制作时就已经对地
57
Vol. 4 No.10/ Otc. 2010 图进行了图幅定向处理,二维栅格地图扫描坐标与地 理坐标是精确匹配的. 遥感影像主要来源于航空拍摄,拍摄过程中由 于摄影高度,角度等问题,会存在一定的数据误差, 使用GIS软件将遥感影像与参考地图进行坐标校准, 使遥感影像的坐标配准到地理坐标系上,遥感影像与 地理坐标也是精确匹配的. 城市三维仿真地图是在城市真三维场景的基础 上,从某一个既定的视角,在平行光投影条件下渲染 得到的.多个视角的城市三维仿真地图基于同一个真 三维场景,分别采用不同的视角渲染生成的,可以认 为是对城市三维场景在不同视角的观测视图.三维仿 真地图在本质上是栅格地图,而且由于倾斜视角,视 点高度等问题,三维仿真地图是存在地理形变的.但 倾斜视角增强了三维仿真地图的立体感,有利于地图 的可视化,因此不能通过简单的几何纠正来消除倾斜 视角带来的形变. 针对多视角三维仿真城市具有数据种类繁多, 数据量大的特点,必须建立与之相应的数据组织模 型,进行有效地数据组织管理. 素,这里把256像素256像素作为瓦片的基准大小, 采用地图分割工具对每一层地图统一进行分割. 为了方便地图数据的统一组织管理,金字塔群 组内地图瓦片的编码方式采用前缀加数字编码加后缀 的方式,编码各部分之间以"-"分割.其中前缀标 示地图瓦片的数据类型,如"RS"前缀代表该地图 瓦片为遥感影像,而"2D"与"3D"分别代表地图 瓦片的数据类型为二维地图与三维仿真地图.编码的 数字部分为该瓦片所在子金字塔中的顺序编码值,数 字编码从子金字塔的第0层开始按图层顺序编码直到 最后一层.每一层的编码方式相同,从左上角作为起 始瓦片,按照自左至右的顺序依次编码,直到该层瓦 片全部被编码.中间图层左上角瓦片的编码紧接上一 层右下角瓦片的编码.为了适应地图数据,地图瓦片 金字塔的形状不一定是规则的正方形,可以是任意矩 形,地图瓦片在金字塔中数字编码的计算方法如下:
2.2 数据组织
金字塔模型是一种典型的多比例尺分层数据结 构,是管理多比例尺地图数据的一种有效的数据组织 模型.但多个视角的三维仿真地图数据类型较多,不 同类型的地图数据之间相对独立,因此必须针对不同 的数据类型,分别建立金字塔结构,金字塔与金字塔 之间是平行的,最终形成一系列的金字塔,并对这一 系列的金字塔采用一套统一的数据编码.这里把一系 列采用统一编码,相互关联的又相对独立的金字塔模 型称为金字塔群组,金字塔群组是适合多视角三维仿 真城市地图数据组织的数据结构. 金字塔群组的建立首先要建立群组内的各个子 金字塔,多视角三维仿真城市的每种地图类型对应一 个子金字塔结构,不同视角的三维仿真地图也视为不 同的地图类型.建立地图瓦片金字塔必须对原始的地 图数据进行处理,包括对地图数据的分层与分块. 把原始的地图数据作为金字塔的底层,采用自 底向上的方式建立地图金字塔.按照2的倍数逐层缩 小,对地图数据进行重采样,生成高层地图数据,金 字塔不同层的地图数据对应不同的比例尺,越是高层 的地图数据的比例尺越小.地图分层完成后,需要将 不同层的地图数据瓦片化.考虑到金字塔的性能因式中:n为金字塔图层序号(从第0层起算); rowID与columnID分别为地图瓦片在金字塔在第n层 中的行号与列号;TotalRow与TotalColumn为金字 塔第0层瓦片的总行数与总列数,为常数.
第 0层 3 0 1 4 2 5 6 12 7 18 13 8 19 14 9 25 20 15 10 26 21 16 27 22 17 28 23 30 29 43 31 55 44 32 56 45 34 67 57 46 35 68 79 58 47 36 80 69 91 59 48 37 92 81 103 70 60 49 93 82 71 104 115 61 50 94 83 72 116 105 62 84 73 106 95 117 63 96 85 74 118 107 75 97 86 119 108 98 87 76 120 109 第2层 99 88 121 110 100 89 122 111 101 123 112 102 124 113 114 125 126 第1层 24
11
38 51 64 77 90
39 40 52 41 53 42 54 65 66 78
图1 不规则地图金字塔的分层与编码
如果该地图瓦片为三维仿真地图类型,那么该 瓦片编码将会有一个后缀,后缀代表该三维仿真地图 瓦片的视角代码,每个视角的地图对一个地图视角代 码.金字塔群组中所有的地图瓦片按照编码顺序存储 在数据库中,每一个地图编码对应金字塔群组中唯 一的地图瓦片.如"3D-126-1"表示在视角代码为 "1"的三维仿真地图子金字塔中,编码为"126" 的地图瓦片.
3
三维仿真地图的坐标转换
3.1 坐标系统介绍
多视角三维仿真城市采用的二维地图数据与遥
58
多视角三维仿真城市实现方法 感影像数据都是经过数据校正处理的,其像素坐标 系统与地理坐标系统是直接匹配的,是已经建立了 地理参考的. 三维仿真地图在本质上是栅格地图,对于每 个视角的三维仿真地图,赋予一套统一的逻辑坐标 系统,使不同图层的仿真地图处于同一套逻辑坐标 下,但不同视角的三维仿真地图采用不同的逻辑坐 标系统,它们之间是相互独立的.逻辑坐标采用三 维仿真地图底层图层的像素坐标,即三维仿真地图 的逻辑坐标系统与地图底层图层的像素坐标是等价 的,显然,该逻辑坐标是不同地图层的像素坐标的2 的整数次幂的倍数. 三维仿真地图的逻辑坐标系统是相对独立的, 没有匹配到地理坐标系上,因此三维仿真地图的逻 辑坐标没有地理参考意义,无法直接在三维仿真地 图上直接实现计算方向,面积,距离等地理功能. 三维仿真地图采用倾斜视角,增强了三维仿真地图 的视觉立体感,同时也造成了三维仿真地图的地理 形变,但通过简单的几何纠正把三维仿真地图匹配 到地理坐标系上,将严重影像三维仿真地图的三维 视觉效果.这里可以建立三维仿真地图逻辑坐标与 地理坐标的转换关系,在需要显示特定地理坐标位 置的三维仿真地图数据时,将地理坐标转换为三维 仿真地图的逻辑坐标,满足地图的显示.而在需要 进行地理计算的时候才将三维仿真地图的逻辑坐标 转换为地理坐标,来进行地理计算实现地理功能. 这样既保留了三维仿真地图的良好的视觉效果,又 保证了三维仿真地图的精确的地理计算功能. 令三维仿真地图空间与二维地图地理空间分别 为 与 ,L为两平面之间的坐标转换关 系,则两个平面之间的坐标转换方程可以描述为: (1)
坐标转换要解决的是对转换函数L的求解问题, 由于两地图空间的几何变换参数并不明确,这里可 以采用多项式来模拟转换函数L,求解转换参数,于 是有: (2)
两地图空间之间的坐标转换问题,就转变 成 了 对 上 述 方 程 系 数 a ij,b ij的 求 解 问 题 . 式 中 n 为 多项式的次数,多项式的项数以及系数的个数为 (n(n+3)/2+1),相应的至少需要(n(n+3)/2+1)组控 制点数据来计算多项式的参数,如果有多余的观测 数据,这里采用满足最小二乘的条件来求解,即满足: 式中 理有: 将(3)带入(4)整理后可得: 式(5)中: (5) 为真值, (3)
为计算值.按照求极值原
(4)
3.2 坐标转换原理
三维仿真地图逻辑坐标系统到地理坐标系统的 转换,可以借助同一区域经过地理校正的二维地图 数据作为参考,建立三维仿真地图逻辑坐标空间与 二维地图地理坐标空间的转换关系. 虽然三维仿真地图与二维地图对现实世界采 用了不同的表现形式,但展示是同一区域的地理信 息.三维仿真地图空间可以认为二维地图空间在经 过了旋转,平移,缩放,扭曲等一系列几何变换之 后得到,的这个几何变换的过程可以建立数学模型 进行模拟,根据二维地图与三维仿真地图的同名控 制点的坐标数据来拟合多项式方程,从而得到三维 仿真地图逻辑坐标到二维地图的地理坐标的转换关 系,二维地图地理坐标到三维仿真地图的坐标转换 可以认为是上述几何变换的逆过程.
3.3 坐标转换的实现方法 59
这样就完成了对坐标转换的函数L的求解,得到 了坐标转换参数,该坐标转换公式的误差估计和精 度可分别由(6),(7)式算得,来进一步评定获得的转 换参数是否满足精度要求.
Vol. 4 No.10/ Otc. 2010 误差公式为: 精度评定的计算: (6) 式中:gridWidth与gridHeigth分别代表网格阵 列的宽与高;screenWidth与screenHeight分别代 表地图显示窗口的像素宽与像素高;tileSize为地图 瓦片块的像素宽度; 表示向上取整数操作. 上述规则保证了地图显示窗口中的地图网格阵列 为奇数行和奇数列,这样地图网格阵列始终会存在一 个中心网格,与中心网格相对应的地图数据瓦片可以 作为地图瓦片填充的参考的中心位置,网格阵列中其 他地图瓦片文件就能够以它为参考,以高效率的对称 扩散的方式完成地图数据的填充,直到整个地图数据 方阵都完成填充为止.此外,该规则为后面的地图中 心偏移校正提供了足够的地图数据量,防止了地图偏 移调整后,地图显示窗口留白的出现. 由地图瓦片所在的图层序号以及地图瓦片所在 图层的行号与列号可以确定唯一的瓦片编码,每个 瓦片编码对应唯一的地图瓦片.因此目标地图瓦片 的获取首先要根据目标中心位置的三维逻辑坐标计 算地图瓦片的行列号,地图中心网格对应的中心地 图瓦片行列号的计算方法如下:
(7)
不同次数的多项式逼近的效果不同,高次多项 式能更精确地拟合控制点周围的区域,相应的数学 运算量就越大,计算机实现也更复杂.通过实验, 以一次多项式模拟三维仿真地图逻辑坐标与二维地 图地理坐标之间的坐标变换,其精度完全可以满足 地图服务的需要.坐标转换控制点数据的质量对坐 标转换的精度有很大影响.提高坐标转换的精度, 首先,要保证控制点数据的准确性.其次,在保证 数据准确性的情况下要采集尽量多的控制点,控制 点在地图上的分布要均匀.
4
多视角三维仿真地图的实现
4.1 同尺度地图的动态调用与发布
在指定地图比例尺条件下,将目标位置的地图 数据显示在地图可视化窗口的中心,是三维仿真城 市地图中最常用的地图显示功能,下面讨论在指定 目标中心位置逻辑坐标(pixelX,pixelY)情况下的地图 数据的调用与发布. 由于三维仿真地图数据以地图瓦片的形式存储 在数据库中,而每一个地图瓦片可以视作网格化的 图片.这里采用与瓦片化的地图数据相适应的基于 网格阵列地图数据显示方法,即地图显示窗口由一 组地图网格阵列进行填充,每一个地图网格阵列中 的网格对应一个地图瓦片,在地图数据填充时,地 图网格阵列的中心瓦片的中心位置定位在地图显示 窗口的正中央,然后根据目标中心位置计算地图网 格阵列的偏移值,通过偏移值的调整使地图目标中 心定位到地图窗口的中央,完成地图的显示. 首先需计算出填充地图可视化窗口所需要的地 图网格阵列的大小,并根据地图网格阵列的大小生 成与可视化窗口相适应的地图网格阵列,网格阵列 的长宽的计算规则如下: 式中:n为金字塔图层序号(从第0层起算); rowID与columnID分别为在第n层地图中,目标中 心位置所在的行号与列号;m代表金字塔的总图层 数; 表示向下取整操作. 得到中心地图瓦片的行列号,根据网格阵列的 长宽值,通过简单的加减操作计算网格阵列中其他 网格对应的地图瓦片的行列号.然后根据1.2节中所 述的编码计算方法即可获得地图瓦片的编码,根据 获得地图瓦片编码获取地图瓦片数据完成地图格网 阵列的填充. 地图数据块填充后,地图目标中心位置并没有 位于地图可视化窗口的中央,需要吧地图网格阵列 做进一步的校正来使它们吻合.地图网格阵列在可 视化窗口X轴与Y轴方向上的偏移量offsetX,offsetY 的计算方法如下:
把填充后的地图网格阵列按照计算的偏移量进 行校正,使地图目标中心点便位于可视化窗口的中 央,完成地图显示.
4.2 不同尺度地图的调用与发布
对于传统的电子地图,在进行地图放大,缩
60
多视角三维仿真城市实现方法 小等操作时,不同比例尺的地图数据会随地图操作 实时生成,而三维仿真地图数据的地图数据是已经 生成的,地图缩放等涉及到地图比例尺的变化的操 作只能通过金字塔不同尺度的地图瓦片的变换进行 模拟,虽然这种模拟的变换没有传统的电子地图灵 活,但是这种变换方式节省了实时生成不同比例尺 地图的地图数据的时间,提高了地图显示的效率. 不同尺度地图对应不同的子金字塔地图层, 地图缩放操作通过对不同尺度地图瓦片的变换来模 拟.首先记录地图可视化窗口中心点的逻辑坐标 (pixelX,pixelY)与地图变换的目标图层序号,然后采 用3.1小节中所述的方法计算比例尺变换后地图显示窗 口的地图瓦片的编码值,替换地图瓦片数据,并重新 计算地图格网阵列的偏移值进行校正,完成不同层地 图瓦片的变换,三维仿真地图缩放效果如图2所示.
图4 不同视角的三维仿真地图的变换
5
结论
本文对多视角的三维仿真城市地图从数据组织, 坐标变换到地图切换显示做了详细的探讨,应用结果 表明,多视角的三维仿真城市地图在多视角切换方面有 较高的精度,在很大程度上减小了单一视角三维仿真地 图的不可见部分,提高了三维仿真数字城市地图的信息 量,丰富了三维仿真数字城市的地图展示手段,为三维 仿真城市的地图展示方法提供了新的思路,该技术在地 图公众服务方面有较广阔的应用前景.
图2 三维仿真地图的缩放
参考文献
[1] 马琪,谢忠.海量栅格地理数据的组织与调度[J].地理与地理信
息世界,2008,24(6):39-41. [2] 刘屹林.数字三维仿真城市的研究与设计[D].武汉:武汉理工 大学信息工程学院,2009. [3] 张晓东,金淑英.高精度数字栅格地图的制作方法[J]. 测绘信 息与工程,2005,30(6):14-15. [4] 王华斌,唐新明,李黔湘.海量遥感影像数据存储管理技术研究 与实现[J].测绘科学,2008,33(6):156-157. [5] 张剑波,刘丹,吴信才.GIS中栅格数据存储管理的研究与实现 [J].桂林工学院学报,2006,26(1):54-58.
4.3 不同视角地图的动态调用与发布
多个视角的三维仿真地图数据之间的切换是多 视角三维仿真城市地图操作的重要功能,不同视角 的三维仿真地图的切换涉及到不同金字塔间地图瓦 片的变换.不同视角的三维仿真地图数据采用了不 同的逻辑坐标系统,但不同视角的三维仿真地图数 据采用的逻辑坐标系统都能够采用第2小节中所述的 坐标转换方法与地理坐标进行自由转换,这里借助 地理坐标作为两坐标系统之间转换的桥梁建立两坐 标的变换关系. 如图3所示,在不同视角的三维仿真地图数据 之间进行切换时,首先要记录当前地图可视化窗口 中心点的在A视角下的逻辑坐标,然后根据A视角下 三维仿真地图逻辑坐标与地理坐标的转换关系,将 该逻辑坐标转换为标准的地理坐标,然后按照地理 坐标与B视角下的逻辑坐标的换算关系,将地理坐标 转换为B视角下的逻辑坐标.根据B视角下的逻辑坐 标,采用3.1中所述的地图显示方法完成B视角的三维 仿真地图数据显示,就实现了不同视角的三维仿真 地图的变换,地图变换的效果如下图所示:
A 视角的逻辑坐标 地理坐标 B 视角的逻辑坐标
作者简介
任 鹏 中南大学信息物理工程学院地图学与地理信 息系统专业在读硕士,现为中国科学院深圳 先进技术研究院客座学生,研究方向为三维 数字城市等. 琪 研究助理.2009年7月加入深圳先进技术研 究院,主要从事WebGIS平台开发,海量栅 格数据组织与管理,WebService服务开发 应用等.
胡金星 作者简介见本期封2页. 马
袁永强 中国科技大学软件学院在读硕士研究生,现 为中科院深圳先进技术研究院客座学生,主 要研究方向为三维数字城市等. 严国灿 作者简介见本期第51页.
图3 不同视角三维仿真地图变换的坐标转换过程
游客,如果您要查看本帖隐藏内容请回复 !
- 其实楼主所说的这些,俺支很少用!
- “再次路过……”我造一个-----特别路过
- 虽然没看懂,但是雁过留声,人过留名,顶


