mapInfo文件文档详解
MapInfo以表(Tab)的方式存储资料,每位表是由一组MapInfo文件组成,涵盖:
1、特性数据的表结构文件,前缀为.TAB。该文档定义了地图特性数据的表结构,涵盖索引数、下标名称、下标类型、下标长度、索引视图及对应图层的一些关键空间信息概括。.TAB文件实际上是一个文本文件,可以在写字板中打开观察其内容。
2、特性数据文档,前缀为.DAT。该文档存放了地图的特性数据。.DAT文件是二进制文件,它的文档与dBase IV的文档文档一致。
3、空间数据文档,前缀为.MAP。该文档是二进制文件,存放了图形对象的数据,涵盖空间对象的几何类型、坐标资料和灰色信息等。
4、交叉函数文档,前缀为.ID。该文档是二进制文件,用来联接特性数据和图例数据,记录了地图中每一个空间对象在空间数据文档(.MAP)中的位置指针。文件中每四个字节构成一个指针。指针排列的次序与特性数据文档(.DAT)中特性数据记录存放的次序一致。交叉函数文档实际上是一个空间对象的定位表。
5、索引文件,前缀为.IND。MapInfo表中有时也涵盖该文档,用来对那些视图建立函数。
.TAB文件和.DAT文件是MapInfo表中必须的两个文件,一个MapInfo表至少也是涵盖一个.TAB文件和一个.DAT文件。.MAP和.ID文件不是必须有的,反而或者有了.MAP文件,假如.ID文件也必须存在。
在Mapinfo中每张地图被称为一个图层(或被称为表)。
每个Mapinfo表由两部份最重要的内容构成:图例(称为空间对象)和数据(称为属性)。
Mapinfo 实现了"图形对象"及"特性数据"联系,因而希望完成图形数据和特性数据的单向查询。为了实现基于属性资料的迅速检索,Mapinfo支持针对属性列表建立函数。Mapinfo以文档的手段,将上述的不同信息存放到不同的文档中以共同组成一个完整的右键。
细说Mapinfo索引文件*.ind :
每个Mapinfo表是由几个文件组成的,不同的文档用于保留图层的不同信息。其中,*.ind 文件用于存放Mapinfo表的数据索引。是Mapinfo表的索引文档,它能改善Mapinfo数据检索的效能,同时它禁止你使用“查找”指示查找地图对象。若用查找命令定位一个地址(省会),在表中必须对它们城市建函数,它们函数就保留在*.ind文件中。
当你对一幅图层建立函数之后,Mapinfo 会自动生成一个索引文档*.ind。当你将一个图层的递归取消以后,Mapinfo 也会自动将递归文档*.ind删除。
MIF,MID格式
MapInfo虽然没有公开其外部的数据结构,但它给出了用来文档交换的数据结构,即MIF与MID,其中MIF文件保存图形数据,MID文件保留特性数据。将其余方式的地图数据转成MIF与MID格式,然后借助MapInfo菜单中的Import命令就可以导出,因而完成切换。也可以在 mapInfo中把*.tab文件转换为*.mif,*.mid文件
MIF是Mapinfo用来向外交换数据的一种中间交换文件。当用户在Mapinfo中将一张Mapinfo地图表以MIF格式转出到MIF文件中后,Mapinfo会同时在用户指定的保存目录下生成两个文件(*.mif,*.mid)。
其中*.mif文件保留了该Mapinfo表的表结构及表中所有空间对象的空间信息:
每个点对象的点位坐标、字符形状;
每个线对象的结点个数、结点坐标、线造型;
每个区域对象的涵盖的子区域个数、每个子区域的结点数、结点坐标等、填充模式
而*.mid文件则按记录次序保留了每位空间对象的一切特性资料。
这两个文件都为文本性质的文档,用户可以通过相应的文档读写方法实现对文档内容的读写。
MapInfo.dat格式说明
据说MapInfo是规范的DBaseIV格式:
01 000x03:总是这个值
01-03 最后更新日期,文档:年年月月日日
04-07 表中有什么条记录(32位,最大4294967295条记录)
08-09 header部分有什么数组(16位mapinfo mapx 5.0下载,最大65535字节),涵盖Header段的结束标记0XOD在内
10-11 每条record部分有什么数组(同上)
12-13 保留的,不用管(这中间都可不用管)
14 未完成事务标记。开始事务时其值被设置为0x01,事宜完成或事务回滚时,重设位0x00。也可以不管它。
15 加密标记。加密后为0x01否则是0x01。单纯的改动该记号并不能对记录进行加密解密。
16-27 用于DBaseIV多用户环境。不用管。
28 是否存在品牌索引,是则为0x01,如果0x00。也不用管。
29 DBaseIv语言驱动Id
30-31 保留的,全是0x00mapinfo mapx 5.0下载,不用管。
接着每32位保存一个字段的资料
-9 字段名的AscII码
100 x00
11 字段类型标志(如0x43代表charactor,相当于字母C.MapInfo只使用了C,L,N三种.要获得实际的索引类型和意思需要依照.tab文件)
12-15 displacementoffieldinrecord,可以不用管
16 字段宽度
17 字段的整数个数
18-19 保留的,不用管
20 dbaseIvworkareaid不用管
21-30 保留的,不用管
31 该索引是否是新品列表的一部分,或者是则值为0x01,如果0x00
一切索引描述完了以前,是header的结束标记0x0D
接着是紧密排列的记录,都是Ascii的。其间距跟函数的概念一致。
一切的记录都以一个删除标记开头,或者该记录删除,该处的值为0x2a(星号*)如果0x20(标点)
文件最后以一个0x1a标记结束
附:索引标识对照表
AscII码描述
c 字符
d 日期,formatyyyymmdd
f 浮点
g general-foxproaddition
l 逻辑,t:t,f:f,y:y,n:n,?-未初始化
m memo(storedas10digitsrepresentingthedbtblocknumber)
n 数字
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-119185-1.html
事前已经经由外交途径警告过了
难道俄在叙行动是怕美国吗
放久了生蛆多正常
一是当时我们实力不够