aspose.info
ZH

SHP - ESRI 形状文件

更新于

什么是一 .shp 文件?

SHP 是用于表示 ESRI Shapefile 的主要文件类型之一的文件扩展名。它以矢量数据的形式表示地理空间信息,以供地理信息系统 (GIS) 应用程序使用。该格式已被开发为开放规范,以促进 ESRI 和其他软件产品之间的互操作性。

数据表示

如前所述,shapefile 格式将数据集的地理空间信息描述为矢量特征。这些矢量特征包括:

  • 点
  • 行
  • 多边形

这些特征组合起来可以表示几乎任何类型的形状,如水井、国家边界、空间点、河流、湖泊等。每个矢量特征都可以具有实际定义该特征用途的属性。例如,包含洛杉矶城市的 shapefile 可以将城市名称和温度作为属性,为空间数据提供有意义的表示。

相关文件

软件应用程序不能使用独立的 shp 文件来理解它所包含的数据。为了理解此类文件中包含的信息,shapefile 使用了以下附加的强制文件。

  • shx 文件 - 索引文件
  • dbf 文件 - 一个 dBASE 文件,在主文件中存储形状的所有属性
  • prj 文件 - 存储文件的项目信息

还可以有其他可选文件与主文件同名。

SHP 文件格式规范

ESRI 以 技术说明 的形式在线提供 shapefile 的开放规范,并详细阐述了文件的整体结构。主 .shp 文件中的信息由标题和记录组成。固定长度的文件头后面是可变长度的记录,其中每条记录由固定长度的记录头和可变长度的记录内容组成。

主 SHP 文件头

主文件头从文件的开头开始,长度为 100 字节。该主文件头的结构以及字节位置、值、类型和字节顺序如下表所示。

字节字段值类型字节顺序
0-3文件代码9994整数大端
4-23未使用0整数大端
24-27文件长度文件长度整数大端
28-31版本1000整数小尾数
32-35形状类型形状类型整数小端
36-67最小边界矩形Xmin、Ymin、Xmax 和 Ymax双精度小端
68-83边界框Zmin, Zmax双小端
84-99边界框Mmin, Mmax双

需要注意的是,文件长度的值是文件的总长度,以 16 位字为单位,还包括构成标题的 50 个 16 位字。

形状类型

上表中形状类型字段的值如下:

值形状类型
0空形状
1点
3折线
5多边形
8多点
11Z 点
13折线Z
15多边形Z
18多点Z
21点M
23折线M
25多边形M
28多点M
31多补丁

数据记录###

主文件头后面是可变长度记录,其中每条记录由一个固定长度的记录头和可变长度的记录内容组成。

记录标题####

记录头包含有关记录号和记录内容长度的信息,固定长度为 8 个字节。记录头的组织结构如下图:

字节字段值类型字节顺序
0-3记录号记录号整数大
4-7记录长度记录长度整数大

记录内容####

shapefile 记录内容由形状类型和该形状的几何数据组成。形状类型 0 表示没有该形状的几何数据的空形状。记录内容的长度是形状部分和顶点的反映。让我们以 Point Shape 类型为例来详细说明记录如何包含有关这种形状类型的信息。

一个点以 X,Y 的顺序表示某个地理位置,其中每个坐标由一个双精度值表示。下表显示了点形状类型的排列。

字节形状类型值类型数字字节顺序
0-3形状类型1整数1小
4-11XX双1小
12-19YY双1小

其他形状类型的示例可以在 ESRI 技术描述文档中找到。

参考 ##

另请参阅