MapGIS文件格式详解.docx
《MapGIS文件格式详解.docx》由会员分享,可在线阅读,更多相关《MapGIS文件格式详解.docx(14页珍藏版)》请在冰点文库上搜索。
MapGIS文件格式详解
1>概述
1.1文件组成
MAPGIS数据文件主要包括工程文件文件和工程内各工作区的文件。
匚作区是MAPGIS提岀的
•个概念,简单地说,11作区就是•个数据池,存放实体的空间数据、拓扑数据、图形数据和属性数据,每个工作区都对应于•个MAPGIS数据文件。
数据文件主要有以下几种:
>点工作区(.MPJ文件):
工程文件.存放工程中所有的工作区文件
>点工作区(・町文件):
点(P\T)
>线工作区(・WL文件):
线(LIN)>结点(NOD)
>区工作区(・WP文件):
线(LIN)、结点(NOD)x区(REG)
>网工作区(•限文件:
线(LIN)>结点(NOD)、网(NET)
>表工作区(•肪文件):
无空间实体,仅有表格记录
1.2数据类型
>点元:
点元是点图元的简称.有时也简称点,所谓点元是扌旨由一个控制点决定其位宜的有确定形状的图形也元。
它包括字.字符串、文木、子图、圆、弧、直线段等几种类型。
它与“线上加点”中的点概念不同。
>弧段:
弧段是一系列有规则的,顺序的点的集合,用它们可以构成区域的轮廓线。
它与曲线是两个不同的概念,前者属于面元,后者属于线元。
>区/区域:
区/区域是由同一方向或首尾相连的弧段组成的封闭图形。
>结点:
结点是某弧段的端点,或者是数条弧段间的交叉点。
>屈性:
就是一个实体的持征,属性数据是描述真实实体持征的数抿集。
显示地物属性的表通常称为屈性表.属性表常用來组织属性数据。
2、工程文件
2.1基本构成
工程文件数据由头信息+各匸作区信息数据构成,其中头信息是0-1112字节.各工作区信息是400各字节,按顺序首尾存放在文件中。
2.2头信息
头信息存储位置为0-1112字节,主要存储包含的工作区文件数、图形范圉、比例、位移等信息。
内容
字节位貝
字节数
类空
说明
文件标记
0-7
8
Char[8Z
GDMPD29
文件类型
8-11
4
int
9
文件数
12-13
1
short
文件的图形范殉
14-45
32
Double
(XMin,\Tdin,XMax.YMax)
文件的环境
46-685
610
结构
文件的标题
686-745
60
Char[60]
图层字典位宜
746-749
4
int
首文件存放抬针
750-753
4
int
位移X
751-761
8
double
位移Y
762-769
8
double
比例X
770-777
8
double
比例Y
778-785
8
double
旋转角度
786-793
8
double
版面宽
794-801
8
double
版而高
802-809
8
double
PrjType
810-811
2
short
首图例存放彳针
812-815
4
int
工程预设的地图参数
816-981
169
结构
UnUsed
985-1112
128
Char[128]
无用
2.3工作区信息
头信息后是各工作区信息,从1113字节开始,每400字节存储•个工作区信息,主要包扌舌各工作区的类型、文件名.范围等信息。
内容
字节位宜
字节数
类型
说明
文件类型
0
1
byte
PNT/LIN/REG/MSIIMG
文件状态
1
1
byte
文件名(全路径)
2-129
128
Char[128]
文件的描述
130-257
128
Char[128]
图形范91XMin
258-265
8
double
图形范围YMin
266-273
8
double
?
1形扛|!
;|XMax
274-281
8
double
绍形口MYMax
282-289
8
double
用户自定义类型
290-290
1
byte
GroupCode
291-291
1
byte
网络数据的数据源
292-323
32
Char[32]
爪机文件此项为空
最小显示比例
324-331
8
double
小于MmDispRate,不显示
最大显示比例
332-339
8
double
大于MaxDispRate,不显示
字段动态标注
340-340
1
byte
是否进行字段动态标注,以及是否銀随放大
标注字段名称
341-361
21
Char[21]
标注字商
362-365
4
float
标注颜色
366-367
2
short
标注字体
368-36S
1
byte
图例分类信息
369-369
1
byte
保留
370-399
30
Char[30]
3.工作区文件
3.1基本构成
工作区文件主要有点工作区文件(*.WT).线工作区文件(*・WL)、区域工作区文件*WP)等几种,不同匸作区文件构成有•些不同,但是大体结构是•致的,•般包扌舌三大部分:
>文件头信息:
包括文件类型.数据区头信息的起始位宜等
>数据区头信息:
存储备种结构的数据的字节起始位置和总字节数
>数据区存储点、线、区域.属性等各种数据
数据读取时首先读文件头信息,通过文件头信息中数据区头信息的起始位置读取数据区头信息,在数据头信息中存储各数据区的起始位置和总字节数,通过这些信息找到各数据区位置获取数据。
3.4文件头
各种工作区文件(WPWLWT)的头信息展本都是•样的,从0字节开始,到数据区的起始位置处,存放文件标记、文件类型、数据区起始位置,各数据区的数据总数、工作区图形范围等信息。
内容
字节位宜
字节数
类型
说明
文件头标识
0-7
8
Char[8:
GDMPD20(WL)
GDMPD22(WT)
GDMPD21(WP)
文件标识
8-11
•1
Int
0-LIN1-PRT2-REG
起始位宜
12-15
4
Int
数据区头的起始位宜.从这个整数抬向的字
节位宜存储数据区头信息
9
16-19
此处的整数不知道意义
20-259
未知,好像没什么用
260-303
存储有11个整数.表示各种数据的总数
0-线数260-263104h
2-节点数268-27110Ch
4-区数276-279114h
其余未知
图形范罔
304-335
8*4
XMinBlmXMaxYMax
33数据区头伯息
数据区头信息包含工作区文件中各种数据的起始位置和数据总的字节数,为农述方便,下文中以DataHeader标识°
每个数据头信息10字节,如:
29020000E4000000FFFF
其中
>0-3数据区的起始位宜
>4-7数据区总字节数
>8-9结束标记(FFFF)
数据区头信息•般存储有这样的头信息11个左右,WPWL肛文件数据都是各有所区别,但是和同类型数据存放位置基本•致,如无论是WL文件还是呼文件,第•个头信息存储都是线(弧段)信息,各数据区域的位置人致如下:
>DataHeadertO]:
线信息位置(WPWL)\点信息位置(WT)
>DataHeader[1]:
线坐标点位置(WPWL八点字符串位置(WT)
>DataHeader[2]:
线屈性位宜>DataHeader[3]:
线拓扑关系的位宜
>DataHeader[4]:
节点信息的位置
>DataHeader[5]:
节点属性
>DataHeader[6]:
>DataHeader[7]:
>DataHeader[8]:
区信息位置
>DataHeader[9]:
区属性位宜
>DataHeader[10:
3.4点数据
点数据存在于WT文件中,从DataHeader[01+93开始读,每93个字节存储•个点信息。
由于MapGIS的点数据包括字符串、文本、了图、圆、弧等几种类型,各种类型数据存储结构不•致,结构如下:
内容
字节位迓
字节数
类型
说明
公用部分
开始标记
0
1
01
字符串总数
1-2
2
short
如果点类型是字符串.存储字符串信息位
字符偏移址
3-6
4
Int
DataHeader11]+偏移址-总数
坐标X
7-14
8
double
坐标Y
15-22
8
double
点类型
31-31
1
byte
0-字符串L子图2-圆
3■弧4-图铁5-文木
透明输出
32-32
1
byte
图层
73-74
2
short
颜色
75-78
4
int
0-字符串部分
字符串
string
DataHeader11]+偏移址一总数
字符高度
33-36
4
float
字符宽度
37-40
4
float
字符间隔
41-44
4
float
字符串角度
45-48
4
float
中文字体
49-50
2
short
西文字体
51-52
2
short
字形
53-53
1
byte
排列
54-54
1
byte
1-子图部分
子图号
33-36
4
Int
子图高
37-40
4
float
子图宽
41-14
4
float
子图角度
45-48
•1
float
线宽
49-52
4
float
辅色
53-56
4
Int
2■圆部分
9
•
半径
33-40
4
float
边线颜色
41-44
4
int
线宽度
45-48
4
float
标识
49T9
1
byte
“填充圆0二空心圆
3■弧部分?
半径
33-40
8
double
起始角度
41-44
4
float
终止角度
45T8
4
float
线宽度
49-52
4
float
4-图片部分?
文件名
string
DataHeader[l]+偏移址-总数
字符鬲度
33-36
4
float
字符宽度
37-40
•1
float
字符串角度
41-44
4
float
5-文木部分(多行)?
文木字符串
string
DataHeader[l]+偏移址-总数
字符高度
33-36
•1
float
字符宽度
37-40
4
float
字符间隔
41-44
4
float
字符串角度
45-48
4
float
中文字体
49-50
2
short
西文字体
51-52
2
short
字形
53-53
1
byte
行间距
54-57
4
float
版而高度
58-61
4
float
版面宽度
62-65
•1
float
排列
66
1
byte
3.5线数据
线数据在WL和WP文件中都有,主要包括线信息.坐标信息,对于肝文件还有线与区域的拓扑关系。
1、线信息
存储位置:
DataHeader[Oj.DataOffset+59
字节数:
57
格式:
内容
字节位宜
字节数
类型
说明
未知?
0-3
4
未知?
4-7
4
线点数
8-11
4
Int
坐标存储位宜
12-15
•1
Int
DataHeader[12加这个偏移at是坐标的«储
起始位宜
未知?
16-19
•1
线型号
20-21
2
Short
辅助线型号
22-22
1
Byte
覆盖方式
23-23
1
Byte
线颜色号
24-27
4
Int
线宽
28-31
4
Float
线种类
32-32
1
Byte
X系数
33-36
4
Float
Y系数
37-40
4
Float
辅助色
41-44
•1
Int
图层
45-48
1
Int
■
49-52
•1
■
53-56
4
2、坐标
存储位置:
DataHeader[1".DataOffset+每条线坐标存储位置
字节数:
16(两个八位的浮点数)
格式:
Y坐标
8-15
3、拓扑关系
存储位置:
DataHeader[3^.Data0ffset+24
字节数:
24(
前16位有效,共四个整数)
格式:
前节点号
0-3
后节点号
4-7
左区号
8-11
右区号
12-15
3.6结点数据
结点是某弧段的端点,或者是数条弧段间的交叉点,结点数据区由结点基本信息加•系列结点线号信息组成,基本信息起始位置为DataHeader[4].DataOffset+55,每个接点55个字节,格式:
内容
字节位置
字节数
类型
说明
节点坐标X
0-7
8
Double
节点坐标Y
8-15
8
Double
节点所在的线总数
24-25
2
short
节点线段的存储位置
26-27
2
short
DataHeader[12.DataOffset加偏移址存储结点相关的线段信息,每个线段号为4字节的整数
结点线信息
一系列整数值
3.7区域数据
区域是由同•方向或首尾相连的弧段组成的封闭图形,所以MapGis的区域数据是基本信息和•系列线信息中线的顺疗:
号(整数)组成。
基本信息的起始位置为DataHeader[8].DataOffset+40,每个结点基本信息共40字节•格式:
内容
字节位宜
字节数
说明
标记位
0
1
Byte
01
线总数
1-4
4
Int
线号存储位宜
5-8
4
Int
DataHeaderCl]加这个偏移量是线号的存储起始位宜
区颜色
9-12
4
Float
填充图案号
13-14
2
Short
图案高
15-18
•1
Float
图案宽
19-22
4
Float
笔宽
23-24
2
Short
图案颜色
25-28
4
Int
透明输出
29
1
Byte
图层
30-31
2
Short
区域的线号信息
一系列整数值