轻量级空间数据引擎的应用研究
2017-12-27吴秀芸王海江梁寒冬
吴秀芸,王海江,梁寒冬
(1.宁波市测绘设计研究院,浙江 宁波 315042)
轻量级空间数据引擎的应用研究
吴秀芸1,王海江1,梁寒冬1
(1.宁波市测绘设计研究院,浙江 宁波 315042)
针对移动终端存储空间及计算能力有限的特点,提出一种轻量级空间数据引擎,通过采用先进的空间数据存储技术、索引技术和查询技术,实现多源数据的一体化管理及高效调度。将该引擎应用于规划、城建等领域,搭建了满足其业务需求的移动地图服务平台,改进现有的工作和服务模式。
多源数据管理;空间数据检索;轻量级空间数据引擎;移动地图平台
移动GIS在带来众多新的行业应用模式的同时,也遭遇到技术瓶颈,一些问题严重地制约着移动GIS平台的进一步发展。如在线数据调度响应滞后,浏览及显示不流畅;空间查询不稳定,影响系统正常运行,数据更新不及时等。这主要是受网络及移动设备软硬件条件的限制,很多传统桌面GIS技术无法直接移植到移动GIS产品中[1-3]。因此,设计一个适合于智能移动终端的轻量级空间数据引擎,研究完善的数据组织、管理及检索机制,是提高移动GIS服务能力的关键。
本文设计了一种基于嵌入式数据库SQLite的轻量级空间数据引擎,系统阐述适合于移动终端设备的多源数据组织管理模式及空间数据检索方法,并应用于规划、城建、招商等领域,搭建满足其业务需求的移动地图服务平台,提高空间信息服务水平。
1 轻量级空间数据引擎
1.1 多源空间数据组织管理
GIS以数据为本,而移动终端往往难以携带大量的数据,虽然设备容量提升已经极大增加了终端的性能和存储空间,但仍然难以满足对数据的需求[4]。网络数据服务由于受到网络环境及服务器规模的限制,存在数据响应慢、显示不流畅等缺点[5],因此研究多源离线数据的快速存储机制,实现数据的有机集成及快速响应具有重要的意义。通过设计一种适合于移动终端软硬件环境的轻量级空间数据引擎,将各类数据进行一体化无缝集成、融合和管理,使得基础数据能够直接交由移动终端使用,实现数据的快速响应,并达到最佳的显示效果及交互体验。
SQLite是一个嵌入式轻型SQL数据库。与其他大多数SQL数据库不同,SQLite没有独立的服务进程,占用资源非常低,只需要几百K内存,目前已经用于很多嵌入式产品[6]。因此,针对智能移动终端设备和空间数据特性,选用SQLite作为底层数据库支撑工具,并针对矢量、栅格及多媒体数据的格式、内容,分别设计符合其数据特征的空间数据引擎。
1)矢量数据组织管理。矢量数据以坐标点对来描述点、线、面3类空间实体,采用ArcGIS的SHP文件格式存储在文件系统中,辅助DBF文件进行属性说明。在ArcMap中对矢量数据进行坐标转换、符号化处理后生成MDB配置文件。在SQLite数据库环境支撑下,按照点、线、面逐个对象一一映射到空间数据表中。每一个空间数据表唯一对应一个featurelayer,数据表采用空间数据和属性数据一体化存储的方式保存空间信息,每条记录对应Shapefile文件中的一个空间对象,每条记录中包含属性数据和空间数据,这种方式存储的空间数据表保证了数据的完备性,实现了图形数据和属性数据的有机结合。对多个空间数据表进行合理有序组织,构成自定义的矢量空间数据库(.oflw)。矢量数据表结构设计如表1所示。
2)栅格数据组织管理。栅格数据是以栅格元素值来表示空间属性。在栅格数据中,点用一个栅格元素来表示,线用一组相邻的栅格单位来表示,面用相邻栅格单元的集合来表示。在ArcServer中对栅格数据文件进行地图切片处理,生成各个比例尺的瓦片数据文件,每个地图块为512×512像素大小。在SQLite数据库环境支撑下,对瓦片数据按照分层分幅原则逐个图片一一映射到空间数据表中。每一个空间数据表唯一对应一幅栅格数据,每条记录对应着一个地图块(.jpg或.png),多个数据表共同构成栅格空间数据库(.otlw)。栅格数据表结构设计如表2。
表1 矢量数据库(.oflw)的数据表结构设计
表2 栅格数据库(.otlw)的数据表结构设计
3)多媒体数据组织管理。针对图片、视频等多媒体文件,保留其原始文件格式。在满足数据精度的前提下,对其进行压缩处理,压缩率控制在60%以上,使得数据组织更加紧凑,进而提高移动终端设备存储空间利用率。
1.2 空间检索机制
空间数据检索服务是GIS中最基础也是最重要的服务[7]。传统的基于网络的空间查询由于受网络及服务器环境稳定性的限制,往往出现效率低下甚至无法响应查询请求的情况。因此,本文在轻量级矢量空间数据引擎的基础上,针对每个空间数据表建立B树索引,空间索引和数据表一一对应,表中每条记录对应空间索引中的一个结点。由于采用SQLite作为存储数据的底层环境支撑,因此空间数据搜索支持大部分SQL92标准语法,具体的检索机制如图1所示。顶层是标记处理器和分析器,用于快速生成高效率的代码。底部是基于Knuth经过优化的B树,运行在可调整的页面缓存上,有助于将对磁盘的查找减到最少。页面缓存作用在操作系统抽象层之上,有助于数据库的移动。搜索的核心是虚拟机,作为客户和储存之间进行信息交换的中间单元完成与数据操作相关的全部操作。在查询语句被分析之后,虚拟机开始起作用。代码生成器将分析树翻译成一个袖珍程序,随后这些袖珍程序被组合成用虚拟机器语言表示的一系列指令。如此往复,虚拟机执行每条指令,最终完成SQL语句指定的查询要求。
图1 空间检索机制
1.3 空间查询方式
由于轻量级空间数据引擎集成了嵌入式关系数据库和空间索引,能够以统一的方式访问不同的数据库,有效地处理空间数据集,保证了移动终端环境下空间查询的稳定性及高效性。空间数据搜索查询有3种表现形式。
1)属性查询。用户可选择属性列表,查看其详细信息,并在地图上准确定位。
2)空间查询。用户可以实时地在感兴趣的地图范围内进行点击查询、拉框查询等操作,显示信息详情。
3)模糊查询。用户可输入关键字,如“东部新城”,地图可定位至该区域,同时支持Info Window信息弹出显示。
2 应 用
宁波市测绘设计研究院近年来重点开展移动地图服务平台建设,并先后在宁波市杭州湾新区管委会、宁波市东部新城规划处、宁波市住房和城乡建设委员会等局委办进行推广应用,在轻量级空间数据引擎的技术支撑下,成功搭建杭州湾移动地图平台、东部新城移动服务平台、现代都市移动服务平台等业务平台,实现基于移动终端设备的空间数据和业务数据的一体化管理,构建一整套从数据呈现和查询分析到后台配置的完整的应用解决方案,改进和优化相关部门的日常工作手段。
综合而言,基于轻量级空间数据引擎的移动地图平台具有如下4个特点:
1)支持各类地理数据。平台支持多种地理数据,包括政务电子地图数据、影像数据、三维数据、360°街景数据等,并可在各类地图数据中进行自由切换,方便地图浏览和漫游,如图2所示。
2) 集成多种业务数据。集成多种不同内容、不同类型的业务数据,实现图片、文本、视频等多媒体数据的显示和浏览,并实现与地理底图的无缝集成,如图3所示。
3) 实现离线信息查询。实现各类专题信息的离线综合查询,一键式搜索平台中所有信息(如地名、地址、医疗、卫生等),搜索结果叠加在电子地图、影像数据上,并分类显示缩略信息,如图4所示。
图2 地图切换
图3 专题业务数据
4) 提供完善后台配置。提供数据准入原则,设置用户权限,不同的用户拥有不同级别的数据访问能力和功能模块使用权限。
3 结 语
本文研究了一种基于移动终端的轻量级空间数据引擎。该引擎采用先进的空间数据库存储技术、索引技术和查询技术,具有“空间-属性数据一体化”、“矢量-栅格数据一体化”和“空间信息-业务信息一体化”的集成式空间数据库管理能力,适合于移动GIS工程应用。
图4 离线信息查询
[1]李德仁, 邵振峰. 信息化测绘的本质是服务[J]. 测绘通报,2008(5):1-4
[2]杨任农, 白娟, 黄震宇, 等. 基于SQLite的LOD模式海量影像数据管理系统的设计与实现[J].计算机工程与科学,2011(10):140-144
[3]胡菲菲. SQLite在嵌入式电子地图中的应用[J].工程地质计算机应用, 2008(2): 1-6
[4]张菁蕾. 多源空间数据的组织管理与应用[D]. 同济大学, 2010
[5]王恩泉. 中国版GoogleEarth的空间数据组织与管理研究[D].中国测绘科学研究院, 2007
[6]姚萌萌. 嵌入式电子地图的数据组织与检索算法研究[D].浙江工业大学, 2009
[7]适用于移动GIS的轻量级空间数据引擎的设计[J].Computer Era, 2009(5):26-29
P208
B
1672-4623(2017)12-0048-03
10.3969/j.issn.1672-4623.2017.12.015
2016-07-27。
基于移动位置服务的关键技术研究与应用(甬测院字[2012]32号)。
吴秀芸,硕士研究生,工程师,主要从事地理信息系统研发工作。