MapInfo数据格式

 MapInfo采用双数据库存储模式,即其空间数据与属性数据是分开来存储的。

属性数据存储在关系数据库的若干属性表中,而空间数据则以MapInfo的自定义格式保存于若干文件中,二者通过一定的索引机制联系起来。

为了提高查询和处理效率,MapInfo采用层次结构对空间数据进行组织,即根据不同的专题将地图分层(图层还可以分成若干图幅),每个图层存储为若干个基本文件。  (1)、 属性数据的表结构文件.TAB   

描述MapInfo表结构,说明数据文件。

属性数据表结构文件定义了地图属性数据的表结构,包括字段数、字段名称、字段类型和字段宽度、索引字段及相应图层的一些关键空间信息描述。

.TAB文件实际上是一个文本文件,可以在写字板中打开观察其内容。 

(2)、 属性数据文件.DAT   

表格数据 ,格式为  二进制

属性数据文件中存放完整的地图属性数据。在文件头之后,为表结构描述,其后首尾相接地紧跟着各条具体地属性数据记录。  

(3)、 交叉索引文件.ID  

 连接数据和地图对象的参照文件(无对象则不存在), 格式为 二进制

交叉索引文件记录了地图中每一个空间对象在空间数据文件(.MAP)中的位置指针。每四个字节构成一个指针。指针排列的顺序与属性数据文件(.DAT)中属性数据记录存放的顺序一致。交叉索引文件实际上是一个空间对象的定位表。  

(4)、 空间数据文件.MAP   

图形对象(无图形,对象则不存在) ,格式为二进制。
具体包含了各地图对象的空间数据。空间数据包括空间对象的几何类型、坐标信息和颜色信息等。另外还描述了与该空间对象对应的属性数据记录在属性数据文件(.DAT)中的记录号。这样,当用户从地图上查询某一地图对象时,就能够方便地查到与之相关的属性信息。

(5)、 索引文件.IND  

查询地图对象,格式为二进制。 

索引文件并不是必须的,只有当用户规定了数据库的索引字段后mapinfo才会自动产生索引文件。索引文件中对应于每个索引字段都有一个索引表。在每个索引表中,先给出总的数据库记录数目,然后按照索引顺序给出每条属性数据记录在对应的索引字段处的具体属性数据和该记录在属性文件(.DAT)及交叉索引文件(.ID)中的记录号。

上诉五种文件组合起来描述一个图层。

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 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值