祁 琼,赖 云,周宝玉
(1.湖北省空间规划研究院,湖北 武汉 430071;2.仙桃市自然资源和规划局,湖北 仙桃 433099)
根据《国务院关于开展第三次全国土地调查的通知》文件要求,湖北省于2017年开始了第三次国土调查(以下简称为“三调”)工作。“三调”的目的是在全国第二次土地调查成果基础上,全面查清湖北省土地利用基础数据,掌握翔实准确的土地利用现状和土地资源变化情况,以满足湖北省经济社会发展和国土资源管理工作需要[1-2]。“三调”数据内容丰富、数据量大以及业务应用场景复杂[3],原有的数据管理系统、图件以及资料查阅方式无法适应外业调查和移动应用场景[4]。因此,亟需开发新型的、线上线下一体化的、支持移动办公的国土调查移动数据管理系统,以提升国土调查工作效率[5]。
如何在移动设备中展示和处理大规模的空间数据已经成为迫切需求,虽然现有的研究在桌面端系统中对大规模空间数据的渲染和处理做了相当出色的工作,但是移动设备在运算速度、内存大小和磁盘容量等方面都难以与桌面端系统相提并论[6-7],且存在一系列其他问题[8]:
1)国土调查数据的规模和保密性对移动环境应用制约。当前,外业调研数据申领流程复杂,且可支持的数据量、功能运算有限[9],无法将所有需要数据存储至移动设备中进行调度与渲染,与实际工作场景和需求严重不符,导致工作效率低下。
2)外业环境下网络传输和移动设备运算能力的制约。国土调查数据涉及千万级图斑数,每个图斑又包含几十到百量级点数目,数据量、地图渲染和空间运算量巨大[10]。尤其是在使用小比例尺矢量地图浏览区域概况信息时,绘制速度慢,在进行地图移动与缩放过程中往往需要实时绘制刷新[11],导致任务积压,造成应用卡顿,用户体验差。
3)基础GIS 平台软件和开发框架能力的制约。ArcGIS Runtime是目前常用的GIS基础框架,因与国土调查汇交成果文件协议的兼容性而被广泛使用。然而,其功能内部实现原理未公开,对底层的优化难度大[12]。
本文重点解决移动环境下大规模矢量空间数据的组织、调度与渲染问题,基于ArcGIS Runtime框架,以数据的组织方式研究为基础,制定移动环境下空间数据的调度策略,优化空间数据的渲染效率,完成移动环境下数据调度与渲染系统的开发,为提升移动环境下空间数据渲染和查询效率提供思路与工程实现方案。
系统的主要内容包括两部分(如图1所示),分别在桌面端与移动数据管理系统中完成。
图1 技术路线图
1)桌面端部分。首先在ArcGIS Pro中对省级小比例尺土地利用数据进行多尺度的缩编处理,然后将缩编后的土地利用数据进行切片处理,得到矢量切片数据[13](.vtpk 文件)。另外对省级小比例尺土地利用数据进行入库处理,将原始数据生成为离线数据库(.geodatabase 格式)并建立索引(R*树索引)[14],从而减小数据体积,方便移动端系统的数据存储与调用,提高数据检索效率。
2)移动数据管理系统部分。一部分的内容为在移动数据管理系统中的数据展示及数据应用。数据展示部分主要是通过国土调查土地利用符号库对矢量切片数据进行渲染,以及加载开放正射影像切片数据服务进行土地利用现状电子地图的显示,若土地利用变更数据中有数据更新,则直接将其显示在电子地图上。数据应用部分主要是通过读取内部数据库中的数据(包括省级小比例尺土地利用数据及土地利用变更数据)进行检索与统计。
3)数据传输部分。数据传输主要涉及初始数据传输(.geodatabase 与.vtpk)、正射影像切片数据传输、土地利用变更数据传输与其他中间可能需要添加或更改的数据传输。考虑到各数据的不同特点与不同需求,故采用不同的数据传输方式:①初始数据传输:主要为桌面端处理后的.geodatabase 与.vtpk 文件,数据量较大,且软件的初始运行即需要此数据,故而采取数据拷贝的方式进行传输,在软件安装之后立即将此部分数据拷贝至移动端设备中;②正射影像切片数据传输:此部分数据并非软件初始运行所需数据,且考虑到此部分数据的数据量较大,不便存储于移动设备端,故采用服务的方式进行传输,只可在联网状态下获取;③土地利用变更数据传输:此部分数据的数据量较小,在对此数据进行修改时,只修改移动端设备内部的此数据,待一次外业核查完成后,可将此部分数据上传至服务器端(联网状态下)或采用数据拷贝的方式转为内业进行处理;④其他可能需要添加或更改的数据传输:若数据量较小,可将此数据上传至服务器端,移动端设备在联网状态下进行数据下载,若数据量较大,可采取数据拷贝的方式进行传输。
国土空间数据的组织与存储方式是数据调度的基础,本文在策略上采取“分区域存储、整体控制”的方式来组织大规模的空间数据。技术上采用制图数据与空间实体数据分离的方式进行数据组织,并分别对两类进行优化。
1)“分区域存储、整体控制”的策略。省级国土调查数据量巨大,如全湖北省共包括103 个区∕县,单个区∕县包含从十几万到接近百万个要素不等,且每条要素有接近30 个字段,一般移动设备无法支持该规模数据的加载和运算。因此,本文从文件上对各区县数据分开存储,并通过文件名进行关联,系统通过配置文件的形式获取到存储的所有区∕县文件,对其进行操作。若数据不适合根据行政区域划分,也可根据其他形式划分,如对数据区域进行格网划分等,数据组织结构如图2 所示。所有的数据文件在设备上以市为文件夹进行组织,所有层级及文件名通过配置文件进行读取,并在配置文件中添加系统初始加载数据的文件名及位置,在进行数据切换展示时修改配置文件中的此字段值,以保证每次系统重新打开时加载数据为上次退出时的数据。
图2 国土调查数据组织结构
2)制图数据和空间实体数据的分离和优化。制图数据是空间实体数据的产品,制图数据服务地图渲染。空间实体数据是国土要素的数字化存储,服务于检索和空间计算。因此,两类数据优化策略不同,制图数据的优化目标是在保证视觉效果前提下,尽量减少渲染数量,本文采用矢量切片和层级细节模型策略,前者解决内存调度问题,后者提供必要的显示细节,数据存储采用MBTiles。
空间实体数据优化目标是提升运算效率,措施是构建预置中间数据成果以减少运算次数,包括空间索引和专题索引的构建。本文使用SpatiaLite 数据库存储空间实体数据,并构建高效的R树索引和全文索引(SQLite Full Text Search)。
本文采用的配置文件为JSON 格式,配置文件中需要存储数据存储路径(在设备中的文件夹路径)、系统初始化数据、数据组织层级等信息。将此类信息写入到配置文件中,可以使数据与程序分离,降低两者的耦合度,保证系统与不同类型数据的适配,并提高本系统的灵活性和可移植性,在数据类型及划分方式存在较大差异时,也可以保证在基本不修改源码的情况下直接使用本系统。
近年来移动设备在性能上有较大提升,但与大型服务器和桌面设备相比,仍然存在CPU 处理能力弱、内存容量小、辅助存储器读写速度慢等问题,这也导致移动设备对大数据量矢量空间数据的存取速度慢。根据2.1 节“分区域存储、整体控制”策略,通过数据调度算法优化地图渲染、空间检索和专题检索效率,具体措施如图3所示。
图3 数据调度策略图
1)对于每个区∕县,为其构建一个独立的.vtpk 文件,并针对渲染效率优化,根据分级别(基于比例尺)进行保持拓扑关系的化简;为其构建一个独立.geodatabase 文件,并预先构建R 树索引和倒排索引,提升数据检索效率。所有数据文件在移动设备上以市为文件夹进行组织,所有市名及县名均存储在配置文件中,并在配置文件中添加app 初始加载数据的市名及县名,在切换展示数据时修改配置文件中的初始加载数据的市县名,以保证每次app 重新打开时显示数据为上次退出时的数据。
2)实时监测内存使用比例,动态控制缓存区县数。数据加载是国土调查移动系统的主要效率瓶颈,数据调度应在保持必需数据前提下,预判下步操作所需数据,并使用异步任务提前加载数据。移动终端屏幕较小,在初始显示时也不需要加载整个图幅数据,在此基础上再对分块后数据建索引,在显示时只需要读入所需块中的数据,再次减少读入的数据量,可提高访问效率。
专题检索涉及多个图层的多个字段,要采用全文检索技术,技术流程如图4 所示,其中,移动端基于SQLite Full Text Search(FTS)技术构建索引[15]。由于空间数据GDB以县为单位组织,故单独构建SQLite表存储待检索字段内容(合并为单个文本字段),并构建单字索引,创建好独立的索引文件。检索时,采用SQLite FTS API 进行检索,获取指向对应要素的信息,并针对对应的GDB 文件进行Feature 获取。需注意的是,要在县GDB中对唯一编码构建专题索引,以提升获取整个空间要素信息的效率。
图4 专题索引构建与检索流程
全文检索包括两个步骤:在SQLlite中的全文检索和在.geodatabase中的快速搜索,具体如图5所示。
图5 全文检索流程
1)全文检索对query 分词采取两种策略:策略一,根据query 的空格分割为多个terms,进行FTS match,若结果数大于0,则结束当前FTS match;策略二,若策略一未获得结果,则将query 拆分为单字进行FTS match。
2)FTS match 结果为三元组(adminCode,feature class,BSM),根据此三元组从对应的.geodabase 文件中检索对应的空间要素,需要对源数据中.gdb 的BSM构建属性索引,以提高步骤2的检索效率。
本文以湖北省第三次国土调查数据作为实验数据,开发湖北省国土调查移动数据管理系统(如图6),软件选型如表1所示。
图6 湖北省国土调查移动数据管理系统
表1 软件选型表
实验策略具体如下:
1)数据缩编。基于省级小比例尺土地利用数据进行缩编,保证在各比例尺下地图的展示要素不会过分拥挤,且缩编前后土地利用类型分布面积的视觉对比一致。
2)数据存储。设计移动软硬件环境下国土调查数据库结构,采用化简、压缩等方式实现湖北省“三调”数据的移动端存储,针对电子地图展示用数据、检索与统计用数据、土地变更数据、正射影像数据分别设计合适的数据存储方式。
3)数据展示。根据缩编后土地利用数据进行电子地图的展示,建立标准国土调查土地利用符号库,实现符号自动配置和注记自动配置功能,支持用户修改符号及自定义符号,并实现电子地图样式的同步更新。
4)数据应用。支持对国土调查数据的检索、量算及统计,其中查询包括横向查询与纵向查询,统计包括横向统计与纵向统计,横向指空间维度,纵向指时间维度。使用HUAWEI M6 平板进行测试(型号:VRD-W10,处理器:Huawei Kirin 980,RAM:6 G,ROM:128 G,分辨率:2 560×1 600),数据采用湖北省襄樊市(今襄阳市)枣阳市全国第二次土地调查数据,共包含283 272 个要素。结合用户日常使用常用操作,模拟用户实际操作,将本系统与未采用数据缓存与数据预取的系统进行对比实验。用户首先打开系统模拟日常操作1 min,为系统预热,然后记录下用户接下来连续操作30次用时,其中每次用时是指操作后从发送瓦片请求到完成瓦片渲染用时,用时记录如图7 所示。经统计,不含缓存与预取的系统平均用时为936.5 ms,本系统平均用时为581.5 ms,效率提升约37.9%。
图7 平移操作测试结果
本系统通过上述内容的建设,实现了新型的、线上线下一体化的、支持移动办公的湖北省国土调查移动数据管理系统建设,从而能够提高湖北省国土调查工作效率,保障湖北省“三调”顺利推进。系统功能多样,能够满足移动办公的场景;运行效率高,地图渲染与数据查询速度快;扩展性高,易于添加定制功能。
本文通过对移动环境下空间数据调度及渲染的研究,设计了完整的空间数据组织方案及空间数据调度方案,通过数据缓存与数据预取两方面实现了矢量切片渲染效率的优化,并基于国土调查数据背景及Android 系统进行了工程实现,测试了本文方案的可行性,为今后此方面的研究提供了参考,为此方面的工程实现提供了可行性案例。
本系统抛弃原有传统界面设计,采用更现代的设计形式,使得界面清晰新颖。针对不同数据设计不同加载与存储方式,确保了效率与功能兼备。构建专题索引与空间索引两种索引提升了检索效率,确保检索时间<3 s。实验表明,本系统具有极高的实践意义。