MIF

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檔案則按記錄順序保存了每個空間對象的所有屬性信息。這兩個檔案都為文本性質的檔案,用戶可以通過相應的檔案讀寫方法實現對檔案內容的讀寫。MapInfo數據在兩個檔案中——圖形保存在.MIF檔案中而文本數據包含在.MID檔案中。文本數據是分界數據,每行一個記錄以及行間的回車,或者回車加換行,或者換行。 MIF檔案有兩個區域—檔案頭區域和數據節。有關如何創建MapInfo表的信息保存在檔案頭中;圖形對象定義保存在數據節中。

格式舉例

這是一個MIF 檔案頭的說明,方括弧內是可選信息。MIF File header 格式:

Version n

Charset "characterSetName"

[ DELIMITER "<c>" ]

[ UNIQUE n,n.. ]

[ INDEX n,n.. ]

[ COORDSYS... ]

[ TRANSFORM... ]

COLUMNS n

<name> <type>

<name> <type>

DATA

分析

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

Charset 子句指定在表中創建文本時使用的字元集。

Delimiter 在引號中指定分隔設定,預設情況下,分隔設定是TAB鍵;如果使用預設值,則無需DELIMITER行。

Unique(唯一) 指定一個號碼。這個號碼指示資料庫的一列;

Index(索引) 要指出表中的列有索引,可以在Index子句中引入一個號碼(或一系列用逗號分隔的號碼)。每個號碼代表資料庫的一列;INDEX 列表中的列將有附錄為它們製作的索引。

CoordSys(坐標系統)子句 指定COORDSYS子句以註明數據不是以經度/緯度形式保存的。未指定COORDSYS子句時,假定數據是以經度/緯度形式保存的。所有坐標都是以相對於東北象限的值保存的。(

其中一些參數設定比較複雜)

Columns(列) 指定列數。然後為每列創建一行,它包含列名、列類型,對於字元列和小數列,還包含一個指示欄位寬度的數。

MIF檔案的數據節在檔案頭之後,且必須由DATA 以單獨的一行引入:

DATA

MIF檔案的數據節可以有任意多個圖形初值,每個初值代表一個圖形對象。MapInfo使MIF和MID 檔案中的條目相互匹配, MIF檔案中的第一個對象與MID檔案中的第一行關聯, MIF檔案中的第二個對象與MID 檔案中的第二行關聯,依此類推。如果MID 檔案中特定的一行沒有對應的圖形對象,那么必須在MIF 檔案中的相應位置上寫一個“空白”對象(NONE)以保留該位置:

NONE

列類型

有效的列類型是

l char(寬度)

l integer(4 個位元組)

l smallint(2 個位元組,因此只能存儲從-32767 到+32767 的數)

l decimal(寬度,小數位數)

l float

l date

l logical

圖形對象類型

可以指定的圖形對象為

l 點(point)

l 直線(line)

l 折線(polyline)

l 區域(region)

l 圓弧(arc)

l 文本(text)

l 矩形(rectangle)

l 圓角矩形(rounded rectangle)

l 橢圓(ellipse)

一個點(point)對象需要兩個參數:一個X 坐標和一個Y坐標。作為一個選項,可以設定代表該點的symbol(符號)。symbol

是用數字標明的。如果忽略了SYMBOL 子句,則使用當前symbol。

POINT x y

〔 SYMBOL (shape, color, size)〕

直線

一個直線(line)對象需要四個參數;每個端點各一個X 坐標和一個Y 坐標。作為一個選項,可以指定pen

類型,如果沒有指定pen類型,則使用當前pen 類型。

LINE x1 y1 x2 y2

〔 PEN (width, pattern, color)〕

折線

一個折線(polyline)對象由一節或多節構成。如果該折線不止一節,則應包含MULTIPLE

關鍵字,並在其後寫明節數。為每節設定一個numpts 參數(該參數指出該節中節點的數量),

其後為每個節點的x/y坐標對。用可選的PEN 子句(本附錄稍後說明)來指定線樣式。如果包含了可選的SMOOTH 關鍵字,則折線被平滑。

PLINE 〔 MULTIPLE numsections 〕

numpts1

x1 y1

x2 y2

:

〔 numpts2

x1 y1

x2 y2 〕

:

〔 PEN (width, pattern, color)〕

〔 SMOOTH 〕

區域

一個區域(region)對象由一個或多個多邊形構成。用numpolygons 參數設定多邊形數量(緊

跟在REGION 關鍵字後面)。為每個多邊形設定一個numpts參數(該參數指出該多邊形中節點的數量),其後為每個節點的x/y坐標對。用可選的PEN

和BRUSH 子句(本附錄稍後說明)指定該對象的樣式。用可選的CENTER子句來精確定義該對象的中心位置。中心必須位於對象內。

REGION numpolygons

numpts1

x1 y1

x2 y2

:

〔numpts2

x1 y1

x2 y2 〕

:

〔 PEN (width, pattern, color)〕

〔 BRUSH (pattern, forecolor, backcolor)〕

〔 CENTER x y 〕

圓弧

一個圓弧(arc)需要其外接矩形的對角位置以及該圓弧的起點(a)和終點(b)的角度,其中角度以度的形式表示,以時鐘上三點鐘處為零點反時針移動。作為一個選項,可以指定pen類型。(一段圓弧指定了一個橢圓的一段,圓弧的兩角由外接矩形確定。)

ARC x1 y1 x2 y2

a b

〔 PEN (width, pattern, color)〕

文本

一個文本(text)對象由一個文本字元串構成,不超過255個字元。要使文本字元串換行成多行,可在textstring參數內插入字元\n(例如“第一行\n

第二行\n第三行”)。x1、y1、

x2和y2 指定了文本在地圖上的位置。間隔可以是1.0(單間距)、1.5 或2.0(雙間距)。

用Font 子句來控制字型等等。

TEXT "textstring"

x1 y1 x2 y2

〔 FONT...〕

〔 Spacing {1.0 | 1.5 | 2.0}〕

〔 Justify {Left | Center | Right}〕

〔 Angle text_angle〕

〔 Label Line {simple | arrow} x y 〕

矩形

一個矩形(rectangle)需要一對對角的坐標。作為選項,可以指定pen和brush類型。

RECT x1 y1 x2 y2

〔 PEN (width, pattern, color)〕

〔 BRUSH (pattern, forecolor, backcolor)〕

圓角矩形

一個圓角矩形(rounded rectangle)需要一對對角的坐標和圓的角度(a)。作為選項,可以指定pen 和brush

類型。圓角的角度用坐標單位表示。

ROUNDRECT x1 y1 x2 y2

a

〔 PEN (width, pattern, color)〕

〔 BRUSH (pattern, forecolor, backcolor)〕

橢圓

一個橢圓(ellipse)對象需要其外接矩形的一對對角的坐標。作為選項,可以指定pen 和brush類型。

ELLIPSE x1 y1 x2 y2

〔 PEN (width, pattern, color)〕

〔 BRUSH (pattern, forecolor, backcolor)〕

相關樣式

Pen樣式

Pen 子句設定諸如直線、折線或圓弧此類的線性對象的寬度、圖案和顏色。

Pen 子句有如下語法:

PEN (width, pattern, color)

Width 是從1 到7 的一個數。1-7 是螢幕象素的寬度。11-2047是要轉換為點的數值:

penwidth = (點數 * 10) + 100 只有在針對不可見的線,筆模式為1時才有效。

color 是一個整數,表示一個24 位的RGB顏色值。

Pattern 是一個從1到118的整數,模式號為1時可見。模式號和畫筆檔案中畫筆號相對應。可以用畫筆編輯器來編輯畫筆檔案。 有效的畫筆號是從1 到畫筆檔案中最大的畫筆號,應該不超過127。如果一個畫筆樣式是交疊的,就增加128 作為其畫筆號。交疊樣式在129-255範圍之內。由於畫筆檔案可以修改,而且交疊也可以指定,所以畫筆模式可以是1-255之間的數。

Brush 樣式

Brush 設定諸如圓或區域這樣的填充對象的圖案、前景顏色和背景顏色。Brush 子句有如下語法:

Brush (pattern, forecolor 〔, backcolor 〕)

forecolor(前景顏色)和 backcolor(背景顏色)參數都是整數,代表24 位RGB 顏色值。

pattern(圖案)是一個1 到71 之間的數。注意:1 號圖案是“不填充”而2號圖案是純色填充。


Symbol 樣式

Symbol 子句設定點對象的外觀。Symbol 子句有三種格式,如下所述。

MapInfo 3.0語法

Symbol 子句設定一個點對象的外觀。Symbol 子句有三種格式。

要設定一種使用“Old MapInfo Symbols”(MapInfo早期版本使用的符號)的Symbol 樣式,使用如下語法:

SYMBOL (shape, color, size)

shape(形狀)參數是一個整數值、31 或更大;31代表空白symbol(即該對象是不可見的)。標準symbol 集合包括32到67號symbol,但用戶可以用Symbol 應用程式來自定義symbol集合。

color(顏色)參數是一個整數,代表一個24 位RGB顏色值

size(大小)參數是一個1 到48 之間的整數,代表點的尺寸。

TrueType字型語法

要設定一個基於TrueType 字型的字元的Symbol 樣式,使用如下語法:

SYMBOL (shape, color, size, fontname, fontstyle, rotation)

fontname(字型名稱)參數是一個文本字元串,指明一個字型的名稱(例如“Wingdings”)。

fontstyle(字型樣式)參數是一個控制樣式設定(例如粗體)的整數。

自定義點陣圖檔案語法

要設定一個基於自定義點陣圖檔案的symbol 樣式,使用如下語法:

SYMBOL (filename, color, size, customstyle)

filename(檔案名稱)參數是一個文本字元串,它標明了CustSymb 目錄中的一個點陣圖檔案(例如“Arrow.BMP”)。

customstyle(自定義樣式)參數是一個整數,控制是否使用顏色和背景屬性。


Font樣式

Font 子句設定文本對象的外觀(字型、顏色等)。Font 子句有如下語法:

FONT ("fontname", style, size, forecolor 〔, backcolor〕 )

雙引號內的 fontname(字型名稱)是被顯示的字型。

style(樣式)是字型的文本屬性。 MIF檔案中的size(大小)必須是0,因為一幅地圖上的文本對象是附加到該地圖上的(這樣在放大或縮小時文本尺寸改變)。

forecolor(前景顏色)是一個整數,代表一種24位RGB 顏色。

backcolor(背景顏色)是可選的;如果包含了它,則MapInfo在文本背後的區域中填充指定的顏色。

顏色

顏色通常是以紅、綠和藍色的相對濃度來定義的。其中每種顏色是一個0到255包括0和255之間的數;各種顏色的RGB 值由以下公式計算:

(紅色 * 65536)+(綠色 * 256)+藍色

這裡是一些常用顏色及其數值:

紅色:16711680

綠色:65280

藍色:255

青色:65535

紫紅:16711935

黃色:16776960

黑色:0

相關詞條

相關搜尋

熱門詞條

聯絡我們