深圳網(wǎng)站快速備案淄博百度推廣
微信搜索:“二十同學” 公眾號,歡迎關(guān)注一條不一樣的成長之路
MapInfo MIF/MID文件格式描述
? ? ? ? 這種通用的格式允許把普通的數(shù)據(jù)添加到多種的圖像元素中。MIF/MID文件采用ASCII編碼,因此它是可編輯的、相對比較容易生成、并且可以工作在MapInfo支持的所有平臺上。也許理解MIF格式的最好的方法是在讀完這篇文章后,拿著MIF格式說明,研究一個MIF文件。你也可以通過“exporting files to MIF”創(chuàng)建你自己的MIF文件,然后在文本編輯器中好好的研究它。
? ? ? ? MapInfo數(shù)據(jù)存在于兩種文件中--圖形數(shù)據(jù)存儲在.MIF文件、文本數(shù)據(jù)存儲在.MID文件。文本數(shù)據(jù)包括每一項記錄的一行和回車,回車加換行,行之間的換行。MIF文件的數(shù)據(jù)包括兩部分--文件頭和數(shù)據(jù)區(qū)。文件頭存放著如何創(chuàng)建MapInfo表格的信息;數(shù)據(jù)區(qū)存放著圖形對象的解釋。
? ? ? ? 下面是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”指定表中創(chuàng)建文本所使用的字符集。比如說:"WindowsLatin1"說明文件使用的是the Windows US & Western Europe字符集;"MacRoman"說明文件使用的是the Macintosh US & Western Europe字符集;或者,注明"Neutral"是為了防止將文本轉(zhuǎn)成了另外的字符集。如果你沒有使用其中任何一個字符集,你可以通過exporting a table和examining the .MIF file in a text editor為你的字符集指定正確的語法。
3.Delimiter?分隔符
指定引號(即""或者'')之間的分隔符,比如說:
DELIMITER ";"
默認的分隔符是Tab;如果你使用的是默認分隔符,你不需要“DELIMITER”這一行。
4.Unique
指定一個數(shù)字。這個數(shù)字指定一個數(shù)據(jù)庫的列;3是第三列,7是第七列,以此類推。發(fā)生在UNIQUE指定的列上的事情是微妙的。比如說,想象一下你建立一個高速公路的數(shù)據(jù)庫。每一條路都只有一個名字,但是在每一路段中都會把名字重寫一遍。這時你會把NAME這一列放在一個單獨的表中,而包含每個路段的信息的其他列不會放在那個表中。這樣就可以創(chuàng)建兩個相關(guān)的表格:一個NAME表,一個包含其他信息。This is how MapInfo's various street maps(StreetInfo) are prepared.
5.Index?索引
“Index”指明表中已經(jīng)建立索引的列,“INDEX”項包括一個數(shù)字(或者一系列數(shù)字)。每一個數(shù)字指定一個數(shù)據(jù)庫的列;3是第三列,7是第七列,以此類推。在“INDEX”表中指定的列會建立索引。
6.CoordSys
指定“COORDSYS”項表示數(shù)據(jù)不是以經(jīng)緯度的形式存儲的。當沒有指定“COORDSYS”這一項時,數(shù)據(jù)被認為是以經(jīng)緯度的方式存儲。All coordinates are stored with respectto the northeast quadrant.。?在美國的點的x坐標為負而在歐洲的點(Greenwich以東)的坐標為正。在北半球的點的y坐標為正而在南半球的點的坐標為負。?
7.Transform?轉(zhuǎn)換
你可以通過“Transform”實現(xiàn)地理元素的坐標轉(zhuǎn)換。
--------------------------------------------
| Quadrant 2: | Quadrant 1: |
| Nortwest Quadrant | Norteast Quadrant |
--------------------------------------------
| Quadrant 3: | Quadrant 4: |
| Southwest Quadrant | Southeast Quadrant |
--------------------------------------------
8.Columns?列
指定列數(shù)。然后,為每一列,建立一行(包括the column name、the column type、一個用來指定域長度的數(shù)字--僅為character和decimal類型的列建立)用來說明其格式。有效的列類型包括:
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)?
通過上面指定的數(shù)據(jù)庫,我們知道對應(yīng)的MID文件有三列:
列名????????????列類型
STATE???????????char(15) 15位長的字符串
POPULATION?????INTGER???整型
AREA????????????decimal(8,4)?一個最長8位、小數(shù)點后有4位的小數(shù)
?
MIF文件的“data”部分緊跟著文件頭并且必須由一個單行“DATA”引出:
DATA
MIF文件的數(shù)據(jù)部分可以包括任意長度的圖形變量,其中每一項對映著一個圖形對象。MapInfo自動使MIF和MID文件里面的每一條相一致,比如說:MIF文件的第一個object對應(yīng)著MID文件的第一行,MIF文件的第二個object對應(yīng)著MID文件的第二行。
當MIF文件中沒有圖形對象與MID文件的行對應(yīng)時,一個“blank”對象必須寫在MIF文件中相應(yīng)的位置。
NONE
圖形對象可以被指定為如下幾種類型:
point??????????//點
line???????????//線
polyline???????//折線
region?????????//區(qū)域
arc????????????//弧
text???????????//文本
rectangle??????//矩形
rounded rectangle???//圓矩(即4個角做“鈍化”處理的矩形)
ellipse????????//橢圓