摘 要: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.
本文链接:http://www.qk112.com/lwfw/jsjlw/jisuanjiyingyong/244915.html