|
|
|
|
|
#pragma once
|
|
|
|
|
|
#include "FormatDC.h"
|
|
|
|
|
|
|
|
|
|
|
|
#include "..\GdbxDefine.h"
|
|
|
|
|
|
#include "GeoMapGdbxWriter.h"
|
|
|
|
|
|
|
|
|
|
|
|
namespace NFormatWriter
|
|
|
|
|
|
{
|
|
|
|
|
|
class CGdbxDC : public CFormatDC
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
CGdbxDC(void);
|
|
|
|
|
|
~CGdbxDC(void);
|
|
|
|
|
|
virtual void Initial(void);
|
|
|
|
|
|
virtual int OutFront(void);
|
|
|
|
|
|
virtual int OutEnd(void);
|
|
|
|
|
|
virtual void PolyLine(CPointList& dp);
|
|
|
|
|
|
void Draw(CText& text, CCurveEx& curve) override;
|
|
|
|
|
|
|
|
|
|
|
|
void SetPixel(double x, double y, COLORREF col);
|
|
|
|
|
|
void Ellipse(double x1, double y1, double x2, double y2);
|
|
|
|
|
|
void PaintRgn(CCurveEx& curve);
|
|
|
|
|
|
void PaintRgn(LPPOINT sp, int count);
|
|
|
|
|
|
void Draw(CSection& section, CRect8* rect = NULL);
|
|
|
|
|
|
void Draw(CImageInsert& image);
|
|
|
|
|
|
void FillSolidRect(CRect8& rect, COLORREF color);
|
|
|
|
|
|
void Draw(CInsertDraw& m_insert);
|
|
|
|
|
|
void Draw(CInsertOld& m_insert);
|
|
|
|
|
|
|
|
|
|
|
|
BOOL OpenWrite(CString lpszPathName, bool bBinary = true); //<2F><><EFBFBD><EFBFBD>д<EFBFBD>ļ<EFBFBD>
|
|
|
|
|
|
BOOL OpenWrite(CFile *pFile, CXy *xy); //<2F><><EFBFBD><EFBFBD>д<EFBFBD>ļ<EFBFBD>
|
|
|
|
|
|
void SetPictureRect(CRect8 rect);
|
|
|
|
|
|
CRect8 GetPictureRect(void);
|
|
|
|
|
|
void SetScaleFactor(double scaleFactor);
|
|
|
|
|
|
double GetScaleFactor(void);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void SetUnit(CSize unit);
|
|
|
|
|
|
CSize GetUnit(void);
|
|
|
|
|
|
virtual void SetMapSize(CSize sz) {}
|
|
|
|
|
|
int BuildFileHead(void);
|
|
|
|
|
|
int BuildSymLib(void);
|
|
|
|
|
|
int BuildLayerHead(void);
|
|
|
|
|
|
int BuildPline(int size, xPoint *ip);
|
|
|
|
|
|
int BuildImage(long w,long h,CRect8 rect);
|
|
|
|
|
|
int BuildPolygon(int size, xPoint *ip);
|
|
|
|
|
|
int BuildSeismacSection(CSection& section);
|
|
|
|
|
|
int BuildElement();
|
|
|
|
|
|
int Amplify10(double num);
|
|
|
|
|
|
void DeleteObj(void);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
/**
|
|
|
|
|
|
* libarchive ѹ<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
|
|
|
|
|
*
|
|
|
|
|
|
* \param gdbxPath gdbxȫ·<EFBFBD><EFBFBD>
|
|
|
|
|
|
* \param outPath <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѹ<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>ȫ·<EFBFBD><EFBFBD>
|
|
|
|
|
|
* \return
|
|
|
|
|
|
*/
|
|
|
|
|
|
int CompressGdbxDirectory(const CString& gdbxPath, const CString& outPath);
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* gb2312תutf-8
|
|
|
|
|
|
*
|
|
|
|
|
|
* \param gdbxPath gdbxȫ·<EFBFBD><EFBFBD>
|
|
|
|
|
|
* \param outPath <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѹ<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>ȫ·<EFBFBD><EFBFBD>
|
|
|
|
|
|
* \return
|
|
|
|
|
|
*/
|
|
|
|
|
|
CString GB2312ToUTF8(const CString& gb2312Str);
|
|
|
|
|
|
|
|
|
|
|
|
CString getLayersName(); //<2F><>ȡ<EFBFBD><C8A1>ǰ<EFBFBD><C7B0><EFBFBD>в㼶<D0B2><E3BCB6><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
CGeoMapGdbxWriter* p_gdbx;
|
|
|
|
|
|
public:
|
|
|
|
|
|
CRect8 m_rect;
|
|
|
|
|
|
CSize m_unit;
|
|
|
|
|
|
double m_scaleFactor;
|
|
|
|
|
|
int m_headSize;
|
|
|
|
|
|
int m_symbolSize;
|
|
|
|
|
|
int m_polylineSize;
|
|
|
|
|
|
int m_textSize;
|
|
|
|
|
|
int m_polygonSize;
|
|
|
|
|
|
int m_multTextySize;
|
|
|
|
|
|
xPoint m_xyData;
|
|
|
|
|
|
list<xPoint> m_xyList;
|
|
|
|
|
|
|
|
|
|
|
|
int m_DataLength;
|
|
|
|
|
|
BYTE *m_imageData;
|
|
|
|
|
|
int m_imageSize;
|
|
|
|
|
|
int m_seismacSize;
|
|
|
|
|
|
|
|
|
|
|
|
int m_xScale;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD>̶<EFBFBD>
|
|
|
|
|
|
int m_yScale;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD>̶<EFBFBD>
|
|
|
|
|
|
int m_scale;//<2F>̶ȱ<CCB6><C8B1><EFBFBD> Ҫ<><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
int m_x1,m_y1,m_x2,m_y2;//ͼ<>μ<EFBFBD><CEBC><EFBFBD><EFBFBD>߽<EFBFBD> <20><>ͨͼ<CDA8><CDBC><EFBFBD><EFBFBD><EFBFBD>ò<EFBFBD>ֵͬ
|
|
|
|
|
|
double m_w,m_h;//x2-x1 y2-y1ʵ<31>ʿ<EFBFBD><CABF>߱<EFBFBD><DFB1>ڼ<EFBFBD><DABC><EFBFBD>
|
|
|
|
|
|
int m_left,m_top,m_rignt,m_bottom;//ͼ<><CDBC><EFBFBD>߾<EFBFBD>mm
|
|
|
|
|
|
int m_paperW,m_paperH;//ͼֽ<CDBC><D6BD><EFBFBD><EFBFBD>mm
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
pugi::xml_document m_doc;
|
|
|
|
|
|
pugi::xml_node m_mapNode;
|
|
|
|
|
|
|
|
|
|
|
|
pugi::xml_node m_layersNode;
|
|
|
|
|
|
pugi::xml_node m_layerNode;
|
|
|
|
|
|
pugi::xml_node m_shapesNode;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CXy* p_xy;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
}//namespace
|
|
|
|
|
|
|