You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

98 lines
3.2 KiB
C

1 month ago
#pragma once
#include "GeoMapBase.h"
#include "GeoMapGdbWriter.h"
namespace NFormatReader
{
namespace NGeoMapReader
{
class CCoordinateConvertor;
/* @brief GeoMapͼ<70><CDBC>Reader */
class CGeoMapReader : public CGeoMapBase
{
public:
CGeoMapReader(void);
~CGeoMapReader(void);
public:
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡͼ<C8A1><CDBC><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD>
int Read(LPCTSTR fname);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡͼ<C8A1><CDBC><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD>ݿ<EFBFBD>ʼλ<CABC>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽڳ<D6BD><DAB3>ȣ<EFBFBD>
int ReadLayer (int start, int len);
int ReadElement (int start, int &elementLen, GMElementID eid); //<2F><>ȡԪ<C8A1><D4AA>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡͼԪ<CDBC><D4AA><EFBFBD><EFBFBD>
int ELE_Symbol (int start, int &DataLen); // <20><><EFBFBD><EFBFBD>
int ELE_Text (int start, int &DataLen); // <20>ı<EFBFBD>
int ELE_Legend (int start, int &DataLen); // ͼ<><CDBC><EFBFBD><EFBFBD>
int ELE_Scale (int start, int &DataLen); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
GMAxis ELE_Axis (int start, int &DataLen); // <20>̶<EFBFBD><CCB6><EFBFBD>
int ELE_Compass (int start, int &DataLen); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>v
int ELE_Well (int start, int &DataLen); // <20><>λ
int ELE_Reside (int start, int &DataLen); // <20><><EFBFBD><EFBFBD>
int ELE_Frame (int start, int &DataLen); // ͼ<><CDBC>
GMGrid ELE_Grid (int start, int &DataLen); // ֱ<><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int ELE_Rectangle(int start,int &DataLen); // <20><><EFBFBD><EFBFBD><>Ǿ<EFBFBD><C7BE><EFBFBD>/<2F>߶<EFBFBD>
int ELE_Pie (int start, int &DataLen); // <20><>/<2F><>Բ
int ELE_Polyline(int start, int &DataLen); // <20><><EFBFBD><EFBFBD>
int ELE_Fault (int start, int &DataLen); //<2F>ϲ<EFBFBD><CFB2><EFBFBD>
int ELE_Isoline (int start, int &DataLen); // <20><>ֵ<EFBFBD><D6B5>
int ELE_Polygon (int start, int &DataLen); // <20><>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
int ELE_SeisLine (int start, int &DataLen); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int ELE_SeisSection (int start, int &DataLen); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int ELE_SeisArea (int start, int &DataLen); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int ELE_Lithology (int start, int &DataLen); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
GMLog ELE_Log (int start, int &DataLen); // <20><EFBFBD><E2BEAE><EFBFBD><EFBFBD>
int ELE_WellText (int start, int &DataLen); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int ELE_WellLog (int start, int &DataLen); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int ELE_WellMarker (int start, int &DataLen); // <20><><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>de
int ELE_Compound (int start, int &DataLen); // <20><><EFBFBD><EFBFBD>ͼԪ
int ELE_Custom (int start, int &DataLen); // <20>Զ<EFBFBD><D4B6><EFBFBD>ͼԪ
int ELE_Graphy (int start, int &DataLen); // ͳ<><CDB3>ͼ
int ELE_Triagonal (int start, int &DataLen); // <20><><EFBFBD><EFBFBD>ͼ
int ELE_Bmp (int start, int &DataLen); // BMPλͼ
int ELE_Metafile (int start, int &DataLen); // WMF/EMFԪ<46>ļ<EFBFBD>
int ELE_OilWaterCol (int start, int &DataLen); // <20><>ˮ<EFBFBD><CBAE><EFBFBD><EFBFBD>
int ELE_DataCross (int start, int &DataLen); // <20><><EFBFBD><EFBFBD>ʮ<EFBFBD><CAAE>
int ELE_String (int start, int &DataLen); // <20><><EFBFBD><EFBFBD>
int ELE_String(GMText& text, int start, int &DataLen); // <20><><EFBFBD><EFBFBD>
CString GetElementTypeString(GMElementID nID);
protected:
CFile m_fr; // <20><>ǰ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
CString m_FileName; // <20><>ǰ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
FILE * m_FILE = nullptr;
int m_CurPos = 0; // <20><>ǰ<EFBFBD>ļ<EFBFBD>λ<EFBFBD><CEBB>
char m_Buffer[256]{}; // <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int m_iCurLayer = 0; // <20><><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>ǰͼ<C7B0><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
char m_Magic[12]{}; // <20>ļ<EFBFBD><C4BC><EFBFBD>־
BYTE m_Major{ 0 }; // <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><E6B1BE>
BYTE m_Minor{ 0 }; // <20>ļ<EFBFBD><C4BC>ΰ汾<CEB0><E6B1BE>
int m_WidthMM = 0;
int m_HeightMM = 0; // ͼֽ<CDBC><D6BD><EFBFBD>ȡ<EFBFBD><C8A1>߶<EFBFBD>(<28><>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>)
COLORREF m_BkColor; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
int m_nLayer = 0; // ͼ<><CDBC><EFBFBD><EFBFBD>
int m_nElement = 0; // <20><>ǰͼ<C7B0><CDBC><EFBFBD><EFBFBD>ͼԪ<CDBC><D4AA><EFBFBD><EFBFBD>
GMElementID m_GdbElement{}; // <20><>ǰͼԪ<CDBC><D4AA><EFBFBD><EFBFBD>
CRect m_Mbr; // <20><>ǰͼԪ<CDBC><D4AA>MBR
GMFileHead m_fileHead; // ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
GMLayerHead m_layerHead; // <20><>ǰͼ<C7B0><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
GMLayerIndex m_GdbLayerIndex[100]{};// ͼ<><CDBC>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><CDBC><EFBFBD><EFBFBD>С<EFBFBD><D0A1>100)
};
};
};