- 0
- 0
- 约 9页
- 2018-05-05 发布于湖北
- 举报
本资源来源于互联网,版权为原作者所有。若侵犯到您的版权,请提出指正,我们将立即删除。系大修SHP文件的读取
问题是什么
由SHP文件得得到相应的图
问题进一步简化将shp的二进制文件读入一个已定义的 结构体
解决问题的方法
读取文件 的 C 函数 :
1.fopen(FILE * stream,”rb”);
2.fread(void * buffer,size_t size,size_t count, FILE*strem);
将文件读取到内存中的buffer所指向的位置。
3.关闭文件流 stream;
此外的C函数还有:
long ftell(FILE *stream);得到当前位置
int fseek(FILE *stream, long offset, int fromwhere);
Fromwhere: 0:文件头;1:当前位置;2:文件尾;
读取文件还需要三种逻辑结构
ShpReader.c读取文件的流程图(插图)
关闭文件流
特定模块的代码详解:点文件
fseek(file,-28L,2);// 从文件尾后退一个 点文件长度,读取最后一个 点文件的记录序号,得到点的数目o
RecordNum
ShapeType
X
Y
Content
Length
点文件记录:
records.Point=((SHP_POINT *)malloc(sizeof(SHP_POINT)*numPoints));// 从文件尾后退一个 点文件长度,读取最后一个 点文件的记录序号,得到点的数目
原创力文档

文档评论(0)