获取shapefile文件小包围矩形的c++程序
作者:网络转载 发布时间:[ 2014/2/28 9:35:56 ] 推荐标签:c++ shapefile
// shapefile 头文件类,实现了描述shapefile头部所有字段的函数
class HeaderShapefile
{
public:
// 该类的函数将计算出shapefile众包围框的坐标
// 如x和y、小和大值同样z和m的大小值也可以获取
static double dimensionXmin(char *fileBuf, int startIndex)
{
return ByteConverter::littleEndianDoubleRead(fileBuf,startIndex);
}
static double dimensionYmin(char*fileBuf, int startIndex)
{
return ByteConverter::littleEndianDoubleRead(fileBuf, startIndex);
}
static double dimensionXmax(char*fileBuf, int startIndex)
{
return ByteConverter::littleEndianDoubleRead(fileBuf, startIndex);
}
static double dimensionYmax(char*fileBuf, int startIndex)
{
return ByteConverter::littleEndianDoubleRead(fileBuf, startIndex);
}
};
class SizeOfFile
{
public:
// 确定文件的大小
static long sizeOfFile(FILE *file)
{
long a,b;
a = ftell(file);
fseek(file, 0, 2);
b = ftell(file);
fseek(file, 1, 0);
return b;
}
};
int main()
{
int32_t filecodes, fileLength,shapeTypes,versions;
double xmin,ymin,xmax,ymax,mmin,mmax,zmin,zmax;
string shape;
char *filePath = "文件所在目录";
char *fileBuf;
FILE *file = NULL;
//rb模式打开,这样还可以测试一下文件是否存在或被读取
if ((file=fopen(filePath,"rb"))==NULL)
{
cout <<"无法打开指定文件"<<endl;
}
else
cout <<"成功打开指定文件"<<endl;
// 获取文件大小
long fileSize = SizeOfFile::sizeOfFile(file);
// 为整个文件分配内存
fileBuf = new char[fileSize];
//将文件读取到缓存中
fread(fileBuf, fileSize, 1, file);
//查看二进制文件的信息
cout<< "文件大小:"<< fileSize;
xmin = HeaderShapefile::dimensionXmin(fileBuf,36);
ymin = HeaderShapefile::dimensionYmin(fileBuf,44);
xmax = HeaderShapefile::dimensionXmax(fileBuf,52);
ymax = HeaderShapefile::dimensionYmax(fileBuf,60);
cout<<"
/*************
shapefile的新包围盒***********/
";
cout<<"X小值="<<xmin<<endl;
cout<<"Y小值="<<ymin<<endl;
cout<<"X大值="<<xmax<<endl;
cout<<"Y大值="<<ymax<<endl;
cin.get();
delete []fileBuf;
fclose(file);// 不要忘记
return 0;
//char keep_window_open = getchar();
}
程序的输出结果如下:
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11