摘 要:MAPINFO这一大型桌面地理信息系统软件提供了tab格式和MIF(MID)两种数据格式,其中tab是其内部数据存储格式,所有基于该软件的应用系统都以此格式为依托。MIF(MID)是MAPINFO的外部数据交换文件格式,MAPINFO主要通过MIF,MID两个文件与其他GIS软件建立数据接口,方便数据使用。主要介绍Mapinfo的数据转换格式,防止在使用中转换信息丢失。
关键词:MapInfo;MIF(MID);头文件;数据文件
前言
Mapinfo的MIF(MID)数据格式是一种外部数据交换标准。因为它是ASCII码文件,所以它可以被所有支持Mapinfo的平台使用,并能支持多种数据格式及其转换,例如支持目前市场上流行的图形图像格式。也可接受AutoCAD的DWG,DXF标准文件格式,还可通过MIF及MID文件与其它软件建立数据的接口,其中MIF文件内保存有图形信息,MID文件内保存有属性信息。
1 MIF文件格式
Mapinfo数据分存在两个文件中:图形数据在MIF中,属性数据在MID中。MIF及MID文件通过MapInfo的菜单命令Import和Export来导入或导出。文本数据是限定数据,一行一个记录。MIF文件有两部分——文件头部分和数据体部分。创建表的具体信息在头文件中,图形实体在数据文件中定义。
以下面是一个MIF文件的格式为例
下面依次介绍各部分的含义及详细格式。
1.1文件头部分格式
(1)VERSION
这个部分说明当前MIF文件的版本:VERSION 1,VERSION 2,VERSION 300,VERSION 450。Version 300,是在Mapinfo3.0中引进的,它可以创建多个节点的折线目标。Version 450扩大了节点的限制:单个区域或折线的最大数目可以达到1,048,572个。如果一个目标的存储达到了32K,表的读取空间已经超过了Version 450,那么这个目标将不可见。只有不超出32K的目标才可以被显示。Version 450也包括了点的大小和画笔的宽度。
(2)Charset
这个句子确定表是由哪种文字创建的。例如:“WindowsLatin1”指出文件用Windows US或西欧的文字格式;“MacRoman”指出文件用Windows US或东欧的文字格式;“Neutral”指出文件不可以由文本转到其它的文字格式。如果没有使用文字格式,则可以通过转出表或在文本编辑器中检查MIF文件来确定文字格式的语法规则。
(3)Delimiter
确定字符之间的分隔方法,例如:DELIMITER “;”,表示用“;”号作为分隔符。默认情况下,采用Tab为分隔符。当使用的是缺省的间隔符,可以不需要DELIMITER行。
(4)Unique
这个句子用来定义数据库中表的字段数,即属性数,例如:3是第三个字段,7是第七个字段等等。
(5)Index
为目标建立索引,需要将一组数作为Index。每一个数都对应数据库中的一个字段。INDEX列表中的字段对应不同的目标。
(6)CoordSys Clause
这句话指出数据的投影类型,即坐标系。Mapinfo共定义300多种坐标系。详细的坐标系定义方法本文不作介绍。
(7)Transform Clause
坐标系转换语句。
(8)Columns
指出字段的数目。对于每一个Column,创建包括字段名、字段类型,对于字符和十进制字段,还要创建字段的宽度数值。
1.2数据体部分格式
MIF文件的数据部分和文件头是相匹配的,开头必须以DATA开头。MIF文件的数据部分是对原始图形的数据描述,数据与图形一一对应。其图形目标具体被分为:point、line、polyline、region、arc、text、rectangle、roundedrectangle、ellipse等,下面分别讨论其描述方法。
Point:有两个参数:x坐标值和y坐标值。作为一个点实体,需要有一个符号标示。这些符号都是用数值设计的。如果不指定,系统会默认目前的符号。
Line:有四个参数:两端点的x、y坐标。作为一实体,需要一个画笔表示其属性。如果不指定,系统会自动用当前的画笔。
Polyline:有不少于一个的截面。当它含有多于一个的截面,必须有关键字MULTIPLE指出。对于每一个面域,定义一段用numpts开头的数据段。利用PEN确定线的属性。如果你选择SMOOTH关键字,折线变得光滑。
Region:有不少于一个的多边形组成。指出多边形的个数用numpolygons(紧跟在REGION后面)。对于每一个多边形,像折线一样,用关键字numpts开头,紧跟着组成该多边形的节点的坐标串。用PEN和BRUSH确定目标实体的属性。利用CENTER明确指出目标实体的质心(质心必须在区域内)。
Arc:要求边界矩形对角线的端点的坐标和起始于结束的角度(逆时针旋转)。它可以使用pen类型。art指定一个椭圆区域,其中心由边界矩形决定。
Text:是一个文本,最多可存255个字符。为了可以输入多行文本,在需要换行的地方引入字符\n。
Rectangle:要求对角线两端点的坐标值。也定义了Pen和Brush属性。
Rounded rectangle:要求对角线两端点的坐标值和圆角的度数(a)。可以定义Pen和Brush定义属性。
Ellipse:要求边界矩形的对角线两端点的坐标值。可以定义Pen和Brush定义属性。
2 MID文件
Mapinfo将数据分存与MIF和MID文件中。MIF文件包含图形数据及属性表结构的定义;MID文件中包含的是数据的具体属性内容。在MID文件中每一行对应一个实体,即一个目标。而同一实体的各属性间用分隔符分隔,缺省的分隔符是Tab。MID文件中的每一个纪录都对应MIF文件中的图形目标。对于同一个目标,MIF第一行记录它,MID也在第一行记录它。在MID文件中,如果存在一行空的目标记录,那么,在MIF文件中在对应的地方写着“NONE”。一般来说MID文件必须与MIF文件同时出现。如果没有MID文件,则MIF中所定义的所有图形的属性内容均为空。
结束语
现今基于MapInfo软件开发了大量的应用系统,数据存储和管理问题一直困扰着开发者和应用者,通过以上研究可为今后的开发和应用提供有益的参考。
参考文献
[1]杨东民.MapInfo数据的存储设计[J].内蒙古石油化工,2006,5:44-45.
[2]电子地图在车载导航系统中应用的研究[D].长沙:湖南大学研究生论文,2006,4:13-16.
点此咨询学术顾问 快人一步得到答案