基于Teigha.NET 和MapWinGIS 的多源异构测绘数据管理系统设计与实现

2023-08-07 03:12何清
安徽地质 2023年2期
关键词:二次开发异构实体

何清

(安徽省地质环境监测总站,安徽合肥 230001)

0 引言

遥感技术与计算机技术的日益成熟,大大推动了测绘技术的不断进步,测绘已融入各行各业[1-2]。测绘对象范畴的不断扩大、观测工具的多样化和处理手段的智能化导致观测数据呈现多源化的特征。这些数据的来源、结构、类型完全不同,形成了海量的多源异构数据[3]。面对数据源类型复杂、比例尺和投影多样、数据量巨大、结构各异的测绘数据,测绘单位不仅需要对数据进行安全高效的存储,还需要考虑对已有的数据如何进行有效管理与利用,避免数据资源的浪费[4]。传统的数据存储与管理技术已无法满足测绘发展需求[5],构建对多源异构数据的一体化管理平台迫在眉睫。

传统的系统开发方式是通过COM 技术实现系统与AutoCAD 等应用程序之间的通信[6-8],因此系统的运行依赖AutoCAD 等商业软件的支持。随着计算机技术的发展,开源软件在操作系统、数据库等多个方面的应用逐渐发展成熟[9-10],通过对开源组件库的调用,可帮助系统摆脱对商业软件的依赖,有效提高系统的运行效率。而Teigha.NET[11]是一套面向对象的支持多平台、多版本、多格式的CAD 文件的开源类库,可脱离AutoCAD 环境实现读写操作、绘制渲染和转换输出等。基于此,本研究以C/S为基本结构,采用了C#语言[12]、PostgreSQL 数据库、MapWinGIS 二次开发和Teigha.NET二次开发等多种开发手段,调用开源类库以脱离AutoCAD 等商业软件环境,设计和实现了多源异构测绘数据管理系统。系统实现了数据的高效存储、共享和处理,大大提升了数据的利用效率,为多源异构数据的有效管理提供参考。

1 系统总体设计

1.1 系统建设目标

针对测绘数据的海量性、多源性、异构性的特点,系统致力于构建一种多源异构数据统一整合方法。通过研究开发,可以便捷地对空间数据进行坐标变换和格式转换,实现测绘空间数据与属性数据的高效管理,大大提高数据的利用效率,为各项工作提供科学合理准确的数据综合分析。

1.2 系统总体结构

根据系统功能建设目标需求,将整个系统的层次结构分为应用层、平台层和数据层三个层次,其结构框图如图1 所示。三层系统结构具有较强的灵活性、可拓展性,符合综合发展的趋势,满足系统的功能需求[13-14]。

图1 系统结构框图Figure 1.System structure

1.3 系统开发环境

系统以Visual Studio.NET[15-16]作为软件的集成开发环境,以面向对象的C#为开发语言,采用模型-视图-逻辑控制器的三层软件架构,构成整个系统应用功能模块的集成支撑。

考虑到存储和处理海量的DWG格式数据文件的需求,并考虑到DWG 文件格式的不公开性,Teigha for.dwg 支持DWG 的多个版本,能直接读取DWG文件获取数据,基于此可进一步实现坐标的变换和文件格式转换,在此基础上所开发的程序可完全脱离AutoCAD 平台运行,提高数据的处理效率,具有较高的安全性。Teigha.NET 是基于Teigha for.dwg 创建的操作DWG 文件的.NET 库,可在微软的.NET 开发平台下使用,具有较高的开发效率和强大的功能。

MapWinGIS是一套二次开发组件库,其核心库是一个名为MapWinGIS 的ActiveX 控件,可以利用这个ActiveX 组件在系统中添加GIS 的相关功能,例如:地图显示、绘图、存储GIS 数据以及一些简单的地图操作,有助于实现数据的可视化,决策者可根据地图数据做到统筹全局、及时决策。MapWinGIS是一个相当高效的开源地图引擎,数据浏览漫游速度很快,开发环境友好,封装接口对象完善,是GIS 程序开发的较好选择。

1.4 关键技术

1.4.1 基于Teigha.NET的CAD测绘数据坐标转换技术

DWG 文件坐标变换的目的是实现文件内每个块实体的坐标变换,每个块实体包含一个或多个实体,所以DWG文件坐标变换的实质是每个实体坐标变换的实现[17]。

系统中DWG文件的坐标转换模块是基于Teigha.Net 开发实现的。相较于传统的逐块转换的方法[18],系统采用了逐点转换的方法,大大提高了坐标转换效率和精度。系统可依次遍历图形中的所有实体,读取各个实体的所有节点的位置属性,并对各点的坐标逐一进行坐标转换。模块主要进行不同坐标基准下高斯投影坐标系之间的转换或相同坐标基准下的高斯换带计算。转换模型采用的是布尔莎七参数模型或四参数模型。进行坐标变换后,模块会将变换后的坐标值重新赋值给该点的位置属性,从而达到转换完成图形中的所有实体,这种转换方法的精度只取决于转换参数的求取误差,不存在额外的精度损失。

1.4.2 基于Teigha.NET实现CAD数据与shp数据的转换

利用Teigha.NET 类库,可读取选定的DWG 文件,并将DWG 文件中所含的各类数据信息以对象的形式保存在一个数据库中。通过遍历DWG 数据库,将实体归于点、线、面,并读取对应实体的扩展数据、坐标等属性信息,并输出到相应的数据表,分别输出到shapefile 点、线、面类型文件中。这种转换方式,不会造成属性信息的丢失,极大地减轻了后期数据处理工作。转换结果如图2所示。

图2 DWG转shp结果图Figure 2.Transformation result from DWG to shp

2 多源异构测绘成果数据库结构设计

2.1 系统数据库的建立

系统数据库作为顶层数据库,为保证数据的安全性,针对不同的账户信息设置了不同的权限,主要实现存储和管理账号信息、用户权限、文件上传等基本功能,它隐藏了数据库内部复杂而又多样化的数据存储结构,作为用户访问数据库中测绘空间数据的桥梁,直接面向用户。系统数据库的结构如图3所示。

图3 系统数据库结构Figure 3.System database structure

2.2 元数据库的建立

由于测绘数据种类繁杂,包含地形图、影像图、控制点资料等多种类型测绘空间数据,数据格式各异,时序各不相同,覆盖的范围也不一样。为整合、存储多元异构的测绘空间数据,系统建立元数据库[19]用于保存文件的属性信息,元数据的数据结构如图4所示。在元数据库中建立“文件公有信息”和“文件私有信息”两类表格。文件公有信息表用于存储不同类型数据的公共属性,可以间接提高大规模数据检索的性能。文件私有信息表用于存储不同类型数据特有的属性信息,在文件公有属性的基础上对不同类型数据的私有属性进行补充,确保文件属性的完整性。

图4 元数据库结构Figure 4.Meta-database structure

2.3 文件数据库的建立

为解决二进制数据文件的存储问题,系统建立文件数据库,其数据库结构如图5 所示。文件数据库采用分段存储的方式对二进制文件进行存储,将文件转化为二进制数据流,再以固定长度进行分割存储,这种方式既提高了文件输入、输出的速度,也避免了造成数据库膨胀。

图5 文件数据库结构Figure 5.File database structure

3 系统功能实现

系统采用了PostgreSQL 数据库、MapWinGIS 二次开发和Teigha.NET二次开发等混合开发模式,构建了“多源异构测绘数据管理平台”,实现了信息化管理平台与PostgreSQL数据库的无缝对接。

系统具有以下功能:

(1)文件管理。文件的上传与下载、数据的备份与还原功能,实现了矿区数据的集中统一管理与检索查询。

(2)图表显示。可以对shp 数据和CAD 数据浏览与导航。在“数据显示”窗口中划分了多个视图,各种类型数据可同时加载显示。

(3)图形编辑。提供基本的图形编辑与绘画功能,主要包含线打断、线延伸、线修剪、添加文本等。由于测绘数据中DWG 图形数据量通常很大,极易导致数据更新时制图卡顿。因此为解决该问题,系统实现了DWG图形的局部导出更新功能。

(4)查询统计分析。可查询点坐标、两点距离及方位、线长、实体面积、实体扩展属性等,辅助用户进行图形的统计与分析。

(5)定制报表。用于将指定图形数据定制成.dat格式的文件。系统可将指定点、高程点、界址点、控制点、复合线和等高线生成数据文件。

(6)坐标变换。主要进行不同坐标基准下高斯投影坐标系之间的转换或相同坐标基准下的高斯换带计算。

(7)文件转换。对DWG 文件与shp 文件格式进行相互转换,同时实现控制点、高程点、野外测点等DAT数据的展绘。

(8)质量检查。包括属性完整性检查、重复实体检查、实体相交关系检查和实体封闭性检查功能,用于在数据入库前对CAD图形进行数据质量检查。

(9)用户管理。存储用户信息、访问记录以及信息化管理平台的后台信息,实现数据的安全访问。

4 结束语

系统以Visual Studio.NET 作为软件的集成开发环境,采用面向对象的C#开发语言,PostgreSQL 数据库开发手段,构建了测绘数据管理系统,实现了信息化管理平台与PostgreSQL 数据库的无缝对接。基于开源的MapWinGIS 和Teigha.NET 二次开发,使得系统功能实现可脱离AutoCAD 平台,运用软件工程技术以及内存管理等方法很好地解决了测绘空间数据信息化管理平台兼容性与信息安全问题。针对不同空间基准、不同格式的各类测绘空间多源异构数据,构建各类测绘空间多源异构数据的数据结构转换方法,并实现关系数据库对测绘空间多源异构数据的高效管理,大大提高了数据的利用效率,为各项工作提供科学合理准确的数据综合分析。

猜你喜欢
二次开发异构实体
试论同课异构之“同”与“异”
浅谈基于Revit平台的二次开发
前海自贸区:金融服务实体
浅谈Mastercam后处理器的二次开发
西门子Easy Screen对倒棱机床界面二次开发
实体的可感部分与实体——兼论亚里士多德分析实体的两种模式
两会进行时:紧扣实体经济“钉钉子”
振兴实体经济地方如何“钉钉子”
异构醇醚在超浓缩洗衣液中的应用探索
overlay SDN实现异构兼容的关键技术