MIF/MID数据格式说明

MIF(Memory Initialization File)是MapInfo的一种数据交换格式,常用于数据交换和简单易读的特性。MIF文件包含图形数据,而MID文件存储属性信息。文件头包括版本、字符集、分隔符等信息,数据节由图形对象定义组成。图形对象包括点、直线、折线、区域等,每个对象都有特定的参数和样式。MIF文件的列类型包括char、integer等,图形对象类型包括点、直线、折线、区域等。理解MIF/MID格式,有助于进行数据读写操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Mif、mid、tab都是mapinfo定义的数据格式,虽然现在mapinfo已经很少人用了,但mif/mid格式由于其简单易读,还是很常见的数据交换格式。tab是由mif/mid生成的,除了在mapinfo软件中用外,几乎没啥用,只要知道mif和mid的数据格式定义就行了。

以下复制于百度百科:https://baike.baidu.com/item/Mif/1416600(额,我把我觉得有问题的做了修改,关于专业名词解释,百度百科的确有问题。)

 

MIF(Memory Initialization File),即内存初始化文件,是MapInfo通用数据交换格式,这种格式是ASCⅡ码,可以编辑,容易生成,且可以工作在MapInfo支持的所有平台上。它将MapInfo数据保存在两个文件中:图形数据保存在.MIF文件中,而文本(属性)数据保存在.MID文件中。其中,.MIF文件有两个区域:文件头区域和数据节,文件头中保存了如何创建MapInfo表的信息,数据节中则是所有图形对象的定义。故MIF应是保存图形的一种文件格式。

 

一、简介

MIF是Mapinfo用来向外交换数据的一种中间交换文件。当用户在Mapinfo中将一张Mapinfo地图表以MIF格式转出到MIF文件中后,Mapinfo会同时在用户指定的保存目录下生成两个文件(*.mif,*.mid)。其中*.mif文件保存了该Mapinfo表的表结构及表中所有空间对象的空间信息(如:每个点对象的符号样式、点位坐标;每个线对象的线样式、节点数据、节点坐标;区域对象的填充模式、每个区域包含的子区域个数及每个区域的节点数、节点数等)。而*.mid文件则按记录顺序保存了每个空间对象的所有属性信息。这两个文件都为文本性质的文件,用户可以通过相应的文件读写方法实现对文件内容的读写,怎么读写txt文件,就可以怎么读写mif和mid。

二、格式举例

1.样例

这是一个MIF 文件头的说明,方括号内是可选信息:

Version n

Charset "characterSetName"

[ DELIMITER "<c>" ]

[ UNIQUE n,n.. ]

[ INDEX n,n.. ]

[ COORDSYS... ]

[ TRANSFORM... ]

COLUMNS n

<name> <type>

<name> <type>

…

…

DATA

2.分析

Version 子句说明您所使用的是VERSION 1、VERSION 2、VERSION 300还是VERSION 450 格式。

Charset 子句指定在表中创建文本时使用的字符集。

Delimiter 在引号中指定分隔符,缺省情况下,分隔符是TAB键;如果使用缺省值,则无需DELIMITER行。

Unique(唯一) 指定一个号码。这个号码指示数据库的一列;

Index(索引) 要指出表中的列有索引,可以在Index子句中引入一个号码(或一系列用逗号分隔的号码)。每个号码代表数据库的一列;INDEX 列表中的列将有附录为它们制作的索引。

CoordSys(坐标系统)子句 指定COORDSYS子句以注明数据不是以经度/纬度形式保存的。未指定COORDSYS子句时,假定数据是以经度/纬度形式保存的。所有坐标都是以相对于东北象限的值保存的。

Columns(列) 指定列数。然后为每列创建一行,它包含列名、列类型,对于字符列和小数列,还包含一个指示字段宽度的数。

MIF文件的数据节在文件头之后,且必须由DATA 以单独的一行引入。

MIF文件的数据节可以有任意多个图形初值,每个初值代表一个图形对象。MapInfo使MIF和MID 文件中的条目相互匹配,MIF文件中的第一个对象与MID文件中的第一行关联,MIF文件中的第二个对象与MID 文件中的第二行关联,依此类推。如果MID 文件中特定的一行没有对应的图形对象,那么必须在MIF 文件中的相应位置上写一个“空白”对象(NONE)以保留该位置。

3.数据

是不是已经懵了?

百度百科果然有这个本事,把不太难的东西解释得谁也看不懂。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值