MIF/MID格式简介

微信搜索:“二十同学” 公众号,欢迎关注一条不一样的成长之路

MapInfo MIF/MID文件格式描述

        这种通用的格式允许把普通的数据添加到多种的图像元素中。MIF/MID文件采用ASCII编码,因此它是可编辑的、相对比较容易生成、并且可以工作在MapInfo支持的所有平台上。也许理解MIF格式的最好的方法是在读完这篇文章后,拿着MIF格式说明,研究一个MIF文件。你也可以通过“exporting files to MIF”创建你自己的MIF文件,然后在文本编辑器中好好的研究它。

        MapInfo数据存在于两种文件中--图形数据存储在.MIF文件、文本数据存储在.MID文件。文本数据包括每一项记录的一行和回车,回车加换行,行之间的换行。MIF文件的数据包括两部分--文件头和数据区。文件头存放着如何创建MapInfo表格的信息;数据区存放着图形对象的解释。

        下面是MIF文件头的描述(包括可选项,下表中由“[ ]”括起来的部分就是可选项)

Version n 

Charset "characterSetName"

[ DELIMITER "<c>" ] 

[ UNIQUE n,n.. ] 

[ INDEX n,n.. ]

[ COORDSYS... ] 

[ TRANSFORM... ]

COLUMNS n

<name> <type> 

<name> <type> 

… 

… 

DATA

1.Version 版本号

Version”说明你使用的MIF格式的版本(VERSION 1, VERSION 2, VERSION 300中的一种)Version 300,引自Mapinfo 3.0,允许形容由多段组成的折线对象。

2.Charset 字符集

Charset”指定表中创建文本所使用的字符集。比如说:"WindowsLatin1"说明文件使用的是the Windows US & Western Europe字符集;"MacRoman"说明文件使用的是the Macintosh US & Western Europe字符集;或者,注明"Neutral"是为了防止将文本转成了另外的字符集。如果你没有使用其中任何一个字符集,你可以通过exporting a tableexamining the .MIF file in a text editor为你的字符集指定正确的语法。

3.Delimiter 分隔符

指定引号(即""或者'')之间的分隔符,比如说:

DELIMITER ";"

默认的分隔符是Tab;如果你使用的是默认分隔符,你不需要“DELIMITER”这一行。

4.Unique

指定一个数字。这个数字指定一个数据库的列;3是第三列,7是第七列,以此类推。发生在UNIQUE指定的列上的事情是微妙的。比如说,想象一下你建立一个高速公路的数据库。每一条路都只有一个名字,但是在每一路段中都会把名字重写一遍。这时你会把NAME这一列放在一个单独的表中,而包含每个路段的信息的其他列不会放在那个表中。这样就可以创建两个相关的表格:一个NAME表,一个包含其他信息。This is how MapInfo's various street maps(StreetInfo) are prepared.

5.Index 索引

Index”指明表中已经建立索引的列,“INDEX”项包括一个数字(或者一系列数字)。每一个数字指定一个数据库的列;3是第三列,7是第七列,以此类推。在“INDEX”表中指定的列会建立索引。

6.CoordSys

指定“COORDSYS”项表示数据不是以经纬度的形式存储的。当没有指定“COORDSYS”这一项时,数据被认为是以经纬度的方式存储。All coordinates are stored with respectto the northeast quadrant.。 在美国的点的x坐标为负而在欧洲的点(Greenwich以东)的坐标为正。在北半球的点的y坐标为正而在南半球的点的坐标为负。 

7.Transform 转换

你可以通过“Transform”实现地理元素的坐标转换。

--------------------------------------------

| Quadrant 2: | Quadrant 1: |

| Nortwest Quadrant | Norteast Quadrant |

--------------------------------------------

| Quadrant 3: | Quadrant 4: |

| Southwest Quadrant | Southeast Quadrant |

--------------------------------------------

8.Columns 

指定列数。然后,为每一列,建立一行(包括the column namethe column type、一个用来指定域长度的数字--仅为characterdecimal类型的列建立)用来说明其格式。有效的列类型包括:

char(width)

integer        [说明:which is 4 bytes, from -2^31 to 2^31-1]

smallint        [说明:which is 2 bytes, so it can only store numbers between -32767 and +32767)]

decimal (width, decimals)

float

date

logical 

下面是mif文件头的COLUMNS部分的一个例子:

STATE char (15) 

POPULATION integer 

AREA decimal (8,4) 

通过上面指定的数据库,我们知道对应的MID文件有三列:

列名            列类型

STATE           char(15) 15位长的字符串

POPULATION     INTGER   整型

AREA            decimal(8,4) 一个最长8位、小数点后有4位的小数

 

MIF文件的“data”部分紧跟着文件头并且必须由一个单行“DATA”引出:

DATA

MIF文件的数据部分可以包括任意长度的图形变量,其中每一项对映着一个图形对象。MapInfo自动使MIFMID文件里面的每一条相一致,比如说:MIF文件的第一个object对应着MID文件的第一行,MIF文件的第二个object对应着MID文件的第二行。

MIF文件中没有图形对象与MID文件的行对应时,一个“blank”对象必须写在MIF文件中相应的位置。

NONE

图形对象可以被指定为如下几种类型:

point          //

line           //线

polyline       //折线

region         //区域

arc            //

text           //文本

rectangle      //矩形

rounded rectangle   //圆矩(即4个角做“钝化”处理的矩形)

ellipse        //椭圆

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

二十同学

谢谢大佬打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值