论文部分内容阅读
近年来,随着地理信息技术、计算机技术和航空航天技术的快速发展,通过遥感卫星获取的海量栅格地图数据正逐步累积,如何对这些海量栅格数据进行高效的存储与管理是当前WebGIS产品实现方案中亟待解决的问题。目前,国内外公司或者科研院所多采用分布式文件系统或者基于数据库的空间扩展引擎来存储与管理海量栅格数据,然而面对野外科考、防灾减灾部门的移动应急平台、移动终端地图浏览等使用场景,这两种方式会带来搭建环境复杂、运维困难、数据迁移不便捷等诸多问题。针对上述问题,本文设计并实现了一种单机环境下交互性强、高性能且轻量级的地理空间栅格数据管理平台。该平台包括客户端、服务器端和数据存储三部分,采用MBTiles标准,使用SQLite数据库作为栅格瓦片数据的底层存储媒介,完成了栅格数据瓦片管理、元数据管理、瓦片金字塔挂载、导入和导出、瓦片金字塔回收站和空间查询功能。本文主要研究内容如下:(1)针对轻量级存储的需求,在分析传统单机条件下使用独立文件和普通数据库形式优缺点的基础上,采用开源MBTiles标准将地图瓦片存储和访问做到标准化和高效化。(2)就切片系统所对应的两种栅格数据存储方式,即数据库形式和金字塔目录形式,分别编写转换程序,使其按照MBTiles标准进行存储。针对栅格瓦片集合中广泛存在的相似瓦片问题,采用MD5摘要算法去重,以避免多余的磁盘开销。(3)采用AngularJS技术编写本平台的客户端程序,并结合OpenLayers作为浏览器端的瓦片访问及展示框架,分别采用客户端缓存和服务器端缓存的形式,来加快瓦片数据及瓦片金字塔元数据的访问速度,增强用户的使用体验。(4)系统开发被划分为用户模块、金字塔管理模块、瓦片获取模块、元数据管理模块、缓存模块、检查挂载、地图浏览和空间查询模块。其中,在空间查询模块中,本文设计出改进的四叉树索引结构,最终提高了空间点查询和矩形范围查询的效率,减少了构建四叉树的空间开销。(5)对服务器端和客户端进行了功能测试,并利用性能评测工具Apache Benchmark进行了关于瓦片读写的性能测试。在空间查询性能测试中,对比分析了采用JDBC SQL查询方式与采用四叉树索引方式进行空间点查询和矩形范围查询的效率。基于以上的研究、设计与实现,并通过在本地实验室环境的测试和阿里云上的在线测试,平台实现的功能得到了验证。轻量级地理空间栅格数据管理系统已经被应用于真实的科研项目中,实践表明其能为野外科考团队、应急移动平台、移动终端地图浏览等使用场景带来GIS服务支持。