shape文件头结构如下:
Position Field Value Type Byte Order
Byte 0 File Code 9994 Integer Big
Byte 4 Unused 0 Integer Big
Byte 8 Unused 0 Integer Big
Byte 12 Unused 0 Integer Big
Byte 16 Unused 0 Integer Big
Byte 20 Unused 0 Integer Big
Byte 24 File Length File Length Integer Big
Byte 28 Version 1000 Integer Little
Byte 32 Shape Type Shape Type Integer Little
Byte 36 Bounding Box Xmin Double Little
Byte 44 Bounding Box Ymin Double Little
Byte 52 Bounding B ox Xmax Double Little
Byte 60 Bounding Box Ymax Double Little
Byte 68* Bounding Box Zmin Double Little
Byte 76* Bounding Box Zmax Double Little
Byte 84* Bounding Box Mmin Double Little
Byte 92* Bounding Box Mmax Double Little本人的代码如下:
void CShapeReaderDoc::OnFileOpen()
{
CString strOpenFileName;
static char szFilter[] = {"Shape文件(*.shp)|*.shp|索引文件(*.shx)|*.shx|dBASE文件(*.dbf)|*.dbf"};
CFileDialog dlgLoadFile(1,"载入Shape文件",NULL,NULL,szFilter);
if(dlgLoadFile.DoModal()==IDOK)
{
CStdioFile file;
CFileException ex;
if (!file.Open(dlgLoadFile.GetPathName(), CFile::modeRead|CFile::shareDenyNone,&ex))
{
TCHAR szError[1024];
ex.GetErrorMessage(szError, 1024);
AfxMessageBox(szError);
return;
}
else
{
//想在此用afxmessagebox显示出读出来的信息,本人太愚钝,请大侠尽量详细!
}
}
}
Position Field Value Type Byte Order
Byte 0 File Code 9994 Integer Big
Byte 4 Unused 0 Integer Big
Byte 8 Unused 0 Integer Big
Byte 12 Unused 0 Integer Big
Byte 16 Unused 0 Integer Big
Byte 20 Unused 0 Integer Big
Byte 24 File Length File Length Integer Big
Byte 28 Version 1000 Integer Little
Byte 32 Shape Type Shape Type Integer Little
Byte 36 Bounding Box Xmin Double Little
Byte 44 Bounding Box Ymin Double Little
Byte 52 Bounding B ox Xmax Double Little
Byte 60 Bounding Box Ymax Double Little
Byte 68* Bounding Box Zmin Double Little
Byte 76* Bounding Box Zmax Double Little
Byte 84* Bounding Box Mmin Double Little
Byte 92* Bounding Box Mmax Double Little本人的代码如下:
void CShapeReaderDoc::OnFileOpen()
{
CString strOpenFileName;
static char szFilter[] = {"Shape文件(*.shp)|*.shp|索引文件(*.shx)|*.shx|dBASE文件(*.dbf)|*.dbf"};
CFileDialog dlgLoadFile(1,"载入Shape文件",NULL,NULL,szFilter);
if(dlgLoadFile.DoModal()==IDOK)
{
CStdioFile file;
CFileException ex;
if (!file.Open(dlgLoadFile.GetPathName(), CFile::modeRead|CFile::shareDenyNone,&ex))
{
TCHAR szError[1024];
ex.GetErrorMessage(szError, 1024);
AfxMessageBox(szError);
return;
}
else
{
//想在此用afxmessagebox显示出读出来的信息,本人太愚钝,请大侠尽量详细!
}
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货