国土空间规划下水利基础设施信息管理平台设计

2021-06-28 14:54姚志武管林杰张钟海李俊辉
水利信息化 2021年3期
关键词:全文检索瓦片离线

姚志武 ,管林杰 ,张钟海 ,李俊辉

(1. 长江勘测规划设计研究有限责任公司,湖北 武汉 430010;2. 长江空间信息技术工程有限公司(武汉),湖北 武汉 430010;3. 焦作黄河河务局博爱沁河河务局,河南 焦作 454450)

2019 年 5 月,《中共中央 国务院关于建立国土空间规划体系并监督实施的若干意见》提出,到2020 年要基本完成国土空间规划体系的建设,并初步形成全国国土空间开发保护一张图[1]。而水利基础设施空间布局规划作为涉及空间利用的专项规划,是水利规划与国土空间规划相衔接的规划,是重要涉水生态空间与水利基础设施空间布局落到国土空间一张图上的前提,是依托一张图管控平台落实涉水空间协调与管控措施要求的基础。

开展水利基础设施数据信息化管理与建设,是贯彻落实中央关于统一规划体系、建立国土空间规划体系并监督实施的重大部署[2],是强化水对经济社会发展、生态环境保护的引导约束和协同保障作用,贯彻落实“以水而定、量水而行”,对促进各类空间布局与水资源承载能力、防洪安全保障水平相适应,预留水利基础设施建设空间具有重要作用。

目前,各种 GIS 平台软件都具备空间数据的查询、编辑等功能,ArcGIS 软件体系作为 GIS 平台的引领者,具有强大的空间数据管理、处理和分析功能,然而其桌面管理平台 ArcMap 功能繁多且对于初学者相对复杂。因此,本研究围绕多层级数据信息全景可视化、规划蓝图、数据台账、空间布局、规划报告、成果管理等业务应用需求,基于 C# 和AE(ArcGIS Engine)[3]组件设计并开发了水利基础设施信息管理平台(以下简称平台),从数据收集存储、数据分析管理、专业应用服务 3 个层面对水利业务成员和规划设计人员的业务应用提供全过程信息化支撑。

1 研究内容

为有效对接国土空间规划编制工作,考虑涉水各类数据的空间特点,结合水利基础设施空间布局规划编制工作内容,以实用性、统一性、可靠性、先进性为原则,建立水利基础设施信息管理平台,具体内容如下:

1)研究并建立水利基础设施空间布局管理的标准、规范和体系。

2)以《水利基础设施空间布局规划编制工作大纲附件》中包括的基础工作、涉水空间、规划基础设施三大类(26 张表格)为基础,结合第一次全国水利普查数据结构特点,完成水利基础设施空间数据库设计。

3)研究水利专网上天地图等公共地图资源接入方案,并将公共地图资源作为信息管理平台的工作底图。

4)考虑到空间数据量庞大、属性字段繁多等因素,为提高空间要素检索效率和灵活性,研究Lucene 方式下的全文检索方案。

5)开发水利基础设施管理平台,实现对水利基础设施信息的统一管理。

2 总体设计

2.1 总体架构

平台总体架构如图 1 所示。

图 1 平台总体架构

总体架构主要包括以下几个层级:

1)基础组件层。主要包括 AE(ArcGIS Engine)二次开发组件库、DevExpress 界面库、Sqlite 文件数据库组件、Lucene 全文检索组件库等构成,是整个管理平台正常运行的基础支撑保障。

2)数据存储层。数据存储层是整个平台运行的“血液”,主要涵盖基础空间、涉水工程、各类标准规范、三区三线、规划报告等相关数据。其中空间数据的交换形式主要以 Shapefile,CAD 文件为主,属性数据则以 Excel 文件为主。

3)业务逻辑层。平台对外提供的功能,基本涵盖数据检查、导入、编辑、输出的全生命周期管理。

4)应用层。平台面向用户的可视化层级,即水利基础设施信息管理平台软件。

5)用户层。主要包括系统管理、水利部门、其他授权行业部门等业务人员,平台根据用户类别划定功能访问权限,以保证数据安全。

2.2 数据库设计

平台的核心功能是统计得出三大类 26 张表格。通过对表格的分析发现,大部分表格统计都涉及多个空间对象,例如“已建、在建水库工程空间范围统计表”中,记录包括水库、水库管理范围、水库保护范围、坝址断面等空间对象,然而每一类空间对象都具备其特有的属性信息。显然,已有的统计表不能作为平台运行的基础空间数据库结构,需要对表格进行拆分,保证所有字段值都是不可分解的原子值,以确保满足数据库范式设计要求。

通过对统计表结构的分析,结合水利规划基础知识,将原始统计表拆分为七大类(51 张表格),如表 1 所示。

表 1 数据库表格数量统计

在数据库的选择上,采用 ArcGIS GeoDataBase(地理数据库)中 File GeoDataBase 作为本系统数据存储方式。File GeoDataBase 数据模型的优点很多,例如对空间数据进行统一存储,多用户可对地理数据同时进行操作,要素具有连续性,空间数据的编辑精度更高,更便于数据的统一组织和管理[4]。

2.3 关键技术与方法

2.3.1 离线地图存储方案

由于部分水利基础设施数据属于涉密数据,导致平台不能运行在互联网上,而只能运行在用户所在的涉密内网中。因此,平台本身无法接入公共地图服务,例如天地图、谷歌地图等,这对于用户图上编辑空间数据造成了极大的困难。为解决这个问题,本研究提出一种离线地图存储方案,支持平台在缺少外网支持的情况下读取离线地图包中的地图瓦片,以作为用户使用时的工作底图。本研究使用国家地理信息公共服务平台中的天地图数据资源作为离线地图数据源,程序设计过程中将按照版权声明要求进行数据来源的注明。

本研究最开始使用文件系统存储作为缓存机制,即将每张瓦片保存为 PNG 图片。通过程序测试发现存在 2 个致命问题:1)由于大多数文件系统本身的限制,FAT(文件分配表)系统中文件数不能超过 65 536 个,HFS(混合文件系统)中不能超过32 767 个,并且在目录中文件数超过 20 000 个时,文件访问速度开始减慢[5];2)程序打包或者离线地图包拷贝时,由于离散的图片过多导致速度极度减慢。因此,本研究采用 MBTiles(一种地图瓦片存储的数据规范)方式,利用 SQLite 数据库存储瓦片,并规定将数以百万的瓦片数据存储在 1 个文件中,能够大大提高海量地图瓦片的读取速度[6]。离线瓦片数据库表结构如表 2 所示。

表 2 离线瓦片数据库表结构

本研究将天地图服务的 0~10 级作为系统安装时的默认瓦片,平台后台服务提供各个市区的 11~16 级瓦片离线包的下载,以降低全部瓦片作为打包源文件的压力。此外,为进一步提高瓦片读取速度,采用双缓存机制(即内存和文件数据库缓存)读取瓦片。当每次需要读取瓦片时,首先遍历瓦片对象缓存池中的对象,如果能够找到对应瓦片则返回,反之则读取 SQLite 数据库中的瓦片数据,并将其存入瓦片缓存池中。瓦片读取流程如图 2 所示。

本研究中离线地图存储与读取方案解决了以文件方式进行地图瓦片本地存储时,往往受限于文件系统本身对文件数量的限制,并且整体可移植性低,难以打包部署项目的问题。同时,考虑了系统频繁读写文件数据库的效率及安全问题,通过引入双缓存机制,大大降低了数据库读写频率,增强了瓦片数据调度能力,有效提升了公共服务地图瓦片数据前端显示与渲染效率。

图 2 瓦片读取流程图

2.3.2 基于 Lucene 的要素检索机制

本研究中的水利基础设施数据库涉及 51 张表,那么如何通过关键字快速检索出用户感兴趣的要素是平台设计开发中亟须解决的问题。基于数据库的查询方式,通常是采用“Like”关键字进行 GREP(模式匹配器)模式的模糊查询,如若需要检索的字段很多或数据量很大时,这种逐行逐字段遍历的方式在速度上显然难以接受。目前采用 ElasticSearch(一个分布式、高扩展、高实时的搜索与数据分析引擎)作为对象索引处理及查询功能支撑,属于主流方案,但本平台为桌面端应用开发,ElasticSearch的方式并不适合平台的实施与部署。而 Lucene 作为一种全文检索框架,采用倒排序的检索机制,具有很高的检索效率[7]。为此,使用 Lucene.net 作为全文检索引擎应用开发包,通过二次开发方式进行全文检索功能的定制化开发,提高了程序开发与部署的灵活性。

然而表格众多,且字段数量和名称都各不相同,若为每张表建立其专门的索引库,显然难以完成对所有表格的一次性查找。考虑到各个表中字符型字段较多,且用户查找方式以关键字检索为主,设计 1 张中间表结构,以此为全文检索索引库构建的依据。中间表结构如表 3 所示。

表 3 通用性表结构

用户通过关键字检索时,系统首先对查询关键字分词,然后进入索引文件中找到与这些关键字相关的信息,最后根据匹配度高低排序,将结果返回给用户。当用户需要查看某条记录的详细信息时,系统会到指定要素类中,根据要素的唯一标识符FID 快速检索出要素的所有字段信息。检索流程如图 3 所示。

图 3 全文检索流程图

基于 Lucene 的要素检索机制充分结合了实际应用的开发方式与应用部署模式,提高了系统部署的便捷性和可操作性。同时,要素索引构建方式更便于数据内容的检索,用户能够从不同类型、属性的所有数据中快速获取满足检索要求的内容,使整个检索过程更加便捷与全面。

3 系统实现

3.1 开发技术路线

系统采用 .Net 平台,使用地理数据库管理水利基础设施数据,基于 ArcGIS Engine 二次开发进行平台的构建。整个平台采用 C/S(Client/Server)架构方式,客户端基于 .Net 下的 Framework 4.0 框架开发,服务端则基于 Java 平台下的 SSM(Spring,SpringMVC,MyBatis)框架开发[8],客户端通过HTTP 请求进行用户登录验证和软件版本更新。

3.2 开发环境

在 Visual Studio 2015 开发平台上,使用 ArcGIS Engine 10.4 组件库和 DevExpress 17.2 界面库,通过二次开发方式进行客户端的定制开发;在 IntelliJ IDEA 开发平台上,借助 SSM 框架和 MySQL 数据库,完成服务端的定制开发。ArcGIS Engine 是ArcGIS 的一套软件开发引擎,可以让程序员创建自定义的 GIS 桌面程序,完成对空间数据的管理与操作。DevExpress 是一套用户界面控件库,帮助开发人员快速搭建出交互性良好的界面,以提高用户体验。开发工具及说明如表 4 所示。

表 4 应用开发工具

3.3 系统功能

平台作为水利基础设施信息收集的通用性工具,由水利部门统一下发使用,为数据的逐级汇集与统一管理提供了保障。平台支持各市水利(务)局业务人员按照水利基础设施空间布局规划编制工作方案,根据统一的数据库设计规范,完成水利基础设施信息的质检、录入、管理,进而构建水利基础设施空间和业务信息的综合汇聚、分析和展现平台,最终实现水利基础设施数据与自然资源等部门一张图数据共享。系统功能模块具体如下:

1)数据导入模块。主要支持用户按照基础设施数据库设计规范导入数据内容,包括空间和表格数据,其中空间数据的导入以 Shapefile 和 CAD 文件为主,表格数据则以 Excel 文件为主。

2)规划蓝图模块。为用户提供地图操作(地图放大、地图缩小、视图切换、地图平移等基础功能)、要素查询、量算分析(距离和面积量算)等功能,其中要素查询提供属性(支持以全文检索方式查询要素内容)和空间查询(支持地图交互性查询,如点选、拉框、自定义多边形等查询)。

3)数据台账模块。提供以水利基础设施数据库为信息源,快速统计得出三大类 26 张表格的功能,从而有效掌握水利设施基本信息与建设情况,提高水利基础设施项目信息化管理水平。

4)规划报告模块。完成对规划报告的统一管理,包括上传、下载、更新报告及历史版本查看等功能。通过信息化手段管理水利基础设施的基础数据、表格、图件、规划报告等成果数据。

5)成果管理模块。基于统一的质检要求及细则,梳理总结形成质量检查标准体系,通过成果管理工具,能够从数据完成性、规范性、一致性、空间拓扑等方面进行质量检查,从而规范巩固并提升成果质量。

4 结语

本研究基于 ArcGIS Engine 设计开发了水利基础设施信息管理平台,并结合项目实际需求,研究了离线瓦片存储和 Lucene 全文检索引擎技术,通过不断的改进与优化,提出了一套符合项目应用的解决方案。平台实现了地图浏览、空间数据管理及数据质检分析功能,可对海量水利基础设施的空间和属性信息进行高效的组织、管理和应用,并为下一步构建基础设施空间布局一张图管控平台提供了坚实的基础与保障。目前平台已经完成开发,在业主单位的推行下进行试点市区的试运行,实现了水利基础数据内容的统一收集、入库、管理。

猜你喜欢
全文检索瓦片离线
打水漂
异步电机离线参数辨识方法
浅谈ATC离线基础数据的准备
一种基于主题时空价值的服务器端瓦片缓存算法
互联互通车载控制器离线数据自动生成方法研究
惯性
Oracle数据库全文检索性能研究
基于离线状态监测的复杂装备预知维修决策及优化
全文检索引擎Lucene系统模型与应用研究
全文检索引擎技术在电子病历中的应用