2.5维地图就是根据dem、dom、dlg等数据,以及真三维模型在一定高度、视角和灯光效果,按照轴侧投影的方式生成的地图。本文以臻图信息ZTMapEasy电子地图服务平台为例,详细阐述了2.5维电子地图关键技术以及其实现方式。
地图作为记录地理信息的一种图形语言形式是按照一定的数学法则,根据地图投影、地理坐标和比例尺,经过制图概括,在一定的载体上用各种地图符号(点、线、面状符号)和文字注记、颜色来表示一定区域内的地形、地貌、地物等地理信息。它反映各种自然和社会经济现象的空间分布、组合、联系及其动态变化。因此,地图是对地理空间信息的抽象化、符号化的描述。
人类生活在一个真三维的现实世界里,而传统的二维地图只对处于三维空间中的各种地理对象全部进行向二维平面投影的简化处理,导致第三维方向(即垂直方向)上的几何位置信息、空间拓扑信息和部分语义信息的损失,不能完整地反映客观世界。随着计算机技术,特别是计算机图形学、网络、多媒体、虚拟现实技术、三维仿真技术的快速发展,传统的二维电子地图被注入了新的活力正在向网络化、互动化以及三维化的方向发展
2.5维地图在最近几年得到了飞速的发展,如百度、搜狗等地图网站的兴起让更多的用户感觉到了真三维地图带来的震撼。
什么是2.5维地图呢?就是根据dem、dom、dlg等数据,以及真三维模型在一定高度、视角和灯光效果,按照轴侧投影的方式生成的地图。2.5维数字地图既具有三维数字地图表现力丰富的、视觉效果好,又具备数据量小、现实速度快的优点,需要的网络环境、软硬件要求较低,满足了在远程访问下对三维地图的快速浏览访问,在传统二维地图和真三维地图很好地起到一个承上启下的作用,同时,利用三维模型制作成下游产品的2.5维数字地图,具有准确的坐标信息,还可以制作成东、南、西、北多个角度,相对意义上的三维,因此得到了许多用户的推崇。而且如果要求不高2.5维地图的制作方式可以采用可视角内进行贴面,其它不再处理的方面,这大大降低了地图的建设成本,节省大量的财力和人力,同时数据更新效率也可以大大提高。
2.5维数字地图制作的基本流程:制作基本思路,对基础数据进行原始资料收集和现场采集测绘。将整个场景按x、y两个方向,利用专业空间建模软件,分割渲染成若干张分辨率固定的栅格地图图片,最后基于专业软件进行拼合并做后期。主要分为6个阶段:
(1)数据准备。基础数据主要是镇海三维仿真规划模型成果,该三维模型采用当今国际流行多边形建模技术,保证还原建筑真实形状。在制作模型的时候,根据采集照片对建筑物结构进行分析,对每一栋建筑进行细致的贴图,建筑外墙、窗体、装饰物的材质来自采集的照片或者精选的素材库,尽量还原建筑的真实外观。制作好建筑后,按照地形图上建筑的位置对制作好的建筑进行摆放,减少建筑与建筑之间、建筑与地表之间的位置误差。
(2)框架数据搭建。由于已有的三维模型数据为全模,数据量巨大,因此不能将大面积的模型合并在一起渲染。首先以路网模型作为整个场景的框架,然后将需要渲染的规划管理单元建筑模型和场地模型分别合并进路网场景中,如果某个规划控制管理单元数据过多,还要可以将其再拆分。
(3)场景设置。场景设置主要包括摄像机假设和渲染器设置,摄像机主要作用有让其按照固定的路径以一定的高度和角度运动自动运动。先将摄像机向左和向下分别旋转后再将其绑定在一条有夹角的直线路径上。这时摄像机可以沿该路径自动运行,同时也能满足轴侧无透视变形的地图渲染要求。由于在三维软件中,里面的光的热能传递却不是很明显,所以在渲染的时候,为了实现真实的场景效果,就要在渲染器中指定全局光照,为了使2.5维数字地图有良好的层次感和丰富的色彩,必须采用能够渲染全局光的渲染器。选用一定的渲染模式,能够在增强立体层次的时候既不刺眼,大大提高地图表现效果。
(4)、图片输出。景搭建好后就可以渲染输出了。
(5)、图片拼合。最后按照渲染的顺序将图片进行总拼。
(6)、图面整饰。按照现场照片来进行环境的布局,对背景影像dom数据进行扭曲变形等处理;对道路、河流等实体矢量数据进行文字标注;对照照片布置绿化、草地、树木,在保证在真实的情况下对环境做美化处理,增强地图的可读性,并附上坐标信息。
2、投影变换的算法及实现
(1) 投影变换分类与选择
2.5维地图为了与二维数据快速匹配定位,以及poi数据动态匹配叠加显示必须将二三维地图无缝集成,需要严格保持地物的比例以及相关几何关系,平行投影保持物体的有关比例不变,这是三维绘图中产生比例图画的方法,物体的各个面的精确视图可以由平行投影得到,因此,需要选择平行投影方式。平行投影又分为正平行投影和斜平行投影,正平行投影根据投影面与坐标轴的夹角又可分成两类:正投影(三视图)和正轴侧投影。当投影面与某一坐标轴垂直时,得到的投影为三视图,这时投影方向与这个坐标轴的方向一致。否则,得到的投影为正轴测投影。正轴侧投影是能够显示形体多个侧面的投影变换,如果投影平面不与任一坐标轴垂直,就形成正轴侧投影。正轴侧投影有正等测、正二侧和正三侧三种,当投影面与三个坐标轴之间的夹角都不相等时为正三测,正三侧投影中三个坐标分量的变化比例各不相同。
由于在选择输出用户视图视角时,投影平面(屏幕)与三个坐标轴之间的夹角各不相同,因此我们选择正三侧投影变换模型。
(2)求算变换矩阵进行动态匹配,建立2.5维地图与二维地图之间的逻辑对应关系。
3、瓦片技术及影像金字塔模型
随着webgis在各行各业不同程度的推广,瓦片式技术(tile cache)已成为臻图ZTMap系列2.5D地图数据访问的关键技术之一。tile cache是一个地图瓦片缓存器,由于预先生成了地图图片,在后端不需要读取空间数据库数据和实时渲染地图,因此大大节省了系统运行时间,加快地图响应速度,用户并发的限制将取决于硬盘的读取和网络传输。实现了平滑的移动和漫游,地图移动不再露白,放大缩小和漫游几乎不需要等待时间,而且地图图片内容也非常复杂和美观,不再受平台限制。
一张一定比例尺下的地图可以看成是由一定大小的图片组成的,我们把这些一定大小的图片称为一个地图单元,我们为这些在一定比例尺和范围的地图单元按照一定的规则进行命名并存放在一个图库中。具体实现了地图的快速浏览有2步:
(1)采用地图拼接机制
采用地图拼接机制把一大块地图分割成一定大小的图片,这样在下载过程中分别下载,并在客户端进行拼接,从而体现实现地图的快速显示。
(2)采用地图缓存机制
为了实现地图的快速显示,采用了浏览器的缓存机制。只要访问过的地图就可以采用缓存中的地图进行显示,这样大大的加快了地图的显示速度。
l 放大
用鼠标点击地图中的任意部分,或按住鼠标左键拉出一个矩形框,即可获得指定区域放大后的地图。对地图进行无级放大,随着地图的放大,系统自动显示一些相关的信息。
l 缩小
用鼠标点击地图中的任意部分,或按住鼠标左键拉出一个矩形框,即可获得指定区域缩小后的地图。
对地图进行无级缩小,随着地图的缩小,地图上显示的信息将会减少以达到最好的显示效果。
l 显示全图
显示电子地图全貌。可以让用户方便的回到地图的初始状态。
l 移图
移动地图,将地图视野以外的地图移动到视野内。可按住鼠标左键任意拖动地图,使之达到理想位置。
l 测距
用户可以在地图上,沿着自己想要测量的线路,用鼠标单击地图,在上面画出一条直线或者折线,然后,在结束点双击,即可得到这条线所代表的实际线路的距离。
l 三维图
切换显示三维仿真图
l 影像图
叠加显示影像图
控制每个图层的显示、选择、标注等。可以打开或关闭任意一个图层;设置图层是否可选;设置每个图层中点、线、面对象的显示样式(如点符号样式、线条样式、粗细、颜色、面的填充样式等),设置每个图层的标注的字体、样式等。实现不同图层的任意叠加显示。
对门牌号、地址等信息进行地理编码,自动计算匹配其地理位置,在地图上进行标注。诸如门牌地址、路口路名等描述性信息,通过地理编码功能,可以迅速将这些描述性信息转变为地理空间位置,并显示在地图上。
自动查询任意两条或多条道路的相交路口。查询与某一道路相交的所有道路以及相应的每个路口信息,对于路口在地图上进行快速显示定位。
通过输入地名,系统自动检索各类地名图层,匹配相关的地名信息。地名可以是各种主要建筑物的名称、居民小区、标志性建筑物、机关单位等。系统检索到相关结果后返回查询列表,同时在地图上进行快速高亮定位。
可以直接用鼠标在地图上点击查询,系统自动查询出点击位置的地图对象信息。
用户可以在地图上拉一个矩形框,系统自动查询出拉框范围内的地图对象信息。
用户可以在地图上拉一个圆形区域,系统自动查询出圆形区域内的地图对象信息。
用户可以在地图上通过点击鼠标绘制一个任意形状的多边形区域,系统自动搜寻出该多边形区域内的地图对象信息。
n Webservices:提供基于http协议的webservice接口,采用xml格式作为通讯格式。实现符合OGC规范的地图操作
n Javascript API:提供面向javascript语言的开发类库,完全基于javascript快速构建GIS应用,支持PC和手机多平台。
n Flex API:提供面向Flex开发环境,符合actionscript开发语言的开发包,完全基于flex快速构建GIS应用
n Android API:提供符合Android SDK规范的,能够在Android应用开发环境下使用Java语言开发的API
n IOS API:提供符合Object-C编程规范的开发包,快速构建IOS平台上的GIS应用
n Windows Phone API:提供能用在Windows Phone平台上调用的开发包,用于在windows移动平台上快速开发GIS应用
本平台具有高性能,此外还具有多源数据集成、海量数据访问支持、服务器群集等高级特性;采用多级缓存结构设计;可以同时支持多种地图引擎协同工作等。
实现跟符合标准的OGC规范的地图服务器进行地图数据的交互。使得平台能够在自身不生产存储地图数量的情况下实现以第三方OGC服务为底层数据的平台应用。同时,本平台提供的所有地图浏览和查询服务均符合OGC的相关协议规范,包括WMS、WFS、WMTS等,从平台功能性和松耦合性的设计原则上来讲,应该针对OGC的主要地图服务接口封装一套介于地图引擎应用和OGC服务器接口之间的接口,该接口根据WMS、WFS地图服务接口规范封装相关的请求细节,方便地图引擎进行调用。
全组件化的设计思想,作为一个成熟的Web GIS开发平台,在多个行业进行了广泛的应用。组件化设计的优点主要有以下几点:
由于XTMap的数据模型搭建的合理性、高效性和优化的特点,使得T数据兼容性较强。
矢量几何对象的压缩、高效的复合索引技术可以大大提高用户访问数据的速度
随着应用规模的扩大,当单台服务器的处理能力(不仅包括CPU运算能力)不能满足应用需要时,往往需要将多台服务器群集起来同时提供服务。通过群集可以实现负载能力的成比例提高,同时还可以减少单点失效的危险,提高系统的稳定性。但是群集同时会带来服务器的部署、管理复杂度提高和负载平衡的问题。
常见群集方法可以分为业务复制和业务分割两种方法。业务复制即将相同的业务复制到多台服务器上进行处理,每台服务器承担其中一部分用户的处理请求;业务分割即将业务划分为不同的部分,每一部分放到不同的服务器上去运行,比如将数据库服务、地图服务、Web服务分别放到不同的服务器上运行,可以提高性能和增强可靠性。
XTMap主要通过四种方式提高多用户并发访问的性能:异步网络传输,减少网络阻塞;GIS服务引擎的分时操作;多应用实例并发服务;多服务器群集服务。这种特性可以满足小型工作组到大型网络服务的多种应用规模的需要。
服务器实现了高效的数据缓存和应用缓存,通过二次开发可以实现针对特定应用的处理缓存,随软件提供的客户端设计了巧妙的客户端缓存机制,可以大大加快地址定位和地图浏览的速度。
可以实现多级缓存模式,对应用及其相关数据进行高速缓存,从而大幅度提高海量数据的处理能力。
ü 应用实例缓存
预先启动应用服务器,装载适当的数据,从而减少每次用户请求再启动应用的时间,服务器可以自动分配应用的实例。
ü 应用数据缓存
启动应用服务时自动加载相关数据,从而减少每次用户请求都需要重新加载和卸载数据的时间。
ü 数据引擎缓存
由于进行了应用缓存,数据引擎具有的缓存和调度机能可以得到充分发挥,从而大大提高数据处理的效率。
ü 处理结果缓存
通过将需要长时间处理或变化较小的结果预存在磁盘上,用户请求可以直接读取结果而不必每次都进行处理,从而可以减少每次处理的时间,加快用户响应的速度。
对于地图服务接口设计的标准性以及应用层无关性的先进理念,使得原本复杂的WEBGIS二次开发工作变得简易可行。大大缩短开发周期,提高效率。
ü 标准的应用层接口和应用层无关性
建立在地理信息平台基础之上的应用系统的类型是非常丰富的。这些应用系统最终将由不同行业的开发商使用不同的开发工具,设计不同的应用逻辑,所支持的其终端类型也从普通的计算机到具有文字短信功能的普通手机等,能够提供良好的应用开发接口和系统集成模型,即应用层无关性。
在应用接口层:在HTTP协议基础之上设计标准的地图应用访问协议并提供丰富的实用功能接口函数供应用系统调用,这样的设计符合工业标准,支持异构操作系统上的应用系统。
ü 跨平台多语言应用开发包
跨平台多层次二次开发接口。提供从组件库到客户端脚本的多层级二次开发API,支持Javascript、Flex、Webkit、IOS、Android、Windows Mobile(Phone)等多平台和开发环境语言
一个完善的日志系统是服务器端应用程序的必备重要辅助功能,为供系统管理员使用的分析模块。本子系统会在服务器访问日志的基础上,统计分析每天提交的请求数量,某地图功能被调用的次数、平均处理耗时等,最终生成分析报表。系统管理员可以根据这些结果评价系统目前的服务水平,分析系统的性能瓶颈。
地图服务日志数据库有详细的结构文档说明,因此如果系统管理员需要分析其他的内容,二次开发人员可以根据其需求定制查询逻辑。
二三维一体化地图服务平台集成二维地图、航拍影像、三维仿真地图三种地图数据。一方面,平台集成的二维地图、航拍影像和三维仿真地图可以在不同的界面中相互切换和对应位置联动;另一方面,二维地图的兴趣点等信息可以以专题图层的方式叠加在三维仿真地图上。
对于宏观维护的城市基础地图,采用二维地图的方式进行呈现。以全市基础二维地图作为宏观范围内资产管理的数字化手段,使得楼宇等资产管理具备可视化、直观性的特点,能够更加快捷的查询和统计在行政区域、空间范围内的建筑等信息。
基于二维地图,可以快速查看全市范围内的楼宇在地图上的分布情况,用户通过点击地图上的楼宇标识可以进一步查看该楼宇的详细属性、所包含的资产情况、资产处置记录等业务信息。
二维基础城市地图的效果如下:
二维地图从空间区域分布角度给整个行政区域提供了基本的了解手段,但是在真实度和立体感等方面尚有不足,因此,在条件允许的情况下,可以建设三维地图,基于卫星影像图、楼宇建筑CAD图、拍照等各种基础数据和技术手段,对包括楼宇在内的基础空间对象进行三维建模。制作城市2.5D-GIS三维地图。
2.5D地图就是以真三维地图建模数据为基础,按照一定比例对现实世界或其中一部分的一个或多个方面的三维、抽象的描述。跟真三维地图相比,2.5维地图具备以下特点:
基于2.5D地图,可以为用户提供很轻量级的便捷的地图访问,在保持三维立体效果的同时,大大减少了开发制作成本,同时又减少了对系统软硬件的要求。效果如下:
在地图上以撒点标注的方式显示楼宇企业等社区事物的分布情况,点击某个事物可以在地图上快速定位高亮显示,点击地图上的标记可以查看其详细属性信息。
主要功能点有:
地图标注能够将三维地图上的信息点以显示名称或其他信息的方式展示,使用户可以直观的查看到相关的信息点和建筑物等信息,这将大大方便用户快速找到标志性建筑。
智慧社区应用中的人、物、事、情等信息往往具有具体的门牌地址字段,通过将这些字段信息换算为地理坐标,就能够在地图上将这些信息精确地进行标注,并实现基于空间位置区域的统计分析和对比。
在2.5D地图中,可以将具体的地址精确定位到某一栋建筑,与二维地图相比,效果更加直观、逼真。