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.

129 lines
4.1 KiB
C

1 month ago
#pragma once
#include "EmbellishBaseLib.h"
#include "GeoMap.h"
#include "ProjectionLib/Projection.h"
#include "EmbellishBaseLib.h"
#include "CoordinateConvertor.h"
namespace NFormatReader
{
namespace NGeoMapReader
{
class CGeoMapBase :
public CEmbellishBaseLib
{
public:
CGeoMapBase(void);
virtual ~CGeoMapBase(void);
bool m_bScreenXY; //<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>GDB<44>н<EFBFBD><D0BD>У<EFBFBD>GXF<58><46><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CScreenXY sxy; //ͼֽ<CDBC><D6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>
CProjection xyz; //Ϊ<><CEAA>ͶӰת<D3B0><D7AA>
int InitProjection(GMProjection& pro);
CString m_strProjection; //ͶӰ<CDB6><D3B0><EFBFBD><EFBFBD>
void AddZone(double& x); //<2F><><EFBFBD>Ӵ<EFBFBD><D3B4><EFBFBD>
int m_zone; //<2F><><EFBFBD><EFBFBD>
void SetMapInfo(GMFileHead* pv);
void SetMapInfo(GMLayerHead* pv);
int SetMapUnit(int gm_unit);
void SetScale(double xScale, double yScale);
CString m_strRootLayer; //<2F><>Ŀ¼
CString m_strSubLayer;
void FormatSetLayer(LPCTSTR lpszLayerName=NULL);
void FormatSetLayer(COLORREF color);
CRect8 GetUserRect(GMMapInfo& mapInfo);
CRect8 GetRealRect8(IRect rt); //<2F><><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CRect8 GetRealRect8(DRect rt); //<2F><><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
COLORREF GetColor(GColor& cl); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
double GetWidth(double w); //<2F><><EFBFBD>ÿ<EFBFBD><C3BF>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD><EFBFBD>ס<EFBFBD>
double GetWidth(int w); //<2F><><EFBFBD>ÿ<EFBFBD><C3BF>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λΪ<CEBB><CEAA>
UINT GetCurveSmoothState(int nIndex); //<2F><><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD>״̬<D7B4><CCAC><EFBFBD><EFBFBD>˫<EFBFBD><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CString ToDF_Text(CString cmd, int& bScript); //ת<><D7AA>Ϊ˫<CEAA><CBAB><EFBFBD><EFBFBD>
virtual void ChangeCoordinate(double& x, double& y);
virtual void ScaleCoordinate(double& x, double& y);
void LayerToMapCoord(int &x, int &y); //<2F><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊͼ<CEAA><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
double GetPaperWidth(double width);
double GetUserHeight(double height);
double GetUserWidth(double width);
CCoordinateConvertor *m_pMapConvertor; // <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CCoordinateConvertor *m_pLayerConvertor; // <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
protected:
CSize8 m_szScale; //ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
double m_dScale; //<2F><><EFBFBD>ּ<EFBFBD><D6BC><EFBFBD><EFBFBD>߿<EFBFBD><DFBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD><C5B1><EFBFBD>
public:
//<2F><>GeoMap<61><70>Ӧ<EFBFBD>ķ<EFBFBD><C4B7>ſ<C5BF><E2A1A2><EFBFBD>ο⣬Ϊ<E2A3AC>˶<EFBFBD>ȡ<EFBFBD>ļ<EFBFBD>ʱ<EFBFBD>Ӹÿ<D3B8><C3BF>а<EFBFBD><D0B0>ղ<EFBFBD><D5B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Σ<EFBFBD>Layer:\CurveType\<5C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void InitLib(void);
CString GetSymbolName(int nSymbolID);
void* FindToAddSymbol(int nSymbolID, COLORREF symbolColor);
public:
//for gdb format
POSITION AddPolyline(GMPolyline* pPolyline, IPoint* pt);
POSITION AddIsoLine(GMIsoline* pIsoLine, IPoint* pt);
POSITION AddFault(GMFault* pFault, IPoint* pt);
POSITION AddPolygon(GMPolygon* pPolygon, IPoint* pt);
POSITION AddRectangle(GMRectangle* pv);
POSITION AddText(GMText* pv);
POSITION AddPie(GMPie* pv);
POSITION AddWell(GMWell* pv);
POSITION AddOilWaterCol(GMOilWaterCol * waterCol);
POSITION AddDataCross(GMDataCross* pv);
POSITION AddSeisLine(GMSeisLine* pv);
POSITION AddSeisArea(GMSeisArea* pv, IPoint* pt);
POSITION AddSeisSection(GMSeisSection* pv, float *pData);
POSITION AddFrame(GMMapFrame* pv);
POSITION AddGrid(GMGrid* pv);
POSITION AddMetaFile(GMMetafile* pv, BYTE* pFileBuffer);
POSITION AddBmp(GMBmp* pv, BYTE* pFileBuffer);
POSITION AddScale(GMScale* pv);
POSITION AddSymbol(GMSymbol* pv);
POSITION AddWellText(GMWellText* pv);//, GMText* pt);
POSITION AddReside(GMReside* pv);
POSITION AddAxis(GMAxis* pv);
POSITION AddLegendFrame(GMLegend* pv);
POSITION AddCompass(GMCompass* pv);
POSITION AddCustom(GMCustom* pv);
POSITION AddRichText(GMRichText* pv, CString text);
POSITION AddWellMarker(GMWellMarker *pv);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
POSITION AddLog(GMLog *log); //<2F><EFBFBD><E2BEAE><EFBFBD><EFBFBD>
POSITION AddWellLog(GMWellLog * wellLog); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
POSITION AddGraphy(GMGraphy * graphy); //ͳ<><CDB3>ͼ
POSITION AddTriagonal(GMTriangle * triangle); //<2F><><EFBFBD><EFBFBD>ͼ
// for gxf format
POSITION AddText(GxfText* pv);
POSITION AddPolyline(GMPolyline* pPolyline, DPoint* pt);
POSITION AddIsoLine(GxfIsoline* pIsoLine, DPoint* pt);
POSITION AddFault(GMFault* pFault, DPoint* pt);
POSITION AddPolygon(GxfPolygon* pPolygon, DPoint* pt);
POSITION AddRectangle(GxfRect* pv);
POSITION AddWell(GxfWell* pv);
POSITION AddFrame(GxfFrame* pv);
POSITION AddSeisLine(GxfSeisLine* pv, DPoint3* dp);
POSITION AddLegendFrame(GxfLegend* pv);
POSITION AddReside(GxfReside* pv);
POSITION AddSymbol(GxfSymbol* pv);
POSITION AddScale(GxfScale* pv);
POSITION AddPie(GxfPie* pv);
POSITION AddBmp(GxfBmp* pv, BYTE* pBmpBuffer);
POSITION AddMetaFile(GxfMeta* pv, BYTE* pFileBuffer);
};
};
};