ImageVerifierCode 换一换
格式:DOCX , 页数:51 ,大小:29.43KB ,
资源ID:9530828      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9530828.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(shp文件格式说明doc.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

shp文件格式说明doc.docx

1、shp文件格式说明docshp 文件格式说明SHAPE文件格式SDE,ARC/INFO,PC ARC/INFO,Data Automation Kit(DAK)和ArcCAD软件提供了 shape 到 coverage 的数据转换器,ARC/INFO同样提供了 coverage 到 shape的转换器。为了和其他数据格式交换, shape 文件的格式在本报告中被出版。其他数据流,比如来自全球定位系统 (GPS)接收机的数据能同样被存为 shape 文件或 X,Y事件表。Shape 文件技术描述计算机程序能通过使用本节的技术描述来产生,读,写 shape 文件。一个 ESRI的 shape 文件

2、包括一个主文件,一个索引文件,和一个 dBASE 表。主文件是一个直接存取,变量记录长度文件,其中每个记录描述一个有它自己的 vertices 列表的 shape。在索引文件中,每个记录包含对应主文件记录离主文件头开始的偏移, dBASE表包含一 feature 一个记录的 feature 的特征。几何和属性间的一一对应关系是基于记录数目的。在 dBASE文件中的属性记录必须和主文件中的记录是相同顺序的。命名习惯所有文件名都符合8.3 命名习惯。主文件,索引文件和 dBASE文件有相同的前缀。前缀必须是由字符或数字(a-Z,0-9)开始,后跟 0 到 7 个字符( a-Z,0-9,_,)主文件

3、的后缀是 .shp,索引文件的后缀是 .shx,dBASE表的后缀是 .dbf。文件名中的所有字母在对文件名敏感的操作系统中都是小写的。1/31例子主文件:counties.shpxx 文件 :counties.shx dBASE表:ounties.dbf 数字类型一个 shape 文件存储整数和双精度数,本文档的余数指以下类型:整数:有符号 32 位整数( 4 字节)双精度:有符号 64 位 IEEE双精度浮点数( 8 字节)浮点数必须是数字的值。负无穷,正无穷和非数字( NaN)值在shape 文件不被允许。然而 shape 文件支持 没有数据 的值这样的概念,但是目前只用于衡量。某些小于

4、 1038 被shape 文件读取程序用来代表 没有数据 的值。下面的第一节描述 shape 文件的总体结构和组织。第二节描述 shape 文件支持的每种 shape 类型的记录内容。主文件的组织主文件( .shp)由固定长度的文件头和接着的变长度记录组成。每个变长度记录是由固定长度的记录头和接着的变长度记录内容组成。图 1 图解了主文件的结构。图 1 主文件的结构文件头2/31记录头记录内容记录头记录内容记录头记录内容记录头记录内容记录头记录内容Shape 文件中所有的内容可以被分为二类:与数据相关的:。主文件记录内容。主文件头的数据描述域( Shape类型,边界盒等)与文件管理相关的:。文

5、件和记录 xx。记录偏移等整数和双精度整数在文件头中组成数据描述域,在主文件的记录内容是小ndian(PC或 Intel )字节顺序。组成文件的其余部分和文件管理的整数和双精度浮点数是大 endian(Sun 或 Motorola )字节顺序。主文件头主文件头 100 字节长。表 1 显示带有字节位置,值,类型和字节顺序的文件头中的域。在此表中,位置是相对于文件的开始。3/31表 1 主文件头的描述位置域值类型字节顺序 0 字节文件代码 9994 整数大 4 字节未被使用 0 整数大 8 字节未被使用 0 整数大 12 字节未被使用 0 整数大 16 字节未被使用 0 整数大 20 字节未被使

6、用 0 整数大 24 字节文件长度整数大 28 字节版本 1000 整数小32 字节 Shape类型整数小 36 字节边界盒 Xmin 双精度小 44 字节边界盒 Ymin 双精度小 52 字节边界盒 Xmax 双精度小 60 字节边界盒 Ymax双精度小 68 字节 * 边界盒 Zmin 双精度小 76 字节 * 边界盒 Zmax 双精度小 84 字节 *边界盒 Mmin 双精度小 92 字节 * 边界盒 Mmax 双精度小 * 未被使用,值为0.0,若没有被衡量或是 Z 轴。文件长度的值是在 16 位字下文件的总长度(包括组成文件头的 50 个 16 位字)。在 shape 文件中的所有非

7、空 shape 被需要是同种 shape 类型。 Shape类型的值如下:值 shape 类型0 空 shape1点3多线5多边形8多点11点Z13多线 Z15 多边形 Z18多点 Z4/3121点M23多线 M25 多边形 M28多点 M31多斑块没有被定义的 Shape类型值( 2,4,6 等直到 33)为将来可能的使用而保留。目前 shape 文件被局限于包含以上定义的同种 shape 类型。在将来 shape 文件可以被允许包含多于一种 shape 类型。若混合 shape 类型被实现,文件头中的shape 类型将标识该文件。主文件头的边界盒存储文件中 shape 的实际幅度。最小边界

8、 X 和 Y直交的(潜在的 M,Z)长方形包含了所有的 shape。若 shape 文件是空的(没有记录), min,Ymin,Xmax,Ymax的值是未被定义的。Mmin 和 Mmax 能包含 shape 文件用来衡量不包含衡量的 shape 类型的 没有数据 的值(参见 2 页的数字类型),记录头每个记录的头存储了记录的数目和记录内容的长度。记录头有一个固定长度 8 字节。表 2 显示文件记录头中域的字节位置,值,类型和字节顺序。在表中,位置是相对于记录的开始的。表 2 主文件记录头文件的描述位置域值类型字节顺序 0 字节记录数目整数大 4 字节内容长度整数大记录数目从 1 开始。5/31

9、一个记录的内容长度是按 16 位字衡量的记录内容长度。每个记录因此为文件的总长度贡献( 4内容长度)个 16 位字,正如文件头是 24 字节一样。主文件记录内容Shape 文件记录内容包含一个 shape 类型和接着的该 shape的几何数据。记录内容的长度依赖于在一个 shape 中部分和vertices 的数目。对每种 shape 类型,我们首先描述该 shape 然后是它在磁盘上的存储镜像。在表 3 到 16,位置是相对于记录内容的开始。空 shapeshape 类型为 0 指代一种不带几何数据的空 shape,每种要素类型(点,线,多边形等)都支持空,在同一个 shape 文件中有点和

10、空的点是有效的。常常空 shape 是放东西的地方;在 shape 文件产生时被使用和在产生后更被广泛地使用。表 3 空 shape 记录内容位置域值类型数目字节顺序 0 字节 shape 类型 0 整数 1 小在 X,Y位置的Shape类型点一个点包括一对以 X,Y顺序排列的双精度的坐标PointDouble X /X 坐标Double Y /Y 坐标 表 4 点记录内容位置域值类型数目字节顺序 0 字节 shape 类型 1 整数 1 小 4 字节 XX 双精度 1 小 12 字节 Y Y 双精度 1 小多点一个多点代表一个点的集合:6/31MultiPointDouble4 Box /

11、边界盒Integer NumPoints / 点的数目PointNumPoints Points / 在集合中的点 边界盒以Xmin,Ymin,Xmax,Ymax存储。表 5 多点记录内容位置域值类型数目字节顺序 0 字节 shape 类型 8 整数 1 小 4 字节 BoxBox 双精度 4 小 36 字节 NumPoints NumPoints 整数 1 小 40 字节 PointsPoints 点 NumPoints 小 PolyLine一条 PolyLine是指一条包含一个或多个部分的有序的 vertices 的集合。一个部分是指二个或多个点彼此连接的顺序。部分间彼此相连或不连。部分间

12、彼此可能相交或不相交。因为该定义没有禁止有确定坐标的连续点, shape 文件的读程序必须掌握这样的情况。在另外,退化 (degenerate)和可能导致零长度的结果是不被允许的。PolyLineDouble4 Box / 边界盒Integer NumParts / 部分的数目Integer NumPoints / 点的总数目IntegerNumParts Parts / 在部分中第一个点的索引PointNumPoints Points / 所有部分的点 PolyLine的域在以下为更详细的描述:Box 被存储的 PolyLine的边界盒,以 Xmin,Ymin,Xmax,Ymax的顺序存储。

13、NumParts 在 PolyLine中部分的数目。NumPoints 所有部分的点的总数目。7/31Parts NumParts 长度的数列。为每条 PolyLine存储它在点数列中的第一个点的索引。数列索引是从 0 开始的。Points NumPoints 长度的数列。在 PolyLine 中的每一部分的点被尾到尾存储。部分 2 的点跟在部分 1 的点之后,如此下去。部分数列对每一部分保持开始点的数列索引。在部分间点之间没有界限。表 6 PolyLine记录内容位置域值类型数目字节顺序 0 字节 shape 类型 3 整数 1 小 4 字节 BoxBox 双精度 4 小 36 字节 Num

14、Parts NumParts 整数 1 小 40 字节 NumPointsNumPoints 整数 1 小 44 字节 Parts Parts 整数 NumParts 小 X 字节Points Points 点 NumPoints 小注意:X=44+4*NumParts多边形一个多边形包含一个或多个环。一个环是四或多个点彼此相连组成的一个闭合的彼此不相交的环。一个多边形可能包括多个外环,一个环的 vertices 的顺序和方向指示环的哪一边是多边形的内部。在多边形中的洞的环的 vertices 是逆时针方向的。一个环组成的多边形总是顺时针方向的。一个多边形的环是被做为它的一部分的。因为该定义没

15、有禁止有确定坐标的连续的点, shape 文件读程序必须解决这种情况。在另外,退化 (degenerate)和可能导致零长度的结果是不被允许的。多边形的结构被定义为 PolyLine结构,正如下文:PolygonDouble4 Box / 边界盒Integer NumParts / 部分的数目Integer NumPoints / 点的总数目8/31IntegerNumParts Parts / 在部分中第一个点的索引PointNumPoints Points / 所有部分的点 多边形的域在以下为更详细的描述:Box 被存储的多边形的边界盒,以 Xmin,Ymin,Xmax,Ymax的顺序存储

16、。NumParts 在多边形中环的数目。NumPoints 所有环的点的总数目。Parts NumParts 长度的数列。为每条环存储它在点数列中的第一个点的索引。数列索引是从 0 开始的。Points NumPoints 长度的数列。在多边形中的每一个环的点被尾到尾存储。环 2 的点跟在环 1 的点之后,如此下去。部分数列对每一环保持开始点的数列索引。在环间点之间没有界限。图 2 中的例子图演示了多边形的表现。该图中的多边形有一个洞,总共是 8个 vertices。关于多边形 shape 有以下重要注意事项:环是闭合的(第一个和最后一个 vetex 必须是一样的)在点数列中环的顺序是不重要的

17、。存储在 shape 文件中的多边形必须是 clean,一个 clean 的多边形是指这样的一个多边形:1没有自交。这意味着属于一个环的一段可能不与另一个环的一段相交。一个多边形的环可能在 vetices 处彼此相交,但不是在沿段处。重合的段被认为是相交的。2在定义多边形的线的正确一边有多边形的内部。一个观察者以 vertex 顺序沿环走时,右边的邻居是多边形的内9/31部。一个独环的多边形的 vertices 因此都是顺时针的。在这些多边形中的洞有一个逆时针的方向。当定义在多边形中的洞同样是顺时针时,发生 Dirty 多边形错误。这会导致内部的重叠。图 2 一个多边形的实例在此例中, Num

18、Parts 等于 2,NumPoints 等于 10。注意洞多边形的点的顺序是逆序的。0 5部分:0 50 1 2 3 4 5 6 7 8 9点:v1 v2 v3 v4 v1 v5 v8 v7 v6 v5表 7 多边形记录内容位置域值类型数目字节顺序 0 字节 shape 类型 5 整数 1 小 4 字节 BoxBox 双精度 4 小 36 字节 NumParts NumParts 整数 1 小 40 字节 NumPointsNumPoints 整数 1 小 44 字节 Parts Parts 整数 NumParts 小 X 字节Points Points 点 NumPoints 小注意:X=

19、44+4* NumParts在 X,Y空间中衡量的 shape 类型该种 shape 有一个额外的坐标 M,注意 没有数据 的值可以被指定为 M 的一个值。PointM 一个 PointM 包括一对以 X,Y顺序排列的双精度的坐标,再加上衡量M。PointMDouble X /X 坐标Double Y /Y 坐标10/31Double M /M 衡量 表 8 PointM 记录内容位置域值类型数目字节顺序 0 字节 shape 类型 21 整数 1 小 4 字节 XX双精度 1小12字节 Y Y双精度 1小20字节 MM 双精度 1小多 PointM 一个多 PointM 代表一个 Point

20、M 的集合:MultiPointDouble4 Box / 边界盒Integer NumPoints / 点的数目PointNumPoints Points / 在集合中的点Double2 M Range / 衡量 M 的上下界DoubleNumPoints M Array / 衡量 多 PointM 的域在以下为更详细的描述:Box 被存储的多 PointM 的边界盒,以 Xmin,Ymin,Xmax,Ymax的顺序存储。NumPoints 点的总数目。Points NumPoints 长的点的数列。M Range以 Mmin,Mmax 顺序存储的多 PointM 的最小,最大值。M Arr

21、ay NumPoints 长的衡量的数组。表 9 多 PointM 记录内容位置域值类型数目字节顺序 0 字节 shape 类型 28 整数 1 小 4 字节 BoxBox 双精度 4 小 36 字节 NumPoints NumPoints 整数 1 小 40 字节 PointsPoints 点 NumPoints 小 X*字节 Mmin Mmin 双精度 1 小 X+8*字节Mmax Mmax 双精度 1 小 X+16*字节 Marry Marry 双精度NumPoints 小注意:X 40( 16* NumPoints)* 可选的11/31多 LineM 一条 shape 文件的多 Lin

22、eM 包含一个或多个部分。指一条包含一个或多个部分的有序的 vertices 的集合。一个部分是指二个或多个点彼此连接的顺序。部分间彼此相连或不连。部分间彼此可能相交或不相交。PolyLineMDouble4 Box / 边界盒Integer NumParts / 部分的数目Integer NumPoints / 点的总数目IntegerNumParts Parts / 在部分中第一个点的索引PointNumPoints Points / 所有部分的点Double2 M Range / 衡量 M 的上下界DoubleNumPoints M Array / 所有点的衡量 PolyLineM 的域

23、在以下为更详细的描述:Box 被存储的 PolyLineM的边界盒,以 Xmin,Ymin,Xmax,Ymax的顺序存储。NumParts 在 PolyLineM 中部分的数目。NumPoints 所有部分的点的总数目。Parts NumParts 长度的数列。为每条 PolyLineV存储它在点数列中的第一个点的索引。数列索引是从 0 开始的。Points NumPoints 长度的数列。在 PolyLineM 中的每一部分的点被尾到尾存储。部分 2 的点跟在部分 1 的点之后,如此下去。部分数列对每一部分保持开始点的数列索引。在部分间点之间没有界限。M Range以 Mmin,Mmax 顺

24、序存储的多 PointM 的最小,最大值。12/31MArray NumPoints 长的衡量的数组 ,在多 PointM 每部分的衡量被被尾到尾存储部分 2 的点跟在部分 1 的点之后,如此下去。部分数列对每一部分保持开始点的数列索引。在部分间点之间没有界限。表 10 PolyLineM记录内容位置域值类型数目字节顺序 0 字节 shape 类型 23 整数 1 小 4 字节 BoxBox 双精度 4 小 36 字节 NumParts NumParts 整数 1 小 40 字节 NumPointsNumPoints 整数 1 小 44 字节 Parts Parts 整数 NumParts 小

25、 X 字节Points Points 点 NumPoints 小 Y*字节 Mmin Mmin 双精度 1 小 Y+8*字节 Mmax Mmax 双精度 1 小 Y+16*字节 MarryMarry 双精度 NumPoints 小注意:X=44+4* NumParts Y40( 16* NumPoints)*可选的多边形 M 一个多边形 M 包含一个或多个环。一个环是四或多个点彼此相连组成的一个闭合的彼此不相交的环。注意相交是在 X,Y空间计算,而不是在 X,Y,M空间。一个多边形可能包括多个外环,一个多边形的环是被做为它的一部分的。多边形 M 的结构被定义为 PolyLineM 结构,正如下

26、文:PolygonMDouble4 Box / 边界盒Integer NumParts / 部分的数目Integer NumPoints / 点的总数目IntegerNumParts Parts / 在部分中第一个点的索引PointNumPoints Points / 所有部分的点Double2 M Range / 衡量 M 的上下界13/31DoubleNumPoints M Array / 所有点的衡量 多边形 M 的域在以下为更详细的描述:Box 被存储的多边形的边界盒,以 Xmin,Ymin,Xmax,Ymax的顺序存储。NumParts 在多边形 M 中环的数目。NumPoints

27、所有环的点的总数目。Parts NumParts 长度的数列。为每条环存储它在点数列中的第一个点的索引。数列索引是从 0 开始的。Points NumPoints 长度的数列。在多边形中的每一个环的点被尾到尾存储。环 2 的点跟在环 1 的点之后,如此下去。部分数列对每一环保持开始点的数列索引。在环间点之间没有界限。M Range以 Mmin,Mmax 顺序存储的多 PointM 的最小,最大值。MArray NumPoints 长的衡量的数组 ,在多 PointM 每部分的衡量被被尾到尾存储部分 2 的点跟在部分 1 的点之后,如此下去。部分数列对每一部分保持开始点的数列索引。在部分间点之间

28、没有界限。关于 PolygonM shape有以下注意事项:环是闭合的(第一个和最后一个 vetex 必须是一样的)在点数列中环的顺序是不重要的。表 11 多边形 M 的记录内容位置域值类型数目字节顺序 0 字节 shape 类型 5 整数 1 小 4 字节 BoxBox 双精度 4 小 36 字节 NumParts NumParts 整数 1 小 40 字节 NumPointsNumPoints 整数 1 小 44 字节 Parts Parts 整数 NumParts 小 X 字节Points Points 点 NumPoints 小 Y*字节 Mmin Mmin 双精14/31度 1 小 Y+8*字节 Mmax Mmax 双精度 1 小 Y+16*字节 MarryMarry 双精度 NumPoints 小注意:X=44+4* NumParts Y40( 16* NumPoints)*可选的在 X,Y,Z空间中衡量的 shape 类型该种 shape 有一个额外的坐标 M,注意 没有数据 的值可以被指定为 M 的一个值。PointZ 一个 PointZ 包括一对以 X,Y,Z顺序排列的双精度的坐标,再加

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1