Shapefile
简述
Shapefile
将空间要素的非拓朴的几何结构和属性信息存储在数据集中。这种几何结构包含一系列的矢量坐标。
Shapefile
支持点状、线状和面状要素。其中面状要素是封闭的环路,并且相邻两个面状要素的公共边是重复画两次的,也就是分别存储于属于这个面状要素的几何结构中。
目前有四种方式获得
Shapefile
格式的数据:
(1)导出成
Shapefile
格式:用
ARC/INFO
,
PC ARC/INFO
,
SDE
,
ArcView GIS
或者
BusinessMAP
软件从其他数据源导出成为
Shapefile
数据。
(2)数字化:用
ArcView GIS
的要素创建工具可以通过数字化直接创建
Shapefile
数据。
(3)程序:用
Avene
(
ArcView GIS
),
MapObjects
,
ARC
宏语言(
AML
)(
ARC/INFO
)或简单宏语言(
SML
)(
PC ARC/INFO
)软件可以用程序创建
Shapefile
数据。
(4)通过创建程序直接写入
Shapefile
定义中。
Shapefile
的文件
一个
ESRI
的
shapefile
数据包含一个主文件(
.shp
),一个索引文件(
.shx
)和一个
dBASE
(
.dbf
)表。主文件是直接访问的,变长记录的文件,每一条记录都描述一个形状的一系列结点。在索引文件中,每一条记录包含主文件相应记录相对于主文件头的偏移量。
dBASE
表中每条记录表示一个要素的属性。这种几何结构和属性要素一对一的关系是通过记录号来控制的,表中的属性记录的顺序必须和主文件中的记录顺序相同。
Shapefile
存储整型和双精度型的数据。整型数据是有符号
32
位整型(
4
字节),双精度数据是有符号
64
位
IEEE
双精度浮点数据(
8
字节)。浮点数必须是数字的值,正无穷、负无穷和非数字(
NaN
)值都是不允许的。不过,
shapefile
支持“无数据”的值,但是通常只能用于测量。任何小于
-10
(
38
)
浮点数都被认为是“无数据”。
一、主文件:
主文件(
.shp
)包含一个定长的文件头,之后就是变长的记录。每一条变长的记录都是由一个定长的记录头和变长的记录内容组成的。
Shapefile
的内容分为两类:一是数据相关,包括主文件记录内容和主文件头的数据描述范围(形状类型,最小矩形外框等);二是文件管理相关,包括文件和记录的长度和记录的偏移量等。主文件中用于记录数据相关的整型和双精度整型的字节序是
little endian
(
PC
或
Intel
),而用于文件管理相关的字节序则是
big endian
(
Sun or Motorola
)。
主文件头长度为
100
字节。下表列出头的字节位置、值、类型和字节序。
位置
|
字段
|
字段值
|
字段类型
|
字节序
|
Byte 0
|
文件代码
|
9994
|
整型
|
Big
|
4
|
未使用
|
0
|
整型
|
Big
|
20
|
未使用
|
0
|
整型
|
Big
|
24
|
文件长度
|
文件长度
|
整型
|
Big
|
28
|
版本
|
1000
|
整型
|
Little
|
32
|
几何形状
|