MapInfo數據交換文件格式淺探

MapInfo數據交換文件格式淺探


摘  要: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.

 

 

本文是從網絡上整理出來的,爲了申請專欄,所以標記爲原創。

專欄申請者的CSDN個人博客中原創技術性博客文章要多於15篇。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章