金国建,王雪艳
(温州市勘察测绘研究院,浙江温州 325027)
地图用来描述空间关系的历史悠久,其对空间关系的表达直观、描述准确,给人类社会活动带来了极大的便利,广泛应用于政治、经济、文化、军事等领域。随着现在科技的发展,地图也从简单的线条勾勒转向多元化,不仅内容更翔实,表现方式也更丰富,斜视电子地图就是新的表达方式之一。斜视电子地图通过实景模拟的方式在地图上展示空间地物实体,其美观易用,具有更强的表现力和亲和力。
斜视电子地图是基础地理信息技术、三维技术、图像处理技术的交叉应用成果,生产工具独立性强,涉及数据类型多样,项目生产过程复杂,且效率低下。2011年温州市勘察测绘研究院为了完成120 km2的斜视电子地图数据生产任务,结合以往的生产经验,开发了斜视电子地图生产辅助系统(以下简称应用系统),应用系统涵盖数据生产的各个环节,有效地对整个流程及相关数据进行控制,内含自动化处理辅助工具,提高了生产效率。
斜视电子地图有点类似于影像地图,都是从一定的角度“拍摄”的图像,但“拍摄”的对象不是实体地物而是三维模型,拍摄的方式也从光学感应变成了数字计算,不同的来源和方法促成了其特有的数据生产方式。斜视电子地图需要先有三维模型,才能进行图片输出,三维模型需要根据地物的实际信息在计算机中创建。从地物信息获取到最终的数据成果主要分为原始资料获取,模型制作与渲染,后期加工三环节。为便于项目的实施,数据处理时以分区为单位,即将整个范围分成多个小区域,各小区域的工作由多人同步进行。
原始资料包括建模需要用到的线划数据,影像数据和照片数据等,完备的数据基础是成果质量的基石。地物信息首先从现有的平面数据中获取,再对数据不完备的地方进行补充。需要收集的数据涵盖全部需要建模的地物,对不需建模的地物进行剔除,形成统一、可用的建模参考数据。照片数据很少有现成的资料可用,一般都需要重新拍摄。照片的拍摄同时也是一个实地数据验证的过程,对于数据陈旧或错误的地方需要进行标记,待内业进行数据整理时进行补充。
建模的依据是前期收集的原始资料,线划数据直接导入到三维建模软件中使用,影像数据和照片数据则需要通过作业人员查看,然后在三维场景中重现。当线划数据过于复杂时,作业人员还需要对其进行适当精简。不同数据的精细度和类型不同,对地物的表达角度不同,甚至由于时间不同而出现不一致,这都需要进行仔细分析。
后期加工是将图片处理成带坐标的斜视地图成果,并对主要地理名称进行标注。模型建完后需要设定合适的灯光,渲染出比较美观的斜视图片。成果图渲染完成后需要导入到地理信息系统软件中,根据地物空间位置与斜视换算,形成精准坐标的斜视地图,并在地理信息系统软件中增加一些重要的名称标记,以使地图要素更完整。
数据生产需要用到的软件主要有地理信息系统软件和三维建模软件,地理信息系统软件使用的是超图地理信息系统软件,三维建模软件使用的是Autodesk 3ds Max软件。
超图地理信息系统软件(SuperMap,以下简称超图软件)是北京超图软件股份有限公司开发的地理信息工具软件,斜视电子地图数据生产中主要用于对基础数据的处理,包括数据格式转换、坐标系转换、线划数据修改、名称标注以及基于空间平面的数据管理等。该软件提供了较全面的二次开发接口,斜视电子地图生产辅助系统通过系统集成的方式调用相关功能。
3ds Max在斜视电子地图数据生产中主要用于模型的制作和斜视效果的渲染。该软件也支持二次开发,但只支持以插件的形式供其自身调用。建模时用户直接在3ds Max中操作,完成后导入应用系统。渲染时应用系统仅负责3ds Max启动,3ds Max中相关插件负责数据的处理。
数据生产过程中存在大量的费时操作,应用系统的总体上使用客户机/服务器(C/S)架构,对数据的处理(辅助生产)部分操作放在客户端,管理与控制通过Remoting的方式放在服务器端。部署上主要分三部分:数据库,应用服务和客户端,如图1所示(箭头表示访问)。数据库使用Oracle 10g,建立项目管理库和空间数据库两个库。项目管理库存储项目实施过程需要存储的管理信息,空间数据库由超图软件建立并由其访问和管理。应用服务负责整个项目的管理,包含项目管理库的访问和多用户的并发操作等,并在需要的时候启动3ds Max软件进行处理。客户端负责与用户交互和对空间数据的操作。
图1 分层(部署)图
业务流程考虑到变更的需要,使用插件设计,每个插件实现了共同的接口用以描述其功能。插件模块中包含了模块自描述、模块功能实现、数据持久化和用户交互界面,如图2所示。模块自描述用于应用程序调用时对模块功能说明的获取以及模块身份的识别。数据持久化负责与外部存储(包括数据库)的连接,新建项目时的数据库对象创建,功能执行时的数据读取与存储等。内部权限控制模块内的权限要求,执行到相应状态会自动的进行检测,并与整个应用系统的权限控制模块进行交互。用户交互负责与用户的信息交互,可以在主界面中显示相应的交互对象,也可以创建独立窗口进行交互。内部调用控制负责模块的组织,协调整个模块的运作。所有的插件放在插件目录中,由系统启动时自动搜索模块并加载。
图2 模块内部结构及调用图
系统需要用到的数据有空间数据,管理数据和设置数据,所有的数据都存储在服务器端,用户从任意客户端登录都使用统一的设置。空间数据存储在空间数据库中,其他数据存储在项目管理库中,分别由空间数据访问辅助对象和项目数据访问辅助对象进行访问,所有操作都使用接口进行封装,隔离数据源类型与操作方式对业务流程的影响,如图3所示。
图3 数据访问的封装
基础数据管理主要是对基础数据的管理,基础数据包括基础地形图,竣工测绘,放样数据,影像数据,高程数据,注记数据以及建筑图纸电子版等。这些数据转换成项目要求的坐标系后导入到应用系统,作为原始数据。在正式使用前还需要将基础地形图结合其他数据,根据实地照片进行数据验证,并进行必要的综合,形成单一、完整、精简的线划参考数据,如图4所示。
图4 基础数据处理
照片数据管理包括照片数据采集需要的底图打印,照片数据入库。外业采集员根据分配的任务,选择相应的区域并输出,应用系统自动对数据进行裁剪,生成外业采集底图(JPG格式),如图5所示。外业采集员根据外业采集地图所示进行建筑纹理数据采集,采集完后将照片后导入应用系统,并在应用系统中对照片进行整理,图6为照片整理界面。
图5 外业采集底图
图6 照片整理界面
三维建模辅助包括建模参考数据导出,照片查询和导出。建模通过3ds Max软件进行,建模前根据区域导出相应的分区,然后导入到3ds Max中作为建模的数据参考。建模需要的照片数据,则直接在应用系统中查看,待需要对照片进行处理时再导出。
模型管理包括模型的模型导入、模型浏览和模型删除。模型导入是将模型导入到模型库中,并建立空间位置索引,以方便数据的调度。模型浏览以列表的形式显示,对不再需要的模型可以选中删除。
斜视渲染包括图片的渲染,并允许图片的导入和导出。渲染过程由应用程序启动服务器端的3ds Max实现,3ds Max启动后自动激发maxscript脚本进行渲染,应用程序通过查询相关数据表和渲染成果图片来确定当前进度,待渲染完成后自动导入数据库,形成带坐标的斜视图片成果。渲染根据分区范围有选择地进行,如图7所示。当斜视图片需要手工修改时,可以单独导出,进行修改后更新导入。
图7 渲染流程
信息标注是在地图上增加一些标注信息,标注以矢量的形式存储,以专题图的形式显示,如图8所示。标注和成果图的分离避免了一方的变化对另一方的影响,方便数据的使用和维护。
图8 标注成果
系统的使用通过权限进行控制,需要登录方可使用。基于工作流程将权限分为项目经理,数据处理员,外业采集员,建模员,渲染员,标注员,质检员7种权限。其中的项目经理负责项目的组织和进度控制、分区管理,数据处理员负责基础数据准备以及数据的调整和补充,质检员负责各环节的质量控制,其他权限分别对应相应的流程。当项目经理对用户赋予一定角色,该用户就具有该类权限,可以对其进行更具体的任务分配,并确定任务完成时间。当该用户登录时就会收到新的任务,当用户超期未完成时项目经理会收到任务延期提醒。
数据分为空间数据库和项目管理库,空间数据库使用超图软件的空间数据存储形式,项目管理库使用普通的关系型数据库形式。建独立的空间数据库是为了适应超图软件需求,超图软件的空间数据存储有其固有格式,故通过超图控件访问的空间数据都存储在空间数据库中,其他数据都存储在项目管理库中。
存储在空间数据库中的数据主要有原始基础数据,参考基础数据,斜视图片数据,分区数据,照片位置索引,模型位置索引,标注数据。空间数据以超图的数据集形式组织,数据集类型可能是点、线、面、注记、复合数据、影像、属性表等,有些数据由多个数据集组成,有些数据由单个数据集组成。
原始基础数据:原始基础数据由多个多种数据集组成,数据集名前缀为“Y_”。
参考基础数据:参考基础数据也由多个多种数据集组成,数据集名前缀为“C_”。
斜视图片数据:斜视图片数据由多个影像数据集(带坐标的图片)组成,数据集前缀为“X_”。
分区数据:分区数据是统一的一个面图层,整个项目中只存在一个分区数据层,数据集名“FENQU”。
照片位置索引:照片的空间位置有多种记录方式,由多个多种数据集组成,数据集名前缀为“ZPWZ_”。
模型位置索引:模型的空间位置以面数据集(矩形框)的方式记录,只记录其平面范围,空间数据库中只保留一套有效的模型成果,数据集名“MOXINGWEIZHI”。
标注数据:标注数据有多种多个数据集组成,数据集名前缀为“BZ_”。
应用系统中用到的非空间数据库都存储在项目管理库中。数据存储在数据表中,数据的操作通过存储过程进行。
原始基础数据索引表:存储所有的原始外部导入的空间数据基本信息,表名为“KJ_JICHU”。
参考数据索引表:存储所有调整后的参考数据信息,未经过调整的数据不在该列表中,表名为“KJ_CANKAO”。
照片导入批次表:存储所有导入的照片批次信息,每次导入都会在该表中添加一个批次项,表名为“ZP_PICI”。
照片列表:存储所有的照片信息(包括照片的二进制表示和照片的属性信息),关联相应照片导入批次,表名为“ZP_LIEBIAO”。
用户表:存储用户相关信息,用户名、密码、权限等,表名为“YONGHUBIAO”。
渲染过程表:存储斜视渲染过程中临时记录的信息,包括进度、斜视图片信息等,表名为“LS_XUANRAN”。
任务表:存储项目经理分配的任务信息,表名为“RENWUBIAO”。
设置表:存储系统设置的相关信息,表名为“SHEZHI”。
斜视电子底图生产辅助系统是基于斜视数据生产实际开发的应用系统,应用系统的C/S交互上采用基于.NET的Remoting设计,便于开发和多用户交互,便于生产协作,应用系统的生产流程使用插件设计,方便了应用系统的维护,减少了流程调整时的修改工作量。应用系统覆盖了斜视数据生产的各主要环节,对数据生产效率的提高产生了相当大的作用。以往的数据都是散乱的,查找和使用都相当不便,通过应用系统的协助,数据变得有序,往往一键就能获得需要的数据,生产效率更高。特别是对地物表面纹理照片的系统化管理,用数据库的形式替代原来目录存储,极大方便了使用。形式化的操作直接做成处理模块,直接一键就自动执行,避免了频繁的人工干预。应用系统在斜视数据生产过程中的作用明显,不仅提高了效率,而且有利于数据质量的控制。
[1]北京超图地理信息技术有限公司.SuperMap Objects联机帮助[R].2008.
[2]Autodesk公司.Autodesk 3ds Max MAXScript Reference[R],2009.
[3]张友生,王勇.系统架构设计师教程(第二版)[M].北京:电子工业出版社,2009.
[4]Scott Mclean,James Naftel,KimWilliams.Microsoft .NET Remoting权威指南[M].北京:机械工业出版社,2003.
[5]Microsoft公司.MSDN Library for Visual Studio 2008[R].2008.
[6]普里斯.Oracle Database10g SQL开发指南[M].北京:清华大学出版社,2008.