1、Shape技术描述
一个完整的ESRI的shape文件包括一个主文件,一个索引文件,和一个dBASE表文件。主文件是一个直接存取,变记录长度文件,其中每个记录描述一个由其顶点列表组成的shape。在索引文件中,每条记录是在主文件中对应记录距离主文件头部的偏移量。dBASE中记录的是对应主文件中记录的属性记录,每条主文件记录对应dBASE中的一条属性记录。几何对象和属性间的一一对应关系是基于记录编号的。在dBASE文件中的属性记录必须和主文件中的记录保持相同的顺序。
1.1命名习惯
所有文件名都遵循8.3命名习惯。主文件,索引文件和dBASE文件有相同的前缀。前缀必须是由字符或数字(a-Z,0-9)开始,后跟0到7个字符(a-Z,0-9,_,)主文件的后缀是.shp,索引文件的后缀是.shx,dBASE表的后缀是.dbf。在对文件名敏感的操作系统中,文件名中的所有字母都是小写的。
例子 :
主文件:counties.shp
索引文件:counties.shx
dBASE表:ounties.dbf
1.2数字类型
Shape格式文件存储整数型和双精度型数据,本文档的余下部分将涉及到以下类型:
整数:有符号32位整数(4字节)
双精度:有符号64位IEEE双精度浮点数(8字节)
浮点数必须是数字值。负无穷,正无穷和无效数字(NaN)在shape文件中是不合法的。然而,shape文件支持“没有数据”这样的概念,但是目前只用于带有measure值的情况。所谓Measure值,是用于存储需要的附加数据,可以用来记录各种数据,例如权值、道路长度等信息。某些小于-1038被shape文件读取程序用来表示为“没有数据”的值。
下面的第一节描述shape文件的总体结构和组织。第二节描述shape文件支持的每种shape类型的记录内容。
2、主文件的组织
主文件(.shp)由固定长度的文件头和后面变长的记录组成。每个变长记录是由固定长度的记录头和紧接着的变长记录内容组成。图1是主文件的结构。
图 1 主文件的结构
文件头
|
|
记录头
|
记录内容
|
记录头
|
记录内容
|
记录头
|
记录内容
|
。。。。。。
|
。。。。。。
|
。。。。。。
|
。。。。。。
|
记录头
|
记录内容
|
字节序
Shape文件中所有的内容可以被分为两种类型:
n 与数据相关的:
l 主文件记录内容
l 主文件头的数据描述域(Shape 类型,边界盒等)
n 与文件管理相关的:
l 文件和记录长度
l 记录偏移量等
在主文件的文件头和记录内容中的描述域中的整型和双精度浮点数据是按照little endian(PC或Intel)的字节顺序形式组织的。组成文件的其余部分和文件管理的整数和双精度浮点数是big endian(Sun或Motorola)字节顺序。
2.1主文件头
主文件头100字节长。表1描述了文件头中数据的字节位置,值,类型和字节顺序。 在此表中,位置是相对于文件头的。
表 1 主文件头的描述
位置
|
字段
|
值
|
类型
|
字节顺序
|
Byte 0
|
File Code(文件代码)
|
9994
|
Integer
|
Big
|
Byte 4
|
Unused
|
0
|
Integer
|
Big
|
Byte 8
|
Unused
|
0
|
Integer
|
Big
|
Byte 12
|
Unused
|
0
|
Integer
|
Big
|
Byte 16
|
Unused
|
0
|
Integer
|
Big
|
Byte 20
|
Unused
|
0
|
Integer
|
Big
|
Byte 24
|
File Length(文件长度)
|
File Length
|
Integer
|
Big
|
Byte 28
|
Version
|
1000
|
Integer
|
Little
|
Byte 32
|
Shape Type
|
Shape Type
|
Integer
|
Little
|
Byte 36
|
Bounding Box
|
Xmin
|
Double
|
Little
|
Byte 44
|
Bounding Box
|
Ymin
|
Double
|
Little
|
Byte 52
|
Bounding Box
|
Xmax
|
Double
|
Little
|
Byte 60
|
Bounding Box
|
Ymax
|
Double
|
Little
|
Byte 68*
|
Bounding Box
|
Zmin
|
Double
|
Little
|
Byte 76*
|
Bounding Box
|
Zmax
|
Double
|
Little
|
Byte 84*
|
Bounding Box
|
Mmin
|
Double
|
Little
|
Byte 92*
|
Bounding Box
|
Mmax
|
Double
|
Little
|
*是未被使用的域,值为0.0,如果没有measure值或Z轴。
文件长度的值指的是16位字的个数,即文件的字节长度除以2(包括组成文件头的50个16位字)。
在shape文件中的所有非空shape必须是同一种shape类型。Shape类型的值如下:
值
|
Shape类型
|
0
|
Null Shape
|
1
|
Point
|
3
|
PolyLine
|
5
|
Polygon
|
8
|
MultiPoint
|
11
|
PointZ
|
13
|
PolyLineZ
|
15
|
PolygonZ
|
18
|
MultiPointZ
|
21
|
PointM
|
23
|
PolyLineM
|
25
|
PolygonM
|
28
|
MultiPointM
|
31
|
MultiPatch
|
没有被定义的Shape 类型值(2,4,6等直到33)为将来可能的使用而保留。目前shape文件被局限于包含以上定义的同种shape类型。但在将来shape文件可能会允许包含多种shape类型。若混合shape类型被实现,文件头中的shape类型将标识该文件。
主文件头的边界盒存储文件中shape的实际范围。所有的shape记录将都处于这个范围定义的矩形边界以内。如果shape文件是空的(没有记录),Xmin,Ymin,Xmax,Ymax的值则将是未被定义的。如果shape文件的类型是带有measure的,而实际却又没有记录measure数据的话,Mmin和Mmax可以是“没有数据”的值(参见2页的数字类型)。
2.2记录头
每个记录的头存储了记录的数目和记录内容的长度。记录头固定长度为8字节。表 2显示文件记录头中域的字节位置,值,类型和字节顺序。在表中,位置是相对于记录的开始位置。
表 2 主文件记录头文件的描述
位置
|
字段
|
值
|
类型
|
字节顺序
|
Byte 0
|
Record Number
(记录数目)
|
Record Number
|
Integer
|
Big
|
Byte 4
|
Content Length
(内容长度)
|
Content Length
|
Integer
|
Big
|
记录数目从1开始。
一个记录的内容长度是按16位字计算的记录内容长度。每个记录因此为文件的总长度贡献(4+内容长度)个16位字,正如文件头是100字节一样。
完整内容见附件。
分享到:
相关推荐
### SHAPE 文件格式详解 #### 一、概述 SHAPE 文件格式是由 Environmental Systems Research Institute (ESRI) 开发的一种用于存储地理空间数据的标准格式。它主要用于 GIS(Geographic Information System,地理...
Shape文件格式是一种广泛用于地理信息系统(GIS)的数据存储格式,由Esri公司开发。它是基于二进制的,主要用于存储地理图形数据,如点、线、多边形等几何对象,以及与这些几何对象相关的属性信息。在本篇内容中,...
Shape文件是一种广泛用于地理信息系统(GIS)的数据格式,主要用于存储矢量地理数据,如点、线、多边形等地理对象。它是由Esri公司开发的,是地理空间数据交换的标准之一。Shape文件通常由一系列相关文件组成,包括....
3. **投影信息**:Shape文件不包含内置的投影信息,但通常会附带一个.prj文件,说明数据使用的坐标系统。对于中国地图,可能采用的是中国标准的大地坐标系,如CGCS2000或WGS84。 4. **属性数据**:`.dbf`文件是...
本文将详细讲解与"中国各级路网shape数据"相关的知识点,包括GIS基础知识、shapefile格式、道路网络数据的结构和用途,以及如何利用这些数据进行最短路径分析。 GIS(Geographic Information System)是一种用于...
标题中的“蒙古国苏木界线,矢量数据,shape格式,shp”是指的这是一个地理信息系统(GIS)数据集,具体来说是蒙古国的行政区域边界数据,以Shapefile格式存储。Shapefile是一种常见的矢量数据格式,由Esri公司开发...
在城市管理规划部门使用GIS软件处理地理数据后,往往需要将SHAPE格式的文件转换为CAD格式以满足勘察部门的绘图需求。 最后,文章还提到了中图分类号和文献标识码,这表明该文件是一篇正式的学术论文,具有一定的...
标题中的“读取SWF并且画出其中的SHAPE图形”指的是在AS3(ActionScript 3)环境中解析SWF(ShockWave Flash)文件,并提取其中的SHAPE对象,然后将其绘制出来。SHAPE对象是Flash中用于创建矢量图形的基本元素,它...
ESRI Shapefile(shp)是Esri公司开发的空间数据开放格式。 该文件格式已经成为了地理信息软件界的一个开放标准,成为一个非常重要的交换数据格式,基本上所有的GIS软件都支持Shapefile的读写。
转换设置部分是CAD2Shape的核心功能,包括对点、折线、多边形、多面体、标签、3D实体等不同类型的数据进行转换的详细说明: - **点(Point)**:介绍如何将DWG中的点对象转换为SHP中的点特征。 - **折线(Polyline)**...
Shape文件是GIS领域常用的一种数据格式,用于存储几何对象,如点、线和多边形,它们在这里代表了海岸线的轮廓。 矢量图与位图(像素图)不同,其特点是基于数学公式和几何形状,因此在放大时不会失去清晰度,非常...
在这个案例中,"TXT转shape"功能是指将纯文本格式的数据(TXT)转换为Esri的Shapefile格式,这是一种常见的矢量地理数据格式。 Shapefile是由Esri公司开发的一种空间数据存储格式,它包含了地理对象(如点、线、...
标题中的“我国9大流域分区shape文件”是指中国地理信息数据的一种特定格式,它提供了关于中国九大水系的详细地理边界信息。Shapefile是GIS(地理信息系统)领域中广泛使用的一种矢量数据格式,用于存储地理空间特征...
在数字化城市管理中,将这些边界数据从文本格式(TXT)转换为更通用且功能强大的矢量格式(如SHAPE文件)是非常重要的。 SHAPE文件是ESRI公司开发的一种空间数据存储格式,广泛应用于GIS系统中,可以存储包括点、线...
Shape files 是 ESRI 提供的一种矢量数据格式,它没有拓扑信息,一个 Shape files 由一组文件组成,其中必要的基本文件包括坐标文件( .shp )、索引文件( .shx )和属性文件( .dbf )三个文件。
Shapefile是一种广泛使用的矢量数据格式,由Esri公司开发,用于存储地理空间信息,如点、线、多边形等。它不包含拓扑信息,但包含了空间坐标和属性数据。一个完整的Shapefile由三个核心文件组成:`.shp`(坐标文件)...
- **0**:空元素(Null Shape) - **1**:点(Point) - **3**:多边形(Polyline) - **5**:多边形集合(Polygon) - **8**:多点(Multipoint) - **11**:点集(Point Z) - **13**:多边形(Polyline Z) - **...
Shapelib是一个开源库,专门用于处理ESRI的Shapefile格式,这是一种广泛使用的矢量数据存储格式。下面将详细介绍如何在VC6中集成Shapelib以及如何利用它来读取Shape文件。 首先,你需要获取Shapelib的源代码或预...
本资源提供了全面的GPS数据格式说明,帮助用户有效地处理GPS数据,无论是进行科学研究、地理信息系统(GIS)应用还是导航系统开发,都能从中受益。 1. **NMEA 0183标准**:这是最常见的GPS数据格式,由美国国家海洋...