1、背景
近期负责一个GIS矢量化项目,工程中涉及图形数据、GIS业务数据的关联存储和管理。为弥补图形矢量化软件在附属属性管理方面的局限性,采用两套数据库系统进行图-数关联存储的方案:图形矢量化软件存储图形数据,文件数据库存储业务数据。图形数据维护工具,是矢量化实施项目中核心支撑系统之外数据检查、校正工具,主要完成图-数对应关系的建立、维护,业务数据合法性的基础检查和纠正等。
2、需求概述
在信息管理方面,整个项目涉及大量的、孤立的图片的存储,包括:图片的文件名、业务路径、对应的工程、图形处理人、业务处理流程、处理状态等。业务数据包括:工程信息、GIS点设施业务数据、GIS线设施业务数据、GIS图层信息、GIS的各类点、线设施之间的几何图形规则、拓扑关系、业务规则等等数据。图形数据维护工具,需要操作每份栅格图对应的业务数据库,从中读取和纠正每个孤立的图形工程对应的业务属性;同时还需操作整个项目的数据管理系统,保持中心数据库的信息与各个孤立工程之间的信息同步、根据统一的业务规则批量纠正涉及该规则的当个工程文件数据等等。
图形数据维护工具的数据管理及应用示意如下图:
3、架构设计
图形数据维护工具,纵向采用分层方式进行设计:持久化层、业务实体层、业务规则层、界面交互层。
数据访问层,完成对各种数据库、报表、日志文件的操作封装。包括:MySQL数据库接口、SQLite数据库接口、Excel文件操作封装、txt日志文件封装、XML文件访问封装等。
业务实体层,完成对工程、项目人员、图层、各种点设施、各种线设施、核心规则实体等等数据结构、类、常量等的定义与封装。
业务规则层,完成对点、线设置基础几何图形规则、GIS拓扑关系、业务数据检查规则、业务数据纠正规则、业务属性边界检查规则、业务数据错误检查规则、业务数据错误校正规则等等。
用户界面层,各种文件、数据库、业务数据展示、报表处理等操作界面。
图形数据维护工具的总体架构示意如下图: