shp文件详细格式.doc

shp文件详细格式.doc

ID:49240670

大小:243.50 KB

页数:30页

时间:2020-02-28

shp文件详细格式.doc_第1页
shp文件详细格式.doc_第2页
shp文件详细格式.doc_第3页
shp文件详细格式.doc_第4页
shp文件详细格式.doc_第5页
资源描述:

《shp文件详细格式.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、2.2.2         Shapefiles数据说明Shapefiles是ESRI提供的一种矢量数据格式,它没有拓扑信息,一个Shapefiles由一组文件组成,其中必要的基本文件包括坐标文件(.shp)、索引文件(.shx)和属性文件(.dbf)三个文件。1.        坐标文件的结构说明坐标文件(.shp)用于记录空间坐标信息。它由头文件和实体信息两部分构成(如图2.1所示)。1)     坐标文件的文件头坐标文件的文件头是一个长度固定(100bytes)的记录段,一共有9个int型和7个d

2、ouble型数据,主要记录内容见表2.2。文件头记录头记录内容记录头记录内容记录头记录内容记录头记录内容…………记录头记录内容图2.1坐标文件的结构起始位置名称数值类型位序0FileCode9994Integerbig4Unused0Integerbig8Unused0Integerbig12Unused0Integerbig16Unused0Integerbig20Unused0Integerbig24文件长度文件的实际长度Integerbig28版本号1000IntegerLittle32几何类型表

3、示这个Shapefile文件所记录的空间数据的几何类型IntegerLittle36Xmin空间数据所占空间范围的X方向最小值DoubleLittle44Ymin空间数据所占空间范围的Y方向最小值DoubleLittle52Xmax空间数据所占空间范围的X方向最大值DoubleLittle60Ymax空间数据所占空间范围的Y方向最大值DoubleLittle68*Zmin空间数据所占空间范围的Z方向最小值DoubleLittle76*Zmax空间数据所占空间范围的Z方向最大值DoubleLittle84

4、*Mmin最小Measure值DoubleLittle92*Mmax最大Measure值DoubleLittle表2.2shapefiles头文件表注:最后4个加星号特别标示的四个数据只有当这个Shapefile文件包含Z方向坐标或者具有Measure值时才有值,否则为0.0。所谓Measure值,是用于存储需要的附加数据,可以用来记录各种数据,例如权值、道路长度等信息。(1)   位序细心的读者会注意到表2.2中的数值的位序有Little和big的区别,对于位序是big的数据我们在读取时要小心。通常,

5、数据的位序都是Little,但在有些情况下可能会是big,二者的区别在于它们位序的顺序相反。一个位序为big的数据,如果我们想得到它的真实数值,需要将它的位序转换成Little即可。转换原理非常简单,就是交换字节顺序,下面是作者实现的在两者间进行转换的程序,代码如下://位序转换程序unsignedlongOnChangeByteOrder(intindata){      charss[8];      charee[8];      unsignedlongval=unsignedlong(inda

6、ta);      _ultoa(val,ss,16);//将十六进制的数(val)转到一个字符串(ss)中      inti;      intlength=strlen(ss);      if(length!=8)      {             for(i=0;i<8-length;i++)                    ee[i]='0';             for(i=0;i

7、s[i];             for(i=0;i<8;i++)                    ss[i]=ee[i];      }      ////******进行倒序      intt;      t     =ss[0];      ss[0]      =ss[6];      ss[6]      =t;      t     =ss[1];      ss[1]      =ss[7];      ss[7]      =t;      t     =ss[2];     

8、 ss[2]      =ss[4];      ss[4]      =t;      t     =ss[3];      ss[3]      =ss[5];      ss[5]      =t;   ////******      //******将存有十六进制数(val)的字符串(ss)中的十六进制数转成十进制数      intvalue=0;      for(i=0;i<8;i++)      {             

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。