mapInfo文件格式详解
from:http://hotolee.blog.163.com/blog/static/3815229920098434956370
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位,最大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 保留的,全是0x00,不用管。
接着每32位保存一个字段的信息
0-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 数字
mapInfo文件格式详解的更多相关文章
- BMP文件格式详解
BMP文件格式详解(BMP file format) BMP文件格式,又称为Bitmap(位图)或是DIB(Device-Independent Device,设备无关位图),是Windows系统中广 ...
- PE文件格式详解,第一讲,DOS头文件格式
PE文件格式详解,第一讲,DOS头文件格式 今天讲解PE文件格式的DOS头文件格式 首先我们要理解,什么是文件格式,我们常说的EXE可执行程序,就是一个文件格式,那么我们要了解它里面到底存了什么内容 ...
- PE文件格式详解,第二讲,NT头文件格式,以及文件头格式
PE文件格式详解,第二讲,NT头文件格式,以及文件头格式 作者:IBinary出处:http://www.cnblogs.com/iBinary/版权所有,欢迎保留原文链接进行转载:) PS:本篇博客 ...
- PE文件格式详解,第三讲,可选头文件格式,以及节表
PE文件格式详解,第三讲,可选头文件格式,以及节表 作者:IBinary出处:http://www.cnblogs.com/iBinary/版权所有,欢迎保留原文链接进行转载:) 一丶可选头结构以及作 ...
- Carbondata源码系列(二)文件格式详解
在上一章当中,写了文件的生成过程.这一章主要讲解文件格式(V3版本)的具体细节. 1.字典文件格式详解 字典文件的作用是在存储的时候将字符串等类型转换为int类型,好处主要有两点: 1.减少存储占用空 ...
- DOS文件转换成UNIX文件格式详解
转:DOS文件转换成UNIX文件格式详解 由windows平台迁移到unix系统下容易引发的问题:Linux执行脚本却提示No such file or directory dos格式文件传输到uni ...
- OpenGL学习--05--纹理立方体--BMP文件格式详解(转载)
http://blog.csdn.net/o_sun_o/article/details/8351037 BMP文件格式详解 BMP文件格式详解(BMP file format) BMP文件格式,又称 ...
- Android逆向之旅---SO(ELF)文件格式详解(转)
第一.前言 从今天开始我们正式开始Android的逆向之旅,关于逆向的相关知识,想必大家都不陌生了,逆向领域是一个充满挑战和神秘的领域.作为一名Android开发者,每个人都想去探索这个领域,因为一旦 ...
- 音视频入门-11-PNG文件格式详解
* 音视频入门文章目录 * PNG 文件格式解析 PNG 图像格式文件由一个 8 字节的 PNG 文件署名域和 3 个以上的后续数据块(IHDR.IDAT.IEND)组成. PNG 文件包括 8 字节 ...
随机推荐
- flink-connector-kafka consumer的topic分区分配源码
转载请注明原创地址 http://www.cnblogs.com/dongxiao-yang/p/7200599.html flink官方提供了连接kafka的connector实现,由于调试的时候发 ...
- nginx 模块简介
nginx模块一般分为5类:核心模块.标准http模块.可选http模块.邮件服务模块.第三方模块. 其中核心模块和标准http模块在快速编译之后就包含在了nginx中. 主要看一下核心模块.标准ht ...
- libevent源码学习_event结构体
在libevent中最重要的结构体莫过于event和event_base了,下面对于这2个结构体进行分析. 1.结构体event,位于:event.h struct event { /* * 双向链表 ...
- poj 3666 河南省第七届程序设计D题(山区修路)
题目大意: 给定一个序列,以最小代价将其变成单调不增或单调不减序列,求最小的变动价值:需要用到离散化dp 状态转移方程: dp[i][j]=abs(j-w[i])+min(dp[i-1][k]);(k ...
- Jenkins安装与构建部署
Jenkins是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能.Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括:1.持续的软件版本发布 ...
- java中过滤四字节字符
private static final String FOUR_BYTE_FILTER = "[\\ud800\\udc00-\\udbff\\udfff\\ud800-\\udfff]& ...
- UML结构体系简介
一.UML的结构 UML有3种基本的构造块,分别是事物(元素).关系和图.事物是UML中重要的组成部分.关系把事物紧密联系在一起.图是很多有相互相关的事物的组. 二.UML的事物 UML中的事物也称为 ...
- 使用加密的squid配合stunnel实现HTTP代理
现在大部分人都是用ssh tunnel来搭建socks5代理,其实这种方式效率并不高,ssh tunnel并不是为了做代理而存在的.一个比较好的方法是加密squid配合stunnel实现http代理. ...
- java 通过Apache poi导出excel代码demo实例
package com.zuidaima.excel.util; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutput ...
- WinRAR 5.01 正式版 (简体中文)附注册机及注册码
软件分类:数据压缩软件大小:1.91 MB 软件类别:国外软件 软件授权:注册版软件语言:简体中文点击进入:官方主页 应用平台:Win 8.Win 7.Win 2008 R2.Win 2008.Wi ...