您的位置:首页 > 其它

MapInfo数据交换文件格式浅探

2013-08-14 01:08 155 查看
http://blog.csdn.net/zhihu008/article/details/7762351

摘 要: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.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: