关键词不能为空

当前您在: 主页 > 英语 >

shp文件格式说明

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-01 21:52
tags:

-

2021年2月1日发(作者:5999)



shp


文件格式说明



SHAPE


文件格式



SDE,ARC/INFO,PC ARC/INFO,Data Automation Kit(DAK)



ArcCAD


软件提供了


shape


< br>coverage


的数据转换器,


ARC/INFO


同样提供了


coverage

< p>


shape


的转换器。为了和其他数据格式交< /p>


换,


shape


文件的格式在本报告中被 出版。



其他数据流,比如来自全球定位系统

< br>(GPS)


接收机的数据能同样被存为


shape


文件或


X,Y


事件表。



Shape


文件技术描述计算机程序能通过使用本节的技术 描述来产生,读,写


shape


文件。



一个


ESRI



shape


文件包括一个主文件,一个索引文件,和一个


dB ASE


表。主文件是一个直接存取,变量记录长度文



件,其中每个记录描述一个有它自己的


vertices


列表的


shape


。在索引文件


中,每个记录包含对应主文件记录离主



文件头开始的偏移,


dBASE


表包含一


feature< /p>


一个记录的


feature


的特征。


几何和属性间的一一对应关系是基于记录



数目的。在


dBASE


文件中的属性记录必须和主文件中的记录 是相同顺序


的。



命名习惯所有文件名都符合



8.3< /p>


命名习惯。主文件,索引文件和


dBASE


文件有相同的前缀。前缀必须是


由字符或数字




a-Z,0-9


)开始,后跟

0



7


个字符(

< br>a-Z,0-9



_,


)主文件 的后缀是


.shp



索引文件的后缀是


.shx



dBASE


表的后



缀是


.dbf


。文件名中的所有字母在对文件名敏感的操作系统中都是小写的。




1



/


31





例子



主文件:




文件


:





dBASE


表:



数字类型一个


shape


文件存储 整数和



双精度数,本文档的余数指以下类型:



整数:



有符号


32


位整数(


4


字节)



双精度:



有符号


64



IEEE


双精 度浮点数(


8


字节)浮点数必须是数字的值。负无


穷,正无穷和非数字(


NaN


)值在



shape


文件不被允许。然而

shape


文件支持


'


没有数据< /p>


'


的值这样的概念,但


是目前只用于衡量 。某些小于-


1038



< p>
shape


文件读取程序用来代表


'


没有数据


'


的值。



下面的第一节描述


shape


文件的总体结构 和组织。第二节描述


shape


文件


支 持的每种


shape


类型的记录内容。



主文件的组织



主文件(


.shp


)由固定长度的文件头和接着的变长度记录组成。每个变长度


记录是由固定长度的记录头和接着的变



长度 记录内容组成。图


1


图解了主文件的结构。



1


主文件的结构



文件头




2



/


31





记录头记录内容



记录头记录内容



记录头记录内容



记录头记录内容



……



……



记录头记录内容



Shape


文件中所有的内容可以被分为二类:



与数据相关的:



。主文件记录内容



。主文件头的数据 描述域(


Shape


类型,边界盒等)



与文件管理相关的:



。文件和记录


xx


。记录偏移等



整数和双精度整数在文 件头中组成数据描述域,在主文件的记录内容是小


ndian



PC



Intel

)字节顺序。组成文件



的其余部分和文件管理的整数和双 精度浮点数是大


endian



Sun



Motorola


)字节顺序。



主文件头



主文 件头


100


字节长。表


1


显示带有字节位置,值,类型和字节顺序的文


件头中的域。

< br>


在此表中,位置是相对于文件的开始。




3



/


31




< /p>



1


主文件头的描述


位置域值类型字节顺序


0


字节文 件代码


9994


整数大


4


字节未被使用


0


整数



8


字节未被使用


0


整数大


12


字节未被使用


0

< p>
整数大


16


字节未被使用


0


整数



20


字节未被使用


0


整数大


24

< p>
字节文件长度整数大


28


字节版本


1000


整数小


32


字节


Shape


类型整数小


36


字节边界盒


Xmin


双精度小


44


字节边界盒


Ymin


< p>
精度小


52


字节边界盒


X max


双精度小


60


字节边界盒


Ymax


双精度小


68


字节


*



界盒


Zmin


双精度小


76


字节


*


边界盒


Zmax


双精 度小


84


字节


*


边界盒


Mmin


双精


度小

< p>
92


字节


*


边界盒


Mmax


双精度小


*


未被使用,值为



0.0


,若没有被衡 量或是


Z


轴。



文件长度的值是在


16


位字下文件的总长度(包括组成文件头 的


50



16



字)。




shape


文件中的所有非空


shape


被需



要是同种


shape


类型。


Shape


类型的值如下:




shape


类型



0



shape


1




3


多线



5


多边形



8


多点



11



Z


13


多线


Z


15


多边形


Z


18


多点


Z



4



/


31





21



M


23


多线


M


25


多边形


M


28


多点


M


31


多斑块



没有被定义的


Shape


类型值(


2< /p>



4



6


等直到


33


)为将来可能的使用而保


留。



目前


shape


文件被局限于包含以上定义



的同种< /p>


shape


类型。在将来


shape


文件可以被允许包含多于一种


shape



型。若混合


shape


类型被实现,文 件头中的



shape


类型将标识该文件。



主文件头的边界盒存储文件中


shape


的 实际幅度。最小边界


X



Y

< p>
直交的


(潜在的


M,Z


) 长方形包含了所有的


shape



< /p>



shape


文件是空的(没有记录),


min,Ymin,Xmax,Ymax


的值是未被定义


的。



Mmin


和< /p>


Mmax


能包含


shape


文件用来衡量



不包含衡量的


shape


类型的


'


没有数据


'


的值(参见


2


页的 数字类型),记录


头每个记录的头存储了记录的数目和记录内容的长度。记录头有一个固 定长度


8


字节。表


2

< br>显示文件记录头中域的字



节位置,值,类型和字节顺序 。在表中,位置是相对于记录的开始的。



< br>2


主文件记录头文件的描述



位 置域值类型字节顺序


0


字节记录数目整数大

4


字节内容长度整数大记录


数目从


1


开始。




5



/


31




< /p>


一个记录的内容长度是按


16


位字衡量的 记录内容长度。每个记录因此为文


件的总长度贡献(


4


+内容长度)个


16




字,正如文件头是


24


字节一样。



主文件记录内容



Shape


文件记录内容包含一个


shape


类型和接着的该


shape


的几何数据。记

< p>
录内容的长度依赖于在一个


shape


中部分和< /p>



vertices


的数目。对每种


shape


类型,我们首先描述该


shap e


然后是它在磁


盘上的存储镜像。在表


3



16


,位置是相

< br>


对于记录内容的开始。




shape


shape

< p>
类型为


0


指代一种不带几何数据的空


shape


,每种要素类型(点,


线,多边形等)都 支持空,在同一个


shape




件中有点和空的点是有效的。常常空


shape

是放东西的地方;在


shape



件产生时被使用和在产生后更被广泛地使用。




3



shape


记录内容< /p>



位置域值类型数目字节顺序


0


字节


shape


类型


0


整数


1


小在


X ,Y


位置的


Shape


类型

< p>


点一个点包括一对以


X,Y

顺序排列的双精度的坐标



Point{Double





X //X


坐标



Double





Y / /Y


坐标


}



4


点记录内容



位置域值类型数目字节 顺序


0


字节


shape


类型


1


整数


1



4


字节


X















X


双精度


1



12


字节


Y















Y


双精度


1


小多点一个多点代表一个点的


集合:




6



/


31





MultiPoint{Double[4]












Box











//


边界盒



Integer















NumPoints





//


点的数目



Point[NumPoints]






Points









//


在集合中的点

< br>}


边界盒以


Xmin,Ymin,Xmax,Ymax< /p>


存储。




5< /p>


多点记录内容



位置域值类型数目字节顺 序


0


字节


shape

< br>类型


8


整数


1

< br>小


4


字节


Box














Points



NumPoints



PolyLine


一条

PolyLine


是指一条包含一个或多个部分的有


序的< /p>


vertices


的集合。一个部分是指二个或多个点彼此



连接的顺序。部分间彼此相连或不连。部分间彼此可能相交或不相交 。



因为该定义没有禁止有确定坐标的连续点,


shape


文件的读程序必须掌握这


样的情况。在另外 ,退化


(degenerate)


和可能导致零长度的结果是不被允许的。



PolyLine{Double[4]














Box










//


边界盒



Integer

















NumParts





//


部分的数目



Integer

















NumPoints




//


点的总数目



Integer[NumParts]








Parts









//


在部 分中第一个点的索引


Point[NumPoints]








Points








//


所有部分的点

< br>}PolyLine


的域在以下为更


详细的描述:



Box


被存储的


P olyLine


的边界盒,以


Xmin,Ymin,Xmax, Ymax


的顺序存储。



NumPar ts



PolyLine


中部分的数目 。



NumPoints


所有部分的点 的总数目。



Box


双精度

< p>
4



36


字节

< p>
NumPoints







Num Points


整数


1



40


字节


Points














7



/


31





Parts









NumParts


长度的数列。为每 条


PolyLine


存储它在点数列中的


第一个点的索引。数列索引是从


0


开始的。

< br>


Points








NumPoints


长度的数列。在


Pol yLine


中的每一部分的点被尾到


尾存储。部分


2


的点跟在部分


1


的点之后



,如此下去。部分数列对每一部分保持开始点的数列索引。



在部分间点之间没有界限。




6 PolyLine


记录内容



位置域值 类型数目字节顺序


0


字节


shape< /p>


类型


3


整数


1< /p>



4


字节


Box














Box


双精度


4



36


字节


NumParts








NumParts


整数


1



40


字节


NumPoints







Num Points


整数


1



44


字节


Parts













Parts


整数


NumParts



X


字节


Points













Points


NumPoints


小注意:



X =44+4*NumParts


多边形一个多边形包含一个或多个环。一个环是四或多< /p>


个点彼此相连组成的一个闭合的



彼此不 相交的环。一个多边形可能包括多个外环,一个环的


vertices

< br>的顺序


和方向指示环的哪一边是多边形的内部



。在多边形中的洞的环的


vertices


是逆 时针方向的。一个环组成的多边形总


是顺时针方向的。一个多边形的环是被



做为它的一部分的。因为该定义没有禁止有确定坐标的连续的点,


shape



件读程序必须解决这种情况。在另 外,



退化


(degenerate)


和可能导致零长度的结果是不被允许的。多边形的结构被


定义为


PolyLine


结构,正如下文:



Polygon{Double[4]











Box









//


边界盒



Integer

















NumParts





//


部分的数目



Integer

















NumPoints




//


点的总数目




8



/


31





Integer[NumParts]








Parts









//


在部 分中第一个点的索引


Point[NumPoints]








Points








//


所有部分的点

< br>}


多边形的域在以下为更


详细的描述:

< br>


Box


被存储的多边形的边界盒,以

< br>Xmin,Ymin,Xmax,Ymax


的顺序存储。



NumParts


在多边形中环的数目。



NumPoints


所有环的点的总数目。



Parts









NumParts


长度的数列。为每 条环存储它在点数列中的第一个


点的索引。数列索引是从


0


开始的。



Points








NumPoints


长度的数列。在多边形中的每一个环的点被尾到尾


存储。环

< br>2


的点跟在环


1


的点之后,如此



下去。部分数列对每一环保持开始点的数列索引。在环间点之 间没有界


限。



2


中的例子图演示了多边形的表现。该图中的多边形有一个洞,总共是


8



vertices


。< /p>



关于多边形


shape


有以下重要注意事项:



环是闭合的(第一个和最后一 个


vetex


必须是一样的)在点数列中环的顺序


是不重要的。



存储在


sh ape


文件中的多边形必须是


clean


,一个


clean


的多边形是指这样


的一个多边形:



1


.没有自交。这意 味着属于一个环的一段可能不与另一个环的一段相交。


一个多边形



的环可能在


vetices


处彼此 相交,但不是在沿段处。重合的段被认为是相交


的。



2


.在定义多边形的线的正确一边有多边形的内部。一个观察者以


vertex



序沿环走时,右边的邻居是多 边形的内




9



/


31




< /p>


部。一个独环的多边形的


vertices


因此都是顺时针的。在这些多边形中的洞


有一个逆时针的方向。当定义在多边形



中的洞同样是顺时针时,发生



多边形错误。这会导致内部的重叠。



< p>
2


一个多边形的实例



在 此例中,


NumParts


等于


2,N umPoints


等于


10


。注意洞多 边形的点的顺序


是逆序的。



0







5


部分:


0







5


0




1




2




3




4




5




6




7




8




9


点:



v1 v2 v3 v4 v1 v5 v8 v7 v6 v5



7


多边形记录内容



位置域值类型数目字节顺序

< br>0


字节


shape


类型


5


整数


1


< p>
4


字节


Box














Box


双精度


4



3 6


字节


NumParts








NumParts


整数


1



40


字节


NumPoints







NumPoints


整数


1



44


字节


Parts













Parts


整数

NumParts



X


字节


Points












Poi nts



NumPoints


小注意:



X=44+4* NumParts



X,Y


空间中衡量的


shape< /p>


类型该种


shape


有一个额外的坐标< /p>


M


,注意




有数据



的值可以被指定为

< br>M


的一个值。



PointM< /p>


一个


PointM


包括一对以

< p>
X,Y


顺序排列的双精度的坐标,再加上衡量


M< /p>




PointM{Double






X





//X


坐标



Double






Y





//Y


坐标




10



/


31





Double






M





//M


衡 量


}



8 PointM


记录内容



位置域值类型 数目字节顺序


0


字节


shape


类型


21


整数


1



4


字节


X















X


双精度


1



12


字节


Y















Y


双精度


1



20


字节


M















M


双精度


1





Poi ntM


一个多


PointM


代表一个< /p>


PointM


的集合:



MultiPoint{Double[4]












Box











//


边界盒



Integer















NumPoints





//


点的数目



Point[NumPoints]






Points









//


在集合中的点



Double[2]












M Range







//< /p>


衡量


M


的上下界



Double[NumPoints]




M Array








//


衡量


}



PointM


的域在以下为更详


细的描述:



Box


被存储的多


PointM


的边界盒,以


Xmin,Ymin,Xmax,Ymax


的顺序存储。



NumPoints


点的总数目。



Points








NumPoints


长的点的数列。



M Range



Mmin,Mmax


顺序存储的多


PointM


的最小,最 大值。



M Array






NumPoints


长的衡量的数组。




9



Poi ntM


记录内容



位置域值类型数目字 节顺序


0


字节


shape


类型


28


整数


1

< p>


4


字节


Box














Points



NumPoints



X*


字节


Mmin













Mmi n


双精度


1



X+8*


字节


Mmax












Mmax


双精度

1



X+16*


字节


Marry












Mar ry


双精度


NumPoints


小注意 :



X



40


+(


16* NumPoints


)< /p>


*


可选的



Bo x


双精度


4



36


字节


NumPoints







NumPoints


整数


1



40


字节


Points














11



/


31




< /p>



LineM


一条


shape


文件的多


LineM


包含 一个或多个部分。指一条包含一


个或多个部分的有序的


vert ices


的集合。



一个部分是指二个 或多个点彼此连接的顺序。部分间彼此相连或不连。部


分间彼此可能相交或不相交。



PolyLineM{Double[4]














Box










//


边界盒



Integer

















NumParts





//


部分的数目



Integer

















NumPoints




//


点的总数目



Integer[NumParts]








Parts









//


在部 分中第一个点的索引


Point[NumPoints]








Points








//


所有部分的点



Double[2]














M Range







//


衡量


M


的上下界



Double[NumPoints]






M Array








//< /p>


所有点的衡量


}PolyLineM


的域 在


以下为更详细的描述:



Box


被存储的


PolyLineM


的边界盒,以


Xmin,Ymin,Xmax,Ymax


的顺序存储。



NumParts



PolyLineM


中部分的数目。



NumPoints


所有部分的点的总数目。



Parts









NumParts


长度的数列。为每 条


PolyLineV


存储它在点数列中


的第一个点的索引。数列索引是从


0


开始


的。



Points








NumPoints


长度的数列。在


PolyLineM


中的每一部分的 点被尾


到尾存储。部分


2


的点跟在部分


1


的点之



后,如此下去。部分数列对每一部分保持开始点的数列索引。



在部分间点之间没有界限。



M Ra nge



Mmin,Mmax


顺序存储 的多


PointM


的最小,最大值。




12



/


31





MArray






NumPoints


长的衡量的数组


,


在多


Po intM


每部分的衡量被被尾


到尾存储部分

2


的点跟在部分


1


的点之后,



如此下去。部分数列对每一部分保持开始点的数列索引。在部分间 点之间


没有界限。




10 PolyLineM


记录内容



位置域 值类型数目字节顺序


0


字节


shape


类型


23


整数


1



4


字节


B ox














Box


双精度


4



36


字节


NumParts








NumParts


整数


1



40


字节


NumPoints







Num Points


整数


1



44


字节


Parts













Parts


整数


NumParts



X


字节


Points













Points


NumPoints



Y*


字节< /p>


Mmin













Mmin



精度


1



Y+8*


字节


Mmax













Mmax


双精度


1



Y+16*


字节


Marry













Mar ry


双精度


NumPoints


小注意 :



X=44+4* NumParts Y

< br>=


40


+(


16* NumPo ints



*


可选的

< br>


多边形


M


一个多边形


M


包含一个或多个环。一个环是四或多个点彼此相连

组成的一个闭合的彼此不相交的环。注意



相交是在


X,Y


空间计算,而不是在


X,Y,M


空间。一个多边形可能包括多个外


环,一个多边形的环是被做为它的一 部分



的。



多边形


M


的结构被定义为


PolyLi neM


结构,正如下文:



PolygonM{Double[4]











Box









//


边界盒



Integer

















NumParts





//


部分的数目



Integer

















NumPoints




//


点的总数目



Integer[NumParts]








Parts









//


在部 分中第一个点的索引


Point[NumPoints]








Points








//


所有部分的点



Double[2]














M Range







//


衡量


M


的上下界




13



/


31





Double[NumPoints]






M Array








//< /p>


所有点的衡量


}


多边形

< br>M


的域在以


下为更详细的描述:



Box


被存储的多边形的边界盒,以


X min,Ymin,Xmax,Ymax


的顺序存储。


NumP arts


在多边形


M


中环的数目。



NumPoints


所有环的点的总数目 。



Parts









NumParts


长度的数列。为每条环存储它在点数列中的第一个


点的索引。数列索引是从


0


开始的。



Points








NumPoints


长度的数列。在多边形中的每一个环的点被尾到 尾


存储。环


2


的点跟在环


1


的点之后,如此



下去。 部分数列对每一环保持开始点的数列索引。在环间点之间没有界


限。


M Range



Mmin,M max


顺序存储的多


PointM


的最 小,最大值。



MArray






Num Points


长的衡量的数组


,


在多< /p>


PointM


每部分的衡量被被尾


到尾存 储部分


2


的点跟在部分


1


的点之后,



如此下去。部分数列对每一部分保持开 始点的数列索引。在部分间点之间


没有界限。



关于


PolygonM shape


有以下注意事项:



环是闭 合的(第一个和最后一个


vetex


必须是一样的)在点数列中 环的顺序


是不重要的。



< p>
11


多边形


M


的记录内容



位置域值类型数目字节顺序


0


字节


shape


类型


5


整数


1



4


字节


Box














Box


双精度


4



3 6


字节


NumParts








NumParts


整数


1



40


字节


NumPoints







NumPoints


整数


1



44


字节


Parts













Parts


整数

NumParts



X


字节


Points












Poi nts



NumPoints



Y*


字节


Mmin













Mmin


双精



14



/


31




< /p>



1



Y+8*


字节


Mmax













Mmax


双精度


1



Y+16*


字节


Marry













Marry


双精度

< br>NumPoints


小注意:



X=44+4* NumParts Y


40


+(


16* NumPoints


*


可选的在


X,Y,Z


空间中衡量的


shape


类型该种


shape


有一



个额外的 坐标


M


,注意



没有数据



的值可以被指定为


M


的一个值。



PointZ

一个


PointZ


包括一对以


X, Y,Z


顺序排列的双精度的坐标,再加上衡量


M




PointM{Double






X





//X


坐标



Double






Y





//Y


坐标



Double






Z





//Z


坐标



Double






M





//M


衡 量


}



12 PointZ


记录内容



位置域值类型 数目字节顺序


0


字节


shape


类型


21


整数


1



4


字节


X















X


双精度


1



12


字节


Y















Y


双精度


1



20


字节


Z















Z


双精度


1



28


字节


M easure












M


双精度


1


小多


Po intZ


一个多


PointZ


代表一个


PointZ


的集合:



MultiPoint{Double[4]












Box











//


边界盒



Integer















NumPoints





//


点的数目



Point[NumPoints]






Points









//


在集合中的点



Double[2]












Z Range







//Z


的上下界



Double[NumPoints]




Z Array








//Z


的值



Double[2]












M Range







//< /p>


衡量


M


的上下界




15



/


31



-


-


-


-


-


-


-


-



本文更新与2021-02-01 21:52,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/595353.html

shp文件格式说明的相关文章

  • 余华爱情经典语录,余华爱情句子

    余华的经典语录——余华《第七天》40、我不怕死,一点都不怕,只怕再也不能看见你——余华《第七天》4可是我再也没遇到一个像福贵这样令我难忘的人了,对自己的经历如此清楚,

    语文
  • 心情低落的图片压抑,心情低落的图片发朋友圈

    心情压抑的图片(心太累没人理解的说说带图片)1、有时候很想找个人倾诉一下,却又不知从何说起,最终是什么也不说,只想快点睡过去,告诉自己,明天就好了。有时候,突然会觉得

    语文
  • 经典古训100句图片大全,古训名言警句

    古代经典励志名言100句译:好的药物味苦但对治病有利;忠言劝诫的话听起来不顺耳却对人的行为有利。3良言一句三冬暖,恶语伤人六月寒。喷泉的高度不会超过它的源头;一个人的事

    语文
  • 关于青春奋斗的名人名言鲁迅,关于青年奋斗的名言鲁迅

    鲁迅名言名句大全励志1、世上本没有路,走的人多了自然便成了路。下面是我整理的鲁迅先生的名言名句大全,希望对你有所帮助!当生存时,还是将遭践踏,将遭删刈,直至于死亡而

    语文
  • 三国群英单机版手游礼包码,三国群英手机单机版攻略

    三国群英传7五神兽洞有什么用那是多一个武将技能。青龙飞升召唤出东方的守护兽,神兽之一的青龙。玄武怒流召唤出北方的守护兽,神兽之一的玄武。白虎傲啸召唤出西方的守护兽,

    语文
  • 不收费的情感挽回专家电话,情感挽回免费咨询

    免费的情感挽回机构(揭秘情感挽回机构骗局)1、牛牛(化名)向上海市公安局金山分局报案,称自己为了挽回与女友的感情,被一家名为“实花教育咨询”的情感咨询机构诈骗4万余元。

    语文