阅读:2219回复:0
超齐全的MapInfo数据格式详细介绍超齐全的MapInfo数据格式详细介绍 水经注GIS 2020-05-09 14:49:48 1. 概述 MapInfo采用双数据库存储模式,即其空间数据与属性数据是分开来存储的。属性数据存储在关系数据库的若干属性表中,而空间数据则以MapInfo的自定义格式保存于若干文件中,二者通过一定的索引机制联系起来。为了提高查询和处理效率,MapInfo采用层次结构对空间数据进行组织,即根据不同的专题将地图分层(图层还可以分成若干图幅),每个图层存储为若干个基本文件。 2. 属性数据的表结构文件.TAB TAB为描述MapInfo表结构,说明数据文件。属性数据表结构文件定义了地图属性数据的表结构,包括字段数、字段名称、字段类型和字段宽度、索引字段及相应图层的一些关键空间信息描述。.TAB文件实际上是一个文本文件,可以在写字板中打开观察其内容。 3. 属性数据文件.DAT DAT为表格数据,格式为二进制。属性数据文件中存放完整的地图属性数据。在文件头之后,为表结构描述,其后首尾相接地紧跟着各条具体地属性数据记录。 4. 交叉索引文件.ID 连接数据和地图对象的参照文件(无对象则不存在),格式为二进制。交叉索引文件记录了地图中每一个空间对象在空间数据文件(.MAP)中的位置指针。每四个字节构成一个指针。指针排列的顺序与属性数据文件(.DAT)中属性数据记录存放的顺序一致。交叉索引文件实际上是一个空间对象的定位表。 5. 空间数据文件.MAP 图形对象(无图形,对象则不存在),格式为二进制。具体包含了各地图对象的空间数据。空间数据包括空间对象的几何类型、坐标信息和颜色信息等。另外还描述了与该空间对象对应的属性数据记录在属性数据文件(.DAT)中的记录号。这样,当用户从地图上查询某一地图对象时,就能够方便地查到与之相关的属性信息。 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格式数据可以使用水经注万能地图下载器进行下载,有兴趣的朋友可以试试。 |
|