关键词不能为空

当前您在: 主页 > 英语 >

shp文件格式

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

-

2021年2月1日发(作者:durex是什么意思)


shp


文件格式








发信人


: liuwenjin (bull),


信区


: GIS







: shp


文件格式




发信站


:


两全其美



BBS (Mon Aug 29 23:36:04 2005),


本站


() SHAPE


文件格式




SDE,ARC/INFO,PC ARC/INFO,Data



Automation Kit(DAK)

< br>和


ArcCAD


软件提供了


sh ape



coverage


的数据转 换器,


ARC/INFO


同样提供了


c overage



shape


的转换器 。为了和


其他数据格式交换,


shape


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


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

< br>(GPS)


接收机的数据能


同样被存为

< br>shape


文件或


X,Y


事件表 。




Shape

文件技术描述计算机程序能通过使用本节的技术描述


来产生,读,写


shape


文件。




一个


ESRI



sh ape


文件包括一个主文件,


一个索引文件,

< br>和


一个


dBASE


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


件,


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


vertices


列表的


sha pe



在索引文件中,每个记录包含对应主文件记录离主文件头 开


始的偏移,


dBASE


表包含一


feature


一个记录的


feature


的特


征。几何和属性间的一一对应关系是基于记录数目的。在< /p>


dBASE


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


序的。




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


8.3


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


件和


dBASE


文件有相同的前缀。前缀必须是 由字符或数字



a-Z,0-9


)开始 ,后跟


0



7


个字符(


a-Z,0-9



_,


)主文件


的后缀是


.shp

< br>,索引文件的后缀是


.shx



dBASE


表的后缀



.dbf


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


都是小写的。




例子






主文件:




索引文件


:




dBASE


表:



数字类型一个


shape


文件存储 整数和双精度数,


本文档的余数指以下类型:





整数:有符号

32


位整数(


4


字节)

< p>




双精度:


有符号


64



IEEE


双精度浮点数



8

字节)


浮点数


必须是数字的值。


负 无穷,


正无穷和非数字



NaN



值在


shape


文 件不被允许。然而


shape


文件支持‘没有数据‘的值这样< /p>


的概念,但是目前只用于衡量。某些小于-


1038



shape



件读取程序 用来代表‘没有数据‘的值。




下面 的第一节描述


shape


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



shape


文件支持的每种


shape


类型的记录内容。



主文件的


组织




主文件(


.shp

< br>)由固定长度的文件头和接着的变长度记录组


成。每个变长度记录是由固定长度的 记录头和接着的变长度


记录内容组成。图


1

图解了主文件的结构。






1


主文件的结构




文件头






记录头




记录内容




记录头




记录内容




记录头




记录内容




记录头




记录内容




……



……



记录头




记录内容




Shape


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






与数据相关的:










。主文件记录内容










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


Shape


类型,边界盒等)






与文件管理相关的:










。文件和记录长度










。记录偏移等



整数和双精度整数在文件头中组成数据描述域,在主文件的


记录内容是小

< p>
ndian



PC



Intel


)字节顺序。组成文件的其


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


endian



Sun



Motorola

< br>)字节顺序。




主文件头






主文件头


100

字节长。表


1


显示带有字节位置,值,类型


和字节顺序的文件头中的域。




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






1


主文件头的描述




位置









































类型













字节顺序




0


字节











4


字节











8


字节











12


字节










16


字节










20


字节










24


字节










28


字节










32


字节







文件代码









未被使用









未被使用









未被使用









未被使用









未被使用









文件长度











版本











Shape


类型









9994












0














0














0














0














0











文件长度









1000










Shape


类型








整数












整数












整数












整数












整数












整数












整数












整数












整数































































































36


字节










边界盒












Xmin










双精度


















44


字节










边界盒












Ymin










双精度


















52


字节










边界盒












Xmax










双精度


















60


字节










边界盒












Ymax










双精度


















68


字节


*









边界盒












Zmin










双精度


















76


字节


*









边界盒












Zmax










双精度


















84


字节


*









边界盒












Mmin










双精度

















92


字节


*









边界盒












Mmax










双精度

















*


未被使用,值为


0.0

< br>,若没有被衡量或是


Z


轴。




文件长度的值是在


16


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


头的


50



16


位字)


。在< /p>


shape


文件中的所有非空


shape


被需


要是同种


shape


类型。


Shape


类型的值如下:

< br>


















shape


类型




0



shape



1





















3


















多线




5


多边形




8


多点




11



Z



13

















多线


Z



15

















多边形


Z



18


多点


Z



21



M



23

















多线


M



25


多边形


M



28


多点


M



31

















多斑块




没有被定义的


Shape


类型值(< /p>


2



4



6


等直到


33


)为将 来可


能的使用而保留。目前


shape


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


同种


shape

< br>类型。在将来


shape


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



shape


类型。若混合


shape


类型被实现,文件头中的


shape


类型将标识该文件。



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


shape


的实际幅度。最小 边界


X



Y


直 交的(潜在的


M,Z


)长方形包含了所有的

shape




shape


文件是空的(没有记录)



min,Ymin ,Xmax,Ymax



值是未被定义的。

Mmin



Mmax


能包含


shape


文件用来衡


量不包含衡量的


shape


类型的‘没有数据‘的值(参见


2



的数字类型)


,记录头




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


有一个固定长度


8


字节。< /p>




2


显示文件 记录头中域的字节位


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


始的。







2


主文件记录头文件的描述




位置









































类型













字节顺序




0


字节








记录数目












记录数目










整数



















4


字节








内容长度












内容长度










整数



















记录数 目从


1


开始。




一个记录的内容长度是按


16


位字衡量的记录内容长度。每


个记录因此为文件的总长度贡献



4


+内容长度)


个< /p>


16


位字,


正如文件头是


24


字节一样。



主文件记录内容



< br>Shape


文件记录内容包含一个


shape

< p>
类型和接着的该


shape


几何数据。记录内容的长度依赖于在一个


shape


中部分 和


vertices


的数目。对每种


s hape


类型,我们首先描述该


shape

然后是它在磁盘上的存储镜像。


在表


3


16



位置是相对于

< p>
记录内容的开始。





shape


shape


类型为


0


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


shape


,每种要素


类 型(点,线,多边形等)都支持空,在同一个


shape


文件< /p>


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


shape

是放东西的地方;



shape


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







3 < /p>



shape


记录内容

< br>



位置



































类型















字节顺序




0


字节







shape


类型












0










整数










1













X,Y


位置的


Shape

< br>类型








一个点包括一对以


X,Y


顺序排列的双精度 的坐标










Point









{














Double





X



//X


坐标















Double





Y



//Y


坐标










}








4


点记录内容




位置



































类型















字节顺序




0


字节







shape


类型












1










整数










1












4


字节










X















X









双精度









1












12


字节









Y















Y









双精度









1












多点




一个多点代表一个点的集合:









MultiPoint








{











Double[4]












Box

















Integer















NumPoints











Point[NumPoints]






Points














}



边界盒以


Xmin,Ymin,Xm ax,Ymax


存储。







5



多点记录内容




位置


































数目







字节顺序




0


字节







shape


类型












8









1












4


字节









Box














Box







4












36


字节






NumPoints







NumPoints






//


边界盒





//


点的数目





//


在集 合中的


类型








整数










双精度









整数


















1













40


字节







Points













Points















NumPoints








PolyLine



一条

< p>
PolyLine


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


序的


vertices


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


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


相交。




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


shape


文件的读


程序必须掌握这样的情况。在另外,退化


(degenerate)

和可能


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




PolyLine



{









Double[4]














Box










//


边界盒










Integer

















NumParts





//


部分的数目










Integer

















NumPoints




//


点的总数目










Integer[NumParts]








Parts









//


在部 分中第


一个点的索引










Point[NumPoints]








Points








//


所有部分的




}



PolyLine


的域在以下为更详 细的描述:




Box










被存储的


PolyLine


的边界盒,以< /p>


Xmin,Ymin,Xmax,Ymax


的顺序存储。




NumParts






PolyLine


中部分的数目。




NumPoints




所有部分的点的总数目。




Parts









NumParts


长度的数列。


为每条


PolyLine


存储它


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


0


开始的。




Points








NumPoints


长度的数列。在


Pol yLine


中的每一


部分的点被尾到尾存储。部分


2


的点跟在部分


1


的点之后 ,


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




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







6



PolyLine


记录内容




位置




































类型








数目







字节顺序




0


字节







shape


类型












3










整数










1












4


字节









Box














Box








双精度









4












36


字节






NumParts








NumParts







整数










1













40


字节






NumPoints







NumPoints






整数










1













44


字节








Parts













Parts








整数








NumParts








X


字节







Points













Points
















NumPoints








注意:


X=44+4* NumParts


多边形




一个多边形包含一个或多


个环。一个环是四或多个点彼此相连组成的一个 闭合的彼此


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


vertices


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

在多


边形中的洞的环的


vertices

< br>是逆时针方向的。一个环组成的


多边形总是顺时针方向的。一个多边形的环是被做 为它的一


部分的。


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


shape


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


(degenerate)



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



PolyLine


结构,正如下文:




Polygon



{









Double[4]











Box









//


边界盒










Integer

















NumParts





//


部分的数目










Integer

















NumPoints




//


点的总数目










Integer[NumParts]








Parts









//


在部 分中第


一个点的索引










Point[NumPoints]








Points








//


所有部分的




}



多边形的域在以下为更详细的描述:




Box










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


Xmin,Ymin,Xmax,Ymax


的顺序存储。

< p>



NumParts





在多边形中环的数目。




NumPoints




所有环的点的总数目。




Parts









NumParts


长度的数列。


为每条环存储它在点数


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


0


开始的。




Points








NumPoints


长度的数列。在多边形中的每一个


环的点被尾到尾存储。环


2


的点跟在环


1


的点之后,如此下


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


间没有界限。






2


中的例子图演示了多边形的表现。


该图中的多边形有一


个洞,总共是


8



vert ices




关于多边形


shape


有以下重要


注意事项:

< br>



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

vetex


必须是一样的)在点


数列中环的顺序是不重要的 。




存储在


shape


文件中的多边形必须是


clean

< br>,一个


clean


的多


边形是指 这样的一个多边形:




1




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


环的一段相交。一个多边形




的环可能在


vetic es


处彼此相交,


但不是在沿段处。


重 合的段


被认为是相交的。




2




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


察者以


vert ex


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


一个独环的多 边形的


vertices


因此都是顺时针的。在这些多


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


样是顺时针时 ,发生



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


叠。






2


一个多边形的实例




在此例中,


NumParts


等于


2,NumPoints


等于

< p>
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


多边形记录内容




位置




































类型








数目







字节顺序




0


字节







shape


类型












5










整数










1












4


字节









Box














Box








双精度









4












36


字节






NumParts








NumParts







整数










1













40


字节






NumPoints







NumPoints






整数










1













44


字节








Parts













Parts








整数








NumParts








X


字节








Points












Points

















NumPoints








注意:


X=44+4* NumParts




X,Y


空 间中衡量的


shape


类型该种


sha pe


有一个额外的坐




M


,注意



没有数据



的值可以被指定为


M


的 一个值。




PointM




一个


Po intM


包括一对以


X,Y


顺序排列的 双精度的


坐标,再加上衡量


M










PointM








{











Double






X





//X


坐标












Double






Y





//Y


坐标












Double






M





//M


衡量









}






8 PointM


记录内容




位置



































类型















字节顺序




0


字节







shape


类型











21









整数










1












4


字节










X















X









双精度









1












12


字节









Y















Y









双精度









1












20


字节









M















M








双精度









1













PointM




一个多


P ointM


代表一个


PointM


的集 合:









MultiPoint








{











Double[4]












Box











//


边界盒












Integer















NumPoints





//


点的数目












Point[NumPoints]






Points









//


在集合中的












Double[2]












M Range







//


衡量


M



上下界












Double[NumPoints]




M Array








//


衡量










}




PointM

的域在以下为更详细的描述:




Box










被存储的多


PointM

< p>
的边界盒,以


Xmin,Ymin,Xmax,Ymax

< br>的顺序存储。




NumPoints




点的总数目。




Points








NumPoints


长的点的数列。




M Range







Mmin,Mmax


顺序存储的多


Poin tM


的最小,


最大值。




M Array






NumPoints


长的衡量的数组。







9




Po intM


记录内容




位置


































数目







字节顺序




0


字节







shape


类型












28








1













4


字节









Box














Box







4













36


字节






NumPoints







NumPoints





1













40


字节







Points













Points






NumPoints








X*


字节







Mmin













Mmin






1













X+8*


字节





Mmax












Mmax






1













X+16*


字节




Marry












Marry







NumPoints








类型









整数









双精度








整数



















双精度








双精度









双精度















注意:


X




40


+(


16* NumPoints





*


可选的





LineM




一条


shape

文件的多


LineM


包含一个或多个部

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


vertices


的集合。


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

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




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

< p>
的域在以下为更详细的描述:




Box










被存储的


PolyLineM


的边界盒,以


Xmin,Ymin,Xmax,Ymax


的顺序存储。



-


-


-


-


-


-


-


-



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

shp文件格式的相关文章

  • 爱心与尊严的高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊严高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊重的作文题库

    1.作文关爱与尊重议论文 如果说没有爱就没有教育的话,那么离开了尊重同样也谈不上教育。 因为每一位孩子都渴望得到他人的尊重,尤其是教师的尊重。可是在现实生活中,不时会有

    小学作文
  • 爱心责任100字作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任心的作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文