基于 Qt 的空间数据存储格式检查软件的设计与实现

左尧,王少华,钟耳顺,钟阳,黄科佳,刘永轩

( 1. 北京超图软件股份有限公司,北京 100015; 2. 超图地理信息技术研究所,北京 100015;3. 中国科学院地理科学与资源研究所,北京 100101; 4. 北京航空航天大学,北京 100191;5. 北京市测绘设计研究院,北京 100038)

论文来源:《测绘通报》2017年 第4 期

摘要:面对日益增长的空间数据,网络环境较差的地图、地理信息应用服务系统面临着存储容量有限、地理空间数据格式不开放的挑战。而现有的许多地理空间数据存储依赖于平台,还需要克服跨平台带来的问题,亟需研究设计统一的数据存储标准来解决空间数据格式不一致、不同 GIS 平台数据转换过程复杂等问题。

关键词: GIS 数据存储格式检查,GeoPackage,SQLite,Qt

在网络连接状况较差的环境下,移动设备上的地图、地理信息应用服务常常面临着存储容量有限、地理空间数据格式不开放的问题。每个地图、地理空间应用都需要自己潜在的、专有的地理空间数据存储,而这些特定的空间数据存储可能含有相同的地理空间数据,从而对有限的可用存储空间形成浪费。同时,不同的地图、地理空间应用程序为了共享相同的数据,还需要频繁地进行转换、复制和同步。此外,现有一些地理空间数据存储依赖于 GIS 平台软件,不同平台数据的共享常常需要复杂的转换。

为了克服这些挑战,并形成一个完整、统一的数据共享存储格式,本研究设计了一个开放的、基于标准的、独立于应用和平台的、便携的、可互操作的、自描述的 GeoPackage( GPKG) 数据容器存储标准。它定义了多尺度直接使用 GIS 地理空间数据的GeoPackage SQLite 扩展。该拓展保障了数据模型和数据集的完整性,用户可以直接访问和更新本地存储格式中的数据,来自不同客户端数据请求将得到一致的响应结果。同时,笔者还实现数据容器格式的自动检查判断,可以有效支持多个地图、地理空间应用,如固定的产品分布、局部数据的收集和地理空间分析,解决棘手的地理空间产品生产和分析任务。基于此,本研究基于软件工程设计原理,在 Qt、C + + 编程环境下,研发了 GeoPackage GIS 数据格式检查软件,实现了 GeoPackage GIS 数据的自动化、快速检查,可以为 GIS 数据格式存储标准化提供帮助和支持。

1 研究现状

地理信息是一种重要的战略性信息资源,各国政府和地理信息组织机构都十分重视空间数据标准化工作,已经形成了多种 GIS 数据存储格式。但是,空间数据的模型表达具有较大的复杂性,在数据传输、数据扩展、访问效率等方面各有优缺点。有些数据格式基于 ASCII 编码,可读性较好,但是存取访问效率低下,如美国的 SDTS 格式、我国的地理空间数据交换格式、标准的 GML 格式等。有些数据格式基于二进制数据格式,并带有辅助性索引文件,具有较好的数据压缩和访问效率,但是简单性和扩展性则受到一定限制,如 ArcInfo 的 Coverage 文件格式、AutoCAD的DWG 文件格式。而基于标准格式的、独立于平台的、基于 SQLite 数据库的文件格式 GeoPackage 可较好地实现 GIS 数据的存储管理。

GeoPackage 是一个独立于平台的 SQLite 数据库文件,它包含 GeoPackage 数据和元数据表、一致性声明,以及格式限定和内容约束。一个 GeoPack-age 可能是“空”的,它包括没有行记录内容的 GIS要素和瓦片矩阵金字塔数据表; 还有的包含 GIS 要素类型记录或瓦片矩阵金字塔图像。而元数据则包含了数据格式定义等信息,用于识别外部数据源。同时,GeoPackage 还包含几何要素的空间索引信息及触 发 器。此 外,一 个 GeoPackage SQLite 扩 展( Extension) 是一个 SQLite 可加载的扩展,可连接到一个具有指定配置需求的 SQLite 库,以提供 SQL API 访问 GeoPackage 文件。

Qt 是一个跨平台的 C + + 图形用户界面库,由Qt、基于 FrameBuffer 的 Qtopia Core、开发工具 Qt De-signer 和国际化工具 Qt Linguist 几部分组成。Qt 5是目前软件开发基本框架的最新版本,具备更高效和灵活的研发模式。Qt 具有良好封装机制,模块化程度高、可重用性好。同时,Qt 提供了一种称为 sig-nals /slots 的安全类型来替代 callback,大大提高了消息传递的效率。

整合的 Qt 平台具有较强的跨平台移植性,其拓展 Qt 支持桌面、嵌入式和移动平台。对于桌面操作系统,可以较好地支持 Microsoft Windows 7 /8、Linux、 Solaris、Digital UNIX ( OSF /1、Tru64) 等众多操作系统。移动平台中,可以较好地支持 Android、iOS 和Windows Phone 8。开发人员可以通过启用开发简便性为多个目标部署,并平滑地过渡到新的开发模式以满足触摸屏和 Tablet 的需求,极大地简化了开发过程。


更多内容请点击下方的PDF下载