APP下载

基于MongoDB的城市三维模型数据建库技术探讨

2015-04-10黄梦龙

地理空间信息 2015年1期
关键词:关系数据库模型库建库

黄梦龙

(1.福建省基础地理信息中心,福建 福州350003)

基于MongoDB的城市三维模型数据建库技术探讨

黄梦龙1

(1.福建省基础地理信息中心,福建 福州350003)

分析了城市三维模型管理的需求,从三维模型数据库规范以及MongoDB数据库的数据模型出发,设计了三维模型数据库的存储结构。基于Skyline三维地理信息系统和MongoDB驱动程序,开发了三维模型数据库管理系统,实现了三维模型的建库管理。

城市三维模型;Skyline;MongoDB;模型数据库

城市三维建模是构建数字城市建设的一个组成部分。城市三维模型在城市规划、房地产开发、交通管理、旅游等领域起着重要的作用。

1 城市三维模型库结构设计

MongoDB是所有NoSQL数据库中最像关系数据库的一种,与SqlServer等关系数据库类似。MongoDB的数据库对象分为数据库、集合(Collection)和 文 档(Document)。MongoDB的 数 据 库 与SqlSevrer的数据库类似,集合则类似于关系表,而文档则类似于关系数据库的记录。与关系数据库的记录比,MongoDB的文档提供了灵活的存储方式,没有严格的模式限制。此外MongoDB还提供GridFS对象,用于对文件进行存储。GridFS由文件信息集合和文件分块集合组成,用于对二进制文件进行分块存储。针对空间数据的存储,MogoDB提供了GeoJSON对象,可用于存储点状、线状和面状对象,MongoDB还针对GeoJSON对象提供了空间索引,实现空间数据的高效查询。

本文从三维模型的特点出发,结合三维模型建库的标准和MongoDB的数据库对象和数据类型,设计模型数据库的存储结构如图 1。

图1 基于MongoDB的三维模型库结构

系统的数据库由查询定位数据库、系统运维库和各地市的模型库组成。查询定位数据库存储行政区划、地名、兴趣点等辅助查询和定位数据,系统运维库存储了用户、角色、权限、系统访问日志以及数据库目录等数据。

各地市的模型库结构由模型库、模型子库、要素集合、文件集合4个层次组成。模型库是一个逻辑的概念,用于将各地市的模型库分组管理,一个逻辑库中有4个模型子库,每个子库对应到一个MongoDB的数据库,分别存储模型的元数据以及源模型、表现模型和历史模型的属性及模型文件。模型的几何信息采用GeoJSON对象存储。各子库的模型文件用GridFS存储模型文件,并用模型类别、编码、时间戳组合形成的文件名来区分各个模型。采用这样的命名方式可以方便地将模型与其属性关联起来,并按类别等信息对模型文件进行批量操作。

每个模型的元数据、表现模型属性和源模型属性通过模型编码进行关联,由于模型编码唯一标识了每一个模型,可以由表现模型快速查询到模型的元数据以及对应的源模型。模型更新时,通过时间戳来标记某一历史时间点的模型,实现历史模型的管理,以方便某一历史三维模型的回溯。

2 城市三维模型管理系统设计与实现

2.1 系统总体结构

本文采用Skyline TerraExplorer Pro6.1作为三维平台, 以MongoDB的C#驱动访问模型数据库,开发了三维模型管理系统。系统运行于内部局域网,由数据层、服务层以及应用层组成,系统总体设计如图 2所示。

图2 系统总体结构

数据层和服务层部署在服务器端。数据层包括基础地理信息数据、三维地形模型和三维城市构筑物模型。服务层包括数据查询服务和模型提供服务。数据查询服务基于MongoDB的空间查询功能开发,用于地名、兴趣点和行政区划查询、辅助模型的定位和浏览。由于Skyline TerraExplorer Pro并不支持从数据库中加载模型数据,系统开发模型提供服务,该服务监控并实时响应客户端加载模型的请求,从模型库中读取需要的三维模型数据返回给客户端,完成从数据库中加载模型数据。应用层为三维模型数据库管理系统,部署在各客户端。

2.2 系统功能实现

系统实现了模型库结构管理,模型数据批量入库、删除、更新以及编辑,模型快速提取与分发等功能。模型批量更新时,可以同时将旧的模型数据转入到历史库中,并为每个模型添加时间戳,从而实现历史模型的浏览与回溯。

通过与后台的模型查询服务对接,系统通过2种方式对模型数据进行加载和浏览:①以流的方式加载模型数据,借助Skyline TerraExplorer Pro的动态内存管理能力,适合于大范围模型的加载浏览。②查询感兴趣的区域模型,以动态创建模型对象的方式逐个加载,适合于快速查询浏览感兴趣区域的模型。

此外,系统还提供了模型统计的功能,能够以多种统计图表的方式显示各地区、各类型的模型数量,便于掌握三维模型数据的生产和建库情况。

系统实现涉及的空间范围查询采用MongoDB的空间查询算子实现,属性查询则采用MongoDB提供的丰富的属性查询操作完成。系统界面如图 3所示。

图3 系统界面

3 应用与展望

本文采用Skyline软件作为二次开发工具,利用MongoDB数据库实现三维模型的建库与管理,已应用到福建省数字城市建设生产的三维模型管理中,在三维模型的管理、分发和提供方面进行了一些有益的探索。目前已完成了数字泉州和厦门生产的三维模型的建库,其中泉州城市模型约4 000个,厦门城市模型约15 000个,表现模型数据总量近20 G,源模型数据总量约43 G,在后续的应用中将完成其他数字城市三维模型的建库。

Max格式的模型是目前通用的三维模型数据格式,国内外主流的三维地理信息系统都支持Max模型的导入与展示,Max模型也可在3D Max软件中进一步编辑处理,因而基于该系统提取和分发的模型,也可用于基于其他三维平台的三维地理信息系统建设。

[1] 唐桢,张新长,曹凯滨.基于Skyline的三维技术在城市规划中的应用研究 [J].测绘通报,2010(5):20-23

[2] CH/T 9015-2012.三维地理信息模型数据产品规范[S].

[3] CH/T 9016-2012.三维地理信息模型数据生产规范[S].

[4] CH/T 9017-2012.三维地理信息模型数据库规范[S].

[5] 朱国敏,马照亭,孙隆祥,等.城市三维地理信息系统中海量数据的数据库组织与管理[J].测绘科学,2008,33(1):238-240

[6] 周松涛. 基于关系数据库的三维模型库技术[J]. 测绘信息与工程,2005,30(6):30-31

[7] 王冬,王晓华.三维 GIS 中海量模型调度与存储地理空间信息[J]. 地理空间信息,2012,10(1):109-111

[8] Cbodorow K, Dirolf M. MongoDB权威指南[M].北京:人民邮电出版,2011

[9] 黄梦龙. 基于Skyline的三维城市模型数据库管理系统设计与实现[J]. 测绘与空间地理信息,2014,37(8):133-135

[10] MongoDB, Inc. MongoDB Manual[EB/OL]. http://docs. mongodb.org/manual,2014-08-09

P208

B

1672-4623(2015)01-0020-02

10.3969/j.issn.1672-4623.2015.01.007

黄梦龙,高级工程师,主要从事基础地理信息数据建库和GIS应用开发工作。

2014-09-10。

项目来源:福建省测绘地理信息局2014年测绘地理信息科技创新资助项目。

猜你喜欢

关系数据库模型库建库
关系数据库在高炉数据采集系统中的应用
基于Creo参数化建模的设备模型库建立方法
“数字温县”建设项目通过验收
高校图书馆回溯建库探微
Pro/E的三维往复压缩机参数化模型库的建立
中文期刊回溯建库的实践与思考——以贵州省图书馆为例
基于模型库系统的金融体系流动性风险预警机制研究
基于索引结构的关系数据库关键词检索
基于模型库的现代成本会计计量系统研究
基于数据字典的空间数据库通用建库技术