测绘地理信息   2019, Vol. 44 Issue (5): 44-47
0
MapGIS与MapInfo的空间数据转换研究[PDF全文]
叶美芬1, 陈育才1    
1. 广东省地质测绘院,广东 广州, 510800
摘要: 在深入分析MapGIS和MapInfo两种软件文件结构的基础上,充分考虑两种软件坐标系统的定义方式,通过不同坐标系转换,提出了MapGIS数据转换成MapInfo数据的方法。由于两个系统的符号、线型、图案、颜色不一致,通过有效建立两个软件库对照关系表,提出了MapInfo数据转换成MapGIS数据的方法。实现两者间数据转换将有利于两个系统间数据共享,大大提高空间数据处理的效率。
关键词: MapGIS     MapInfo     坐标系统     地理信息系统     空间数据转换    
Spatial Data Conversion Between MapGIS and MapInfo
YE Meifen1, CHEN Yucai1    
1. Geology Surveying and Mapping institute of Guangdong, Guangzhou 510800, China
Abstract: MapGIS and MapInfo are two well-known GIS softwares that have been widely used by domestic users. Based on the in-depth analysis of the file structure of the two softwares, this paper fully considers the definition of the two software coordinate systems, and proposes the method of converting MapGIS data into MapInfo data through different coordinate system transformation. Because the symbols, line types, patterns and colors of the two systems are inconsistent, the method of converting MapInfo data into MapGIS data is proposed by effectively establishing the comparison relation table of two software libraries. Realizing data conversion between the two softwares will be propitious to data sharing between the two systems, and greatly improve the efficiency of spatial data processing.
Key words: MapGIS     MapInfo     coordinate system     geographic information systems     spatial data conversion    

地理信息多源、复杂、广泛,不同的GIS软件拥有不同的数据格式,不同格式的GIS软件数据输入和计算机处理的方法也不相同。现在的GIS软件系统一般都不能完全直接处理其他不同结构的GIS系统数据,各类GIS软件系统功能都可以与其他主要GIS软件进行数据格式转换,但转换过程中或多或少都会存在各种类型数据的丢失、图形和属性数据不统一等问题。解决不同数据间格式交换一直是近年来开发GIS系统需要解决的关键问题。GIS要从项目应用走向企业和社会应用,在当前GIS软件数据格式较多的情况下,应制定一个统一的数据交换格式标准,并将国家的基础地理空间信息转换成这一标准,逐步向全国各领域推广。MapInfo与MapGIS间数据转换较为复杂,为了更好地运用这些资料,实现数据共享,有效地推广MapGIS在行业中的应用,更好地促进与MapInfo数据的兼容,深人研究MapInfo与MapGIS间数据转换是十分必要的。

1 MapGIS和MapInfo数据格式

MapGIS以工作区为核心进行数据组织和管理,工作区用来存放研究对象的空间数据、拓扑关系和属性数据,每个工作区由一个数据文件构成,工作区分为点、线、面等类型。在一个工作区中,可存放多个空间实体,每实体都有拥有唯一的实体号,依据实体号对实体数据的进行存取。MapGIS的标准数据格式主要有点文件(*.wt)、线文件(*.wl)和面文件(*.wp)等类型[1-4],其文件结构由文件头信息、数据区头信息和数据区构成。点文件主要用来存放点状要素,包括符号、点注记等,如控制点、独立地物、植被符号、地类符号、居民地注记、水系注记、高程注记等;线文件用来存放各类线状要素,如铁路、公路、河流、境界等;面文件用来存放各类面状要素,如地类、湖泊、水域等[5],交换格式是ASCII码的明码文件,其文件结构分文件头和数据区两部分。文件头记录的是文件的类型和版本信息;数据区记录的是实体的几何信息[6]。一个MapGIS图形文件产生点文件(*.wat)、线文件(*.wal)和区文件(*, wap)3个明码文件[7]。明码文件只表示要素的几何特征而不表示要素的属性特征,只能用于空间数据的显示和输出,必须转换为MapGIS的标准文件,才能进行与属性信息相关的查询与分析等操作。

MapInfo以表(TAB)的形式存储数据,采用空间数据与属性数据分开独立存储的数据库存储模式。属性数据存储在关系型数据库的中,主要由表结构文件(*.TAB)和属性数据文件(*.DAT)构成。*.TAB定义了属性数据的表结构,包括字段数、字段名、字段类型、字段宽度、索引字段及空间信息内容。*.DAT存放研究对象的属性数据,采用二进制编码。空间数据则采用MapInfo的自定义格式存储,主要存储在*.MAP文件中,存放内容包括研究对象的几何类型、坐标和颜色等了图形对象的信息,也采用二进制编码[6]。属性和空间数据间是通过交叉索引文件(*.ID)建立的索引机制关联起来,将每一个研究对象在*.MAP文件中的位置指针记录下来,文件中的一个指针由4个字节构成,指针排列顺序与*.DAT文件中各项记录存放的顺序完全统一。MapInfo表中有时也用索引文件(*.IND)对个别字段建立索引。MapInfo虽然没有公开其内部的数据结构,但给出了外部数据交换文件(*.MIF和*.MID)用于格式交换。*.MIF文件保存图形数据,包括每个点对象的坐标、符号;每个线对象的节点数、节点坐标、线型;每个区域对象包含的子区域数,每个子区域的节点数、节点坐标、填充图案[6],*.MID文件保存属性数据。MapInfo的文件存放形式为同一个文件可同时存放点、线、面3种要素。

2 MapGIS数据转换成MapInfo 2.1 投影转换

MapGIS可以与多个国内外主流GIS平台之间的进行数据格式转换。但是,MapGIS和MapInfo的地图投影是不一样的,在转换成MapInfo的*.MIF文件格式时,无论MapGIS数据采用什么投影坐标系,都是按MapInfo软件的地球投影(CoordSysEarth projection)生成的MIF文件[8-10],即使重新设置了坐标系和投影参数,都存在坐标投影参数不匹配的问题。因此,MapGIS向MapInfo数据转换时必须考虑相关的坐标投影问题,只有将MapGIS中的文件投影类型定义为地理坐标系统才可以正确转换为MapInfo数据,即在转换前必须将MapGIS的用户自定义坐标系及投影平面直角坐标系转换为地理坐标系才能使转换后的*.MIF文件的投影类型为地球投影。本文以1:100万广西隆安区域地震构造图的MapGIS点、线、面数据转换成MapInfo数据为例来说明其投影转换过程。

1) 当前正轴等角圆锥投影参数确定。1:100万广西隆安区域地震构造图上经纬网均标明了经度和纬度,读取地震构造图最左边和最下边的经线和纬线标明的经纬度作为起始经度和纬度,在投影变换系统中,通过“系列标准图框”功能,在1:100万图框参数设置框中输入前面读取的经度和续度,分别为106°00′、22°00′,生成1:100万的标准框。利用“投影转换/MapGIS文件投影”功能,对已生成的1:100万标准框文件,利用“投影转换\编辑当前投影参数”功能,显示的当前输入投影参数即为所求的投影参数,如图 1所示。

图 1 1:100万投影参数 Fig.1 1:1 000 000 Projection Parameters

2) 平面直角坐标转成坐标未平移地理坐标。在MapGIS地图投影系统中,利用“文件/打开文件”功能打开1:100万区域地震构造图点、线、面文件;利用“投影转换/MapGIS文件投影”功能,选择要转换的文件;利用“投影转换/编辑当前投影参数”功能,编辑当前投影参数;原有1:100万区域地震构造图是用户自定义坐标系,所以应该赋予它当前投影参数,当前投影参数设置采用如图 1所示;利用“投影转换/设置转换后参数”功能,设置转换后参数,MapGIS点、线、面文件转换成MapInfo要求MapGIS文件的投影坐标系类型为地理坐标,坐标单位为度;利用“投影转换/进行投影变换”功能,或者利用“投影转换/成批文件投影变换”进行投影变换,此时坐标没有平移。

3) 平面直角坐标转成坐标平移后地理坐标。在图形编辑系统中打开转换后的文件,移动鼠标到某一已知的经纬度数的网线交叉点,如图 2所示,鼠标停留点经纬线交叉点处的经度为107°00′,纬度为21°40′,用小数点表达为107.00和21.66,而此时状态栏中经纬度坐标为106.21和20.06,两者间有个差值,按以下公式:x=107.00-106.21=0.79,y=21.66-20.06=1.6计算需平移的量。再一次利用“投影转换/进行投影变换”功能对原文件进行坐标平移后的投影变换,xy坐标平移量分别为0.79和1.6,如图 3所示。

图 2 经纬网对应的状态栏坐标 Fig.2 Status Bar Coordinates Corresponding to the Graticule

图 3 坐标平移后投影转换 Fig.3 Projection Transformation After Coordinate Translation

2.2 MapGIS文件转为MapInfo文件

1) 在MapGIS文件转换系统中,装入1:100万区域地震构造图点、线、面文件,选择“输出\输出MapInfo格式”功能,输出MapInfo的*.MIF格式文件。

2) 在MapInfo中选择“Table\Import”功能,输入MapInfo的*.MIF格式,保存成*.TAB格式,在文件菜单Open Table打开*.TAB,如图 4所示。

图 4 显示MapInfo文件 Fig.4 Display MapInfo Files

3 MapInfo数据转换成MapGIS

1) 编辑对应关系表文件。MapGIS和MapInfo的符号库、线型库、颜色库和图案库完全不一致,即使转换前后内容要素保持完整,转换后符号的类型、大小、颜色,线的线型、线宽、线色及面的图案、颜色等参数均会发生一定程度的变化,使其在两个软件环境中显示的地图出现较大的差异。因而在格式转换前必须编辑两个软件符号、线型及图案间的对应关系表。对应关系表在MapGIS安装目录/mapgis/slib目录下的GisTInfo.mtg数据转换对照表中编辑,也可以将该文件以记事本或写字板的方式打开编辑,如图 5所示。点符号对照表为SymbolStyle,线型对照表为LineStyle,图案对照表为FillRegionStyle。SymbolStyle、LineStyle、FillRegionStyle后面的数字是每类的对照个数,如SymbolStyle 3表明有3个符号对应关系,第一列数字表示MapGIS库中的序号;第二列数字表示MapInfo库中的序号。编码间用西文逗号隔开,每行编码后不要留有空格,每一行以回车键结束,且最后一行也必须以回车键结束。

图 5 库对应关系表 Fig.5 Correspondence Table Between Libraries

2)*. TAB文件转化为*.MIF文件。MapInfo文件主要有*. TAB和*.MIF两种,由于*. MIF文件的存储模式更适合数据交换,所以要实现*. TAB文件转换成MapGIS格式,首先要将*. TAB文件转化为*.MIF文件。其具体过程如下:在MapInfo系统中选择“File\Open Table”功能,并打开需要打开要转换图层,然后选择“Table\Export”功能中选择导出的保存路径,保存类型选择*.MIF格式即可。

3) *.MIF转*.wt、*.wl、*.wp。在MapGIS“图形处理\文件转换”子系统中,,利用“输入\装入MapInfo数据”功能,装入MapInfo数据,打开要装入的*.MIF文件,右键单击“复位窗口”,窗口中会显示出要转换的图形文件;然后选择菜单栏中的“文件”;最后根据导入的*.MIF文件的属性(如点、线、面),对应进行保存。

4) 成批文件转换。进入文件转换系统,利用“输入/成批转换MapInfo的*.MIF数据”功能,选择所有文件所在的目录,完成成批文件转换,转换结果的文件名保存在同一目录下,自动产生与原来相同文件名,仅扩展名变为MapGIS点、线、面格式,同时产生一个工程文件MapInfoToMapGIS1,在图形编辑系统中打开工程文件MapInfoToMapGIS1,可显示转换后的结果,如图 6所示。

图 6 显示MapGIS文件 Fig.6 Display MapGIS File

4 结束语

目前,尽管MapGIS和MapInfo两种完全不同格式的数据间可以相互转换,但仍然存在一些问题。MapInfo用表来组织空间数据,一个表文件就相当于一个图层,一个图层可包括点、线和面不同几何对象,即不同点、线和面可在同一图层中存放。而MapGIS图层是把某些特征相同的要素组合在一起构成一个图层,如地理底图中水系构成一个图层;道路构成一个图层;铁路构成一个图层等。MapGIS点、线、面文件分别对应于点、线和面图层中。如果将MapInfo中包含点、线和面不同几何类型的图层直接转为MapGIS,会产生同文件名的点、线、面文件,增加MapGIS文件的个数。因此,转换前需对MapInfo文件进行图层编辑,使点、线、面不同对象分别存放于对应的点、线和面图层中。MapInfo不包含拓扑关系,线、面转化为MapGIS文件时,需要进行拓扑重建,在重建过程中可能会产生一些奇异和碎裂多边形,从而破坏原有对象的空间完整性。因而在数据转换过程中,面对可能出现的各种各样的问题,要对转换结果进行属性数据缺失、空间数据不准确等进行编辑修改,尽可能减少数据转换产生的误差。

参考文献
[1]
郑贵洲, 姚映听, 彭俊芳. AutoCAD与MapGIS K9数据转换[J]. 测绘地理信息, 2013, 38(2): 39-41.
[2]
黄涛. 浅谈MapGIS与AutoCAD的数据转换[J]. 新疆有色金属, 2008(3): 32-34.
[3]
周玉明, 朱敏芳. MapGIS与MapInfo的数据格式转换[J]. 江苏测绘, 2002, 25(1): 47-48.
[4]
张于, 武健强, 吴夏. MapGIS数据向ArcGIS数据格式转换方法的实践与探讨[J]. 江苏地质, 2007, 31(3): 258-261.
[5]
章武英. MapInfo与MapGIS两种制图方法的转换的浅议[J]. 甘肃林业职业技术学院学报, 2007(10): 72-74.
[6]
辛蕊, 赵瑞斌. ArcGIS, MapInfo到MapGIS数据格式的转换[J]. 天津城市建设学院学报, 2010, 16(1): 58-61. DOI:10.3969/j.issn.1006-6853.2010.01.015
[7]
索俊锋. 基于MapGIS6_X研究和ArcGIS 9_0平台的数据格式转换研究[J]. 国土资源信息化, 2006(4): 29-32.
[8]
郭风华, 李仁杰, 郭顺通. MapGIS软件坐标系统与MapInfo数据交换的关系[J]. 地理空间信息, 2007, 15(3): 128-130. DOI:10.3969/j.issn.1672-4623.2007.03.044
[9]
张玉杰, 张继武, 张栋. MapGIS与MapInfo的数据文件转换[J]. 黄金, 2008, 29(11): 32-33. DOI:10.3969/j.issn.1001-1277.2008.11.009
[10]
孙正林, 邹峥嵘, 曾毅. 基于FME的城镇地籍空间数据转换研究[J]. 测绘地理信息, 2011, 36(2): 16-18.