异构矢量数据映射工具的设计与实现

2019-09-23 03:04标,陈
测绘工程 2019年6期
关键词:数据结构图层异构

张 标,陈 楠

(1.自然资源部陕西基础地理信息中心,陕西 西安 710054;2.长安大学 地质工程与测绘学院,陕西 西安 710054)

地理信息资源是国民经济和社会信息化的重要内容,随着各级基础测绘和地理国情普查等重大项目的开展,各级测绘部门积累了大量矢量数据成果,并在经济建设中发挥了重要作用[1-2]。但受到历史原因、技术条件、数据标准等因素的影响,这些矢量数据在数据格式、坐标系统、数据结构、数据内容等方面存在不同程度的差异[3-4],这些差异导致矢量数据在整合处理和共享应用时需要进行数据转换处理。针对异构矢量数据间相互转换的问题,许多学者做了大量的研究工作,文献[5]基于地理要素编码实现了将CAD数据入库到GeoDatabase数据库,但该方法没有实现数据过滤功能,造成转换后数据冗余。文献[6]利用组件技术,研究了GIS数据与SuperMap数据之间的转换问题,但该方法没有对属性字段进行处理。文献[7]通过对数据层的拆分与合并,提出了基于属性字段的方法实现了Coverage格式与MDB格式的转换,但该方法没有实现属性内容的映射。文献[8]研究了MapGIS数据与GIS数据之间的转换问题。上述学者的研究工作在不同程度上解决了异构矢量数据相互转换的问题,但在通用性、全面性、灵活性方面还存在一定问题。

因此,本文设计和实现一种异构矢量数据映射工具,在充分分析异构矢量数据间数据格式、坐标系统、数据结构、数据内容等各种差异的基础上,进行数据映射工具关键环节的设计,包括数据结构获取、数据映射关系建立、数据映射关系存储、数据内容转换等内容。并利用ArcGIS Engine相关组件,在Visual Studio开发环境下进行了工具实现,将所开发的工具应用于陕西省基础地理信息数据与天地图框架数据之间的数据相互转换。实践结果表明,本文设计与实现的异构矢量数据映射工具,能够减少数据转换中的人工重复作业,转换后的数据结构正确、内容完整,在保证数据转换质量的同时,有效提升了数据转换效率。

1 异构矢量数据差异分析

受到历史原因、技术条件、数据标准等因素的影响,不同矢量数据存在不同程度的差异,主要表现在数据格式、坐标系统、数据结构、数据内容等方面。

1.1 数据格式差异

由于历史技术条件、数据生产方式等原因影响,不同矢量数据的成果格式不尽相同,常见的矢量数据格式主要包括ESRI的Coverage、Shapefile、Geodatabase、AutoCAD以及各类GIS平台软件数据格式,Coverage格式(*.E00)是早期的数据存储格式,要素的空间信息和属性信息记录较为完整,并具有严格的要素拓扑关系。Shapefile格式(*.shp)是简单的面向GIS的数据存储格式,要素的空间信息和属性信息分离存储,不存储拓扑关系。Geodatabase格式(*.mdb、*.gdb)是面向GIS实体对象的数据存储格式,可利用关系型数据库进行管理,是当前的主流数据存储格式。AutoCAD格式(*.dwg、*.dxf)是非面向GIS对象的数据存储格式,偏向于制图表达,仅存储要素的空间定位信息,缺少拓扑和属性关联。目前主流GIS平台软件数据格式基本上是面向GIS实体对象的数据存储格式,如Geoway软件的gwp格式、MapGIS软件的mpj格式[9-10]。

1.2 坐标系统差异

同样由于历史原因,不同矢量数据采用的坐标系统也不尽相同,主要包括1954年北京坐标系、1980年西安坐标系、2000国家大地坐标系、地方独立坐标系。1954年北京坐标系和1980年西安坐标系是我国早期基础地理信息数据通常采用的大地坐标系统,是二维的非地心坐标系,制约了地理信息数据的精确表达和各种先进空间技术的广泛应用。地方独立坐标系是各个地方根据自己的实际需求建立的坐标系,适用于局部特定区域,地理信息数据的精度较高但不利于数据交换和共享。2000国家大地坐标系是我国当前最新的国家大地坐标系,是一个高精度的、以地球质量中心为原点、动态、实用、统一的大地坐标系[11-12]。

1.3 数据结构差异

由于数据生产时所采用的数据标准不同,不同矢量数据的数据结构存在着较大差异,主要表现在图层划分和图层属性结构两个方面。矢量数据中的图层是相似的地理要素的分组,并按照要素类别特征与几何形态进行分层与命名,由于不同数据标准对地理要素分类分级的方法不同,导致不同矢量数据中的图层分层与命名方式不同。以道路类地理要素为例,其在1:5万DLG、1:1万DLG、地理国情普查、天地图框架数据中的图层划分如表1所示。

表1 道路类地理要素图层划分

属性是用于描述地理要素的质量、数量、分类、性质等特征的描述性信息,受矢量数据建设目标、应用需求等原因影响,不同数据标准对地理要素特征属性的选取也不相同,从而导致了不同矢量数据相同图层的属性结构也存在着差异,以道路线图层为例,其在不同数据中的图层属性结构如表2所示。

表2 道路线状图层属性结构

1.4 数据内容差异

同样由于数据标准的原因,不同矢量数据在数据内容方面也存在着较大差异,主要表现在要素差异和要素属性差异两个方面。

要素差异包括要素几何特征差异和要素选取差异。要素几何特征差异是指同一地理要素在不同矢量数据中使用不同几何形态的几何对象进行表达。如“河流流向、沟渠流向”要素在一些矢量数据中以有向点的方式进行表达,而在另一些矢量数据中则通过定长的有向线进行表达。要素选取差异是指由于选取指标、采集要求等不同导致不同矢量数据中的要素个数和内容的差异。如一些沿海地区的矢量数据中会有海洋要素,而内陆地区则没有海洋要素。

要素属性差异包括属性概念差异和属性内容差异。属性概念差异是指同一个属性概念在不同矢量数据中采用不同的表示语言或数据格式而导致的差异,如要素分类代码字段在不同矢量数据中采用“GB”、“CC”、“CODE”、“CLASID”等名称,字段格式有“长整型”或“文本型”。属性内容差异是指同一个属性概念在不同矢量数据中采用不同的内容值域而导致的差异。如等级字段在一些矢量数据中的值域为“一等”、“二等”、“三等”,在另一些矢量数据中则使用“1”、“2”、“3”进行表示。

数据结构和数据内容差异是异构矢量数据差异中的主要差异,同时也是数据转换中需要重点处理的内容。

2 异构矢量数据映射工具设计

在异构矢量数据差异分析的基础上,进行异构矢量数据映射工具关键环节的设计,主要包括数据结构获取、数据映射关系建立、数据映射关系存储、数据内容转换等内容。

2.1 数据结构获取设计

数据结构获取是建立数据映射关系的前提。数据结构获取的方式设计有两种:读取数据模板文件和用户自定义。读取数据模板文件是通过读取实际矢量数据,从中获取其结构信息。用户自定义是用户根据数据标准创建矢量数据的结构信息,包括图层名称、图层几何类型、图层属性结构(属性字段的名称、类型、长度、是否允许为空)等内容。

2.2 数据映射关系建立设计

数据映射关系本质上是数据对象的数据模式间的映射关系,它是数据映射中最为核心和复杂的部分[13]。数据映射关系的内容包括图层关系、属性字段关系、属性内容关系,数据映射关系的类型包括无对应关系、一对一关系、一对多关系、多对一关系、多对多关系[14]。考虑到数据映射关系内容较多,类型又较为复杂,如果采用传统的Excel或文本对照表的方式,一则不形象直观,二则有可能会产生遗漏和错误。因此为了使用户能够简便、准确的建立起映射关系,需要设计一种形象直观的方法,为此进行如下设计:将两种异构矢量数据的数据结构中的图层、属性字段以类似目录树的方式进行显示,用户只需在节点之间进行连线,便可建立起映射关系。对于属性内容关系的建立则继续沿用对照表的方式。

图1 映射关系示例

2.3 数据映射关系文件设计

数据映射关系建立后(见图1),需要将其转化为计算机可读取、人工能编辑维护的文件,以便能够进行应用。XML是一种用于标记电子文件使其具有结构性的标记语言,具有异构性、可扩展性、灵活性、平台无关性的特点,能够更准确地搜索内容,更方便地传输内容,更好地描述事物[15]。因此选择将数据映射关系保存为XML文件,并设计如下的数据结构。

图层1,几何类型

映射图层1,几何类型

属性字段1,字段类型1,字段长度1,映射属性字段1,映射字段类型1,映射字段长度1

属性字段2,字段类型2,字段长度2,映射属性字段2,映射字段类型2,映射字段长度2

……

属性字段,字段值1,映射字段值1

属性字段,字段值2,映射字段值2

……

图层2,几何类型

映射图层2,几何类型

属性字段1,字段类型1,字段长度1,映射属性字段1,映射字段类型1,映射字段长度1

……

在两种异构矢量数据间建立数据映射关系,形成数据映射关系XML文件,如图2所示。

图2 XML文件示例

2.4 数据内容转换设计

数据内容转换是在数据映射关系文件的基础上对实际矢量数据进行转换处理。由于数据映射关系文件包含了两种异构矢量数据间的完整对照关系,为了方便用户对数据内容进行选择和过滤,数据映射工具需要支持数据文件、图层、属性字段、地理要素等4个层次的选择和过滤,为此做如下设计:将需要处理的数据文件、图层、属性字段以列表的方式进行显示,用户通过勾选的方式实现选择和过滤,对于地理要素的选择和过滤,则通过属性选择的方式进行实现。

3 异构矢量数据映射工具实现

按照上述关键环节的设计,利用ArcGIS Engine相关组件,在Visual Studio开发环境下进行异构矢量数据映射工具的实现。

3.1 工具的功能模块

异构矢量数据映射工具的主要功能模块由数据结构、数据关系、数据映射3部分组成,数据结构用于获取两种异构矢量数据的数据结构,包含“读取模板文件”、“用户自定义模板”两个命令。数据关系用于建立两种异构矢量数据间的关系,包含“建立映射关系”、“读取映射关系文件”、“保存映射关系文件”3个命令。数据映射用于实际矢量数据的转换,包含“数据转换”和“系统配置”两个命令。工具的功能模块及逻辑流程如图3—图4所示。

3.2 工具的开发实现

图3 工具的功能模块

图4 工具的逻辑流程

ArcEngine是ESRI公司推出的可用于构建定制应用的一个完整的嵌入式的GIS组件库。其中有3000多个对象可供开发人员调用,为开发人员集成了大量的GIS功能,可以针对GIS解决方案快速地搭建应用平台[16]。异构矢量数据映射工具采用基于ArcEngine二次开发的方式,在Visual Studio开发环境下建立工程,利用MapControl、TocControl、ToolbarControl等控件,IWorkspaceFactory、IFeature、IGeometry、IField等相关接口,按照图3所示的功能模块与图4所示的逻辑流程编写相关代码,编译形成可执行文件,完成工具的开发实现。工具的部分界面如图5所示。

4 实例验证

将按照本文设计与实现的异构矢量数据映射工具应用于陕西省基础地理信息数据与天地图框架数据之间的数据转换工作,其效果如图6所示。实践结果表明,映射工具能够依据制定的映射关系进行图层、属性字段、属性内容的转换,在减少人工作业的同时能够保证数据转换的准确性,提升了数据转换效率。

图5 工具的部分界面

图6 数据转换结果

5 结 论

完善的工具是提高作业效率和质量的关键。本文针对异构矢量数据间相互转换的问题,设计和实现一种异构矢量数据映射工具,并将其应用于陕西省基础地理信息数据与天地图框架数据之间的数据相互转换,实践结果表明,本文设计和实现的工具能够减少数据转换中的人工重复作业,转换后的数据结构正确、内容完整,数据关系映射文件也具有一定的灵活性,同时保证异构矢量数据相互转换的准确性,有效的解决了异构矢量数据相互转换的问题,具有一定的参考价值。

猜你喜欢
数据结构图层异构
试论同课异构之“同”与“异”
数据结构线上线下混合教学模式探讨
解密照片合成利器图层混合模式
异构醇醚在超浓缩洗衣液中的应用探索
overlay SDN实现异构兼容的关键技术
“翻转课堂”教学模式的探讨——以《数据结构》课程教学为例
高职高专数据结构教学改革探讨
LTE异构网技术与组网研究
跟我学添加真实的光照效果
CDIO模式在民办院校数据结构课程实践教学中的应用