1. 概述
MapInfo采用雙數據庫存儲模式,即其空間數據與屬性數據是分開來存儲的。屬性數據存儲在關系數據庫的若幹屬性表中,而空間數據則以MapInfo的自定義格式保存于若幹文件中,二者通過一定的索引機制聯系起來。為了提高查詢和處理效率,MapInfo采用層次結構對空間數據進行組織,即根據不同的專題将地圖分層(圖層還可以分成若幹圖幅),每個圖層存儲為若幹個基本文件。
2. 屬性數據的表結構文件.TAB
TAB為描述MapInfo表結構,說明數據文件。屬性數據表結構文件定義了地圖屬性數據的表結構,包括字段數、字段名稱、字段類型和字段寬度、索引字段及相應圖層的一些關鍵空間信息描述。.TAB文件實際上是一個文本文件,可以在寫字闆中打開觀察其内容。
TAB文件打開效果
3. 屬性數據文件.DAT
DAT為表格數據,格式為二進制。屬性數據文件中存放完整的地圖屬性數據。在文件頭之後,為表結構描述,其後首尾相接地緊跟着各條具體地屬性數據記錄。
DAT文件
4. 交叉索引文件.ID
連接數據和地圖對象的參照文件(無對象則不存在),格式為二進制。交叉索引文件記錄了地圖中每一個空間對象在空間數據文件(.MAP)中的位置指針。每四個字節構成一個指針。指針排列的順序與屬性數據文件(.DAT)中屬性數據記錄存放的順序一緻。交叉索引文件實際上是一個空間對象的定位表。
ID文件
5. 空間數據文件.MAP
圖形對象(無圖形,對象則不存在),格式為二進制。具體包含了各地圖對象的空間數據。空間數據包括空間對象的幾何類型、坐标信息和顔色信息等。另外還描述了與該空間對象對應的屬性數據記錄在屬性數據文件(.DAT)中的記錄号。這樣,當用戶從地圖上查詢某一地圖對象時,就能夠方便地查到與之相關的屬性信息。
MAP文件
6. 索引文件.IND
查詢地圖對象,格式為二進制。索引文件并不是必須的,隻有當用戶規定了數據庫的索引字段後MapInfo才會自動産生索引文件。索引文件中對應于每個索引字段都有一個索引表。在每個索引表中,先給出總的數據庫記錄數目,然後按照索引順序給出每條屬性數據記錄在對應的索引字段處的具體屬性數據和該記錄在屬性文件(.DAT)及交叉索引文件(.ID)中的記錄号。
7. TAB文件結構詳細介紹
上述五種文件組合起來描述一個圖層,其中TAB文件詳細結構介紹如下。
header
!table
!version 300
!charset WindowsLatin1
body
commands
MapBasic命令,在讀入下一部分(table definition)前順序執行。
table definition(描述表結構)
有下列幾種:
NATIVE格式
Definition Table必須
Type NATIVE Charset "WindowsLatin1" 必須
Fields 4必須,域段數量
id Integer Index 1 ; 域段名字,類型,索引
structure_type Char (13) ;...
mast_type Char (15) ; …
foundation_type Char (17) ;…
栅格文件
Definition Table必須
File "sf_rastc.bil"必須,栅格文件名
Type "RASTER" 必須
(548421,4183579) (0,0) Label "Pt 1",
(548441,4183579) (1,0) Label "Pt 2",
(548421,4183559) (0,1) Label "Pt 3"
CoordSys Earth Projection 8, 62, "m", -123, 0, 0.9996,
500000, 0 Units "m"
RasterStyle 2 62
mig文件
Definition Table必須
File "bidon_value.mig" 必須,MIG文件名
Type "RASTER"必須
(297153.63503593224,5007379.3522604182) (0,0) Label "",
(312554.15366307431,5007379.3522604182) (204,0) Label "",
(312554.15366307431,4992205.3118483815) (204,201) Label "",
(297153.63503593224,4992205.3118483815) (0,201) Label ""
CoordSys Earth Projection 8, 33, "m", -73.5, 0, 0.9999,
304800, 0 Units "m"
RasterStyle 6 1
begin_metadata
…
end_metadata元數據
分隔ASCII
Definition Table必須
Type ASCII Delimiter 09 Titles Charset "WindowsLatin1"必須
Fields 3和NATIVE類似
Start Float ;
End Float ;
Side Char (6) ;
Excel XLS文件
Definition Table必須
TypeXLSTitlesRange "Sheet1"必須
Fields 3 和NATIVE類似
A Float ;
B Float ;
C Char (6) ;
Lotus WK*文件
Definition Table必須
File "lotus.wk4"必須,指定文件名
Type WKS Titles必須
Fields 1和NATIVE類似
A Char (1) ;
Access MDB文件
Definition Table 必須
File "sample.mdb" MDB文件名
Type ACCESS TABLE "rdatbln_line" Charset "WindowsLatin1"必須
Fields 5和NATIVE類似
FNODE_ Integer ;
TNODE_ Integer ;
LPOLY_ Integer ;
RPOLY_ Integer ;
LENGTH Float ;
元數據
begin_metadata
"\IsReadOnly" = "FALSE"
"\Identification" = ""
"\Identification\Use Constraints" = "For use with MapInfo
Professional"
"\Identification\Access Constraints" = "Licensed Users"
"\Identification\Domain" = ""
"\Identification\Domain\Bounds" = ""
"\Identification\Domain\Bounds\West" = "-16190368.44"
"\Identification\Domain\Bounds\East" = "16606614.14"
"\Identification\Domain\Bounds\North" = "6743291.67"
"\Identification\Domain\Bounds\South" = "-5501153.1"
"\Identification\Citation" = "MapInfo Professional Bundled Maps;
World Capitals"
"\Identification\Description" = ""
"\Identification\Description\Abstract" = "Location of world
capitals.Also included regional and colonial capitals of
significant areas belonging to other Countries.Based on current
World Almanac and UN definitions of Countries."
"\Identification\Time Period" = ""
"\Identification\Time Period\Currentness" = "1995"
"\Identification\Keywords" = ""
"\Identification\Keywords\Theme" = ""
"\Identification\Keywords\Theme\Geography" = "World"
"\Identification\Keywords\Theme\Geography\Abbreviation" = ""
"\Identification\Keywords\Theme\Content" = "Reference Data"
"\Identification\Keywords\Place" = ""
"\Identification\Keywords\Place\Layers" = ""
"\Identification\Keywords\Place\Layers\Count" = "1"
"\Identification\Keywords\Place\Layers\Layer1Name" = "World"
"\Identification\Keywords\Place\Layers\Layer1" = "World"
"\Spatial Reference" = ""
"\Spatial Reference\Geographic" = ""
"\Spatial Reference\Geographic\Projection" = ""
"\Spatial Reference\Geographic\Projection\Clause" = "CoordSys
Earth Projection 12, 62, ""m"", 0 Bounds (-34012036.7393,
-8625248.51472) (34012036.7393, 8625248.51472)"
"\Spatial Reference\Geographic\Projection\Name" = "Robinson"
"\Spatial Reference\Geographic\Coordinate Units" = "Meters"
"\Spatial Reference\Geodetic" = ""
"\Spatial Reference\Geodetic\Datum" = "NAD 27"
"\Spatial Reference\Geodetic\Ellipsoid" = "Clarke 1866"
"\Spatial Organization" = ""
"\Spatial Organization\Object" = ""
"\Spatial Organization\Object\Type1" = "Regions"
"\Spatial Organization\Object\Type1\Count" = "0"
"\Spatial Organization\Object\Type2" = "Points"
"\Spatial Organization\Object\Type2\Count" = "214"
"\Spatial Organization\Object\Type3" = "Polylines"
"\Spatial Organization\Object\Type3\Count" = "0"
"\Spatial Organization\Object\Type4" = "Lines"
"\Spatial Organization\Object\Type4\Count" = "0"
"\Spatial Organization\Object\All" = ""
"\Spatial Organization\Object\All\TotalCount" = "214"
"\Spatial Organization\Method" = ""
"\Spatial Organization\Method\Type" = "Points"
"\Quality" = ""
"\Quality\Lineage" = ""
"\Quality\Lineage\Source" = ""
"\Quality\Lineage\Source\Vintage" = "1995"
"\Quality\Lineage\Source\Scale" = "~ 1:20,000,000"
"\Quality\Lineage\Source\Citation" = "MapInfo from Digital Chart
of the World"
end_metadata
Oracle Spatial
一個空間數據表對應着下面數據字典表中的一行。
MAPINFO_MAPCATALOG
CREATE TABLE MAPINFO.MAPINFO_MAPCATALOG (
SPATIALTYPE NUMBER,
TABLENAME VARCHAR2(32),
OWNERNAME VARCHAR2(32),
SPATIALCOLUMN VARCHAR2(32),
DB_X_LL NUMBER,
DB_Y_LL NUMBER,
DB_X_UR NUMBER,
DB_Y_UR NUMBER,
COORDINATESYSTEM VARCHAR2(254),
SYMBOL VARCHAR2(254),
XCOLUMNNAME VARCHAR2(32),
YCOLUMNNAME VARCHAR2(32),
RENDITIONTYPE NUMBER,
RENDITIONCOLUMN VARCHAR2(32),
RENDITIONTABLE VARCHAR2(32));
--在TABLENAME,OWNERNAME上創建索引
CREATE
UNIQUE INDEX MAPINFO_MAPCATALOG_INDEX ON
MAPINFO.MAPINFO_MAPCATALOG (TABLENAME,OWNERNAME);
表域段說明
域段名取值示例
SPATIALTYPE SpatialWare值:
5.0 (SpatialWare points)
5.1 (SpatialWare lines)
5.2 (SpatialWare regions)
5.3 (SpatialWare, all types of features)
Informix IUS值:
11.0 (IUS SW Blade points)
11.1 (IUS SW Blade lines)
11.2 (IUS SW Blade regions)
11.3 (IUS SW Blade, all types of features)5.3
TABLENAME 表名Country
OWNERNAME 所有者PKUGIS
SPATIALCOLUMN 字段名,可能包含空間屬性
SW_GEOMETRY(mappable using SpatialWare Type/IUS)
NO_COLUMN (mappable using X-Y)
MI_SQL_MICODE (mappable using MI Code)
或IUS字段名(ST_SPATIAL數據類型)SW_GEOMETRY
DB_X_LL 圖層外接四邊形左下角的X坐标-360
DB_Y_LL 圖層外接四邊形左下角的Y坐标-90
DB_X_UR 圖層外接四邊形右上角的X坐标360
DB_Y_UR 圖層外接四邊形右上角的Y坐标90
COORDINATESYSTEM 參考坐标系Earth Projection 1, 0
SYMBOL 若圖層隻包含點,則用Symbol;
若有線或區域邊界,則用Pen
另外還有BrushSymbol(35,0,12) Pen(1,2,0) Pen(1,2,0)
Brush(2,255,255)
XCOLUMNNAME 包含X坐标的字段的名稱,若沒有,則為NO_COLUMN. NO_COLUMN
YCOLUMNNAME 包含Y坐标的字段的名稱,若沒有,則為NO_COLUMN. NO_COLUMN
RENDITIONTYPE 1
RENDITIONCOLUMN
RENDITIONTABLE
8. 結語
以上就是MapInfo數據格式詳細介紹,如果需要MapInfo格式數據可以使用水經注萬能地圖下載器進行下載,有興趣的朋友可以試試。
,