|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
//<2F>ļ<EFBFBD>: <20><>ʽת<CABD><D7AA><EFBFBD><EFBFBD>
|
|
|
|
|
|
//<2F><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>:
|
|
|
|
|
|
// ת<><D7AA>MapGis<69><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƹ<EFBFBD>ʽ
|
|
|
|
|
|
//
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д: 2008-7-09
|
|
|
|
|
|
//
|
|
|
|
|
|
//
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
#include "otherformat.h"
|
|
|
|
|
|
#include "afxtempl.h"
|
|
|
|
|
|
#include ".\symbolbaselib.h"
|
|
|
|
|
|
#include "DrawOperator\curveex.h"
|
|
|
|
|
|
|
|
|
|
|
|
namespace NFormatReader
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
namespace NMapGisReader
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><>ɫ<EFBFBD><C9AB>
|
|
|
|
|
|
class CMGColorLib
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
CMGColorLib();
|
|
|
|
|
|
|
|
|
|
|
|
BOOL Read(LPCTSTR lpszColorFile);
|
|
|
|
|
|
BOOL Write(LPCTSTR lpszColorFile, LPCTSTR lpDefaultColorFile);
|
|
|
|
|
|
BOOL WriteColorDFD(LPCTSTR lpszFileName);
|
|
|
|
|
|
|
|
|
|
|
|
BOOL CreateColorFillCurve(void* pxy);
|
|
|
|
|
|
|
|
|
|
|
|
void SortColorWithID(void);
|
|
|
|
|
|
|
|
|
|
|
|
void GetColorMap(CMap<DWORD, DWORD, int, int>& arrColorMap);
|
|
|
|
|
|
void SetColorMap(CMap<DWORD, DWORD, int, int>& arrColorMap, bool bResetID);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫֵ<C9AB><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɸ<EFBFBD><C9B8><EFBFBD><EFBFBD><EFBFBD>ɫֵ<C9AB><D6B5><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>ٲ<EFBFBD><D9B2><EFBFBD>
|
|
|
|
|
|
void SortColorWithColor(void);
|
|
|
|
|
|
int FindColorID(COLORREF col); //<2F><><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>ٲ<EFBFBD><D9B2>ң<EFBFBD><D2A3><EFBFBD>Ҫ<EFBFBD>ȸ<EFBFBD><C8B8><EFBFBD><EFBFBD><EFBFBD>ɫֵ<C9AB><D6B5><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
int Add(int nID, COLORREF col);
|
|
|
|
|
|
COLORREF GetColor(int nIndex);
|
|
|
|
|
|
|
|
|
|
|
|
// MapGis<69><73>ɫΪCMYK<59>ṹ<EFBFBD><E1B9B9><EFBFBD><EFBFBD>K<EFBFBD><4B>C<EFBFBD><43>M<EFBFBD><4D>Y ˳<><CBB3><EFBFBD>洢<EFBFBD><E6B4A2>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ֽڣ<D6BD><DAA3><EFBFBD><EFBFBD>ĸ<EFBFBD><C4B8>ֽ<EFBFBD>
|
|
|
|
|
|
struct stuColorCMYK
|
|
|
|
|
|
{
|
|
|
|
|
|
BYTE k,c,m,y;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class CMGColorItem
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
CMGColorItem(void);
|
|
|
|
|
|
|
|
|
|
|
|
long m_nColorID; //<2F><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><31>ʼ
|
|
|
|
|
|
stuColorCMYK color; //<2F><>ɫֵ
|
|
|
|
|
|
|
|
|
|
|
|
int ReadColor(CFile& fr);
|
|
|
|
|
|
int WriteColor(CFile& fw);
|
|
|
|
|
|
|
|
|
|
|
|
CString GetMessage(int nIndex);
|
|
|
|
|
|
COLORREF GetColor();
|
|
|
|
|
|
void SetColor(COLORREF col);
|
|
|
|
|
|
};
|
|
|
|
|
|
CArray<CMGColorItem, CMGColorItem> arrColor;
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
static int _compare_MapGis_ArrayID(const void *d1,const void *d2);
|
|
|
|
|
|
static int _compare_MapGis_ArrayColor(const void *d1,const void *d2);
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>ſ⣨<C5BF><E2A3A8>ͼ<EFBFBD>⣩
|
|
|
|
|
|
class CMGSymbolLib : public CSymbolBaseLib
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
CMGSymbolLib();
|
|
|
|
|
|
virtual ~CMGSymbolLib();
|
|
|
|
|
|
|
|
|
|
|
|
virtual BOOL Read(LPCTSTR lpszFileName);
|
|
|
|
|
|
|
|
|
|
|
|
struct stuElementHead // ͼԪ<CDBC><D4AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF>ռ10<31><30><EFBFBD>ֽ<EFBFBD>
|
|
|
|
|
|
{
|
|
|
|
|
|
short type; // ͼԪ<CDBC><D4AA><EFBFBD><EFBFBD>(=0)
|
|
|
|
|
|
short FillColor; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
|
|
|
|
|
|
short LineColor; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ(δ<><CEB4>)
|
|
|
|
|
|
short LineWidth; // <20><><EFBFBD><EFBFBD><EFBFBD>߿<EFBFBD><DFBF><EFBFBD>(δ<><CEB4>) (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD>0=0.05<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,2=0.08,3=0.1,<2C><>,9=0.4,10=0.5)
|
|
|
|
|
|
short SubElementCount; // <20><><EFBFBD>ɱ߽<C9B1><DFBD>Ļ<EFBFBD><C4BB>θ<EFBFBD><CEB8><EFBFBD>
|
|
|
|
|
|
};
|
|
|
|
|
|
struct stuOneElement
|
|
|
|
|
|
{
|
|
|
|
|
|
stuElementHead head;
|
|
|
|
|
|
|
|
|
|
|
|
short *eleArcCoorNum; //ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD>ε<EFBFBD><CEB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
|
|
|
|
|
int eleArcCoorNumTotal; //<2F><><EFBFBD>л<EFBFBD><D0BB>ε<EFBFBD><CEB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
CMGColorLib* m_pColorLib; //<2F><>ɫ<EFBFBD>⣬<EFBFBD><E2A3AC><EFBFBD>ⲿָ<E2B2BF><D6B8>
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
void* ReadOneSymbol(CFile& fr); //<2F><>ȡһ<C8A1><D2BB><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD>CXy*ָ<><D6B8>
|
|
|
|
|
|
COLORREF GetColor(int nIndex);
|
|
|
|
|
|
void AddArcLine(void* pxy, stuOneElement* pOneElement, float* pCoorAll);
|
|
|
|
|
|
double GetLineWidth(int nIndex);
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>ͷ<EFBFBD><CDB7>ſ<EFBFBD>
|
|
|
|
|
|
class CMGLineTypeLib : public CMGSymbolLib
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
CMGLineTypeLib(void);
|
|
|
|
|
|
virtual ~CMGLineTypeLib(void);
|
|
|
|
|
|
|
|
|
|
|
|
struct stuDataInfo
|
|
|
|
|
|
{
|
|
|
|
|
|
int dataOffset; //<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD>ʼλ<CABC><CEBB>
|
|
|
|
|
|
short eleNum; //<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵ĸ<CDB5><C4B8><EFBFBD>
|
|
|
|
|
|
};
|
|
|
|
|
|
virtual BOOL Read(LPCTSTR lpszFileName);
|
|
|
|
|
|
void* ReadOneLineType(CFile& fr, stuDataInfo* pInfo);
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
//ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
class CMGFillGrphLib : public CMGSymbolLib
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
CMGFillGrphLib(void);
|
|
|
|
|
|
virtual ~CMGFillGrphLib(void);
|
|
|
|
|
|
|
|
|
|
|
|
virtual BOOL Read(LPCTSTR lpszFileName);
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>MPJ<50><4A>ʹ<EFBFBD>õ<EFBFBD><C3B5>Ľṹ<C4BD><E1B9B9><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
/***********************************************
|
|
|
|
|
|
// ע<>⣺<EFBFBD><E2A3BA><EFBFBD>ýṹ<C3BD><E1B9B9>Ա<EFBFBD><D4B1><EFBFBD>뷽ʽΪ<CABD><CEAA><EFBFBD>ֽ<EFBFBD>(/Zp1)<29><><EFBFBD><EFBFBD><EFBFBD>ú<EFBFBD>#pragma pack(1)
|
|
|
|
|
|
//***********************************************/
|
|
|
|
|
|
#pragma pack(1)
|
|
|
|
|
|
|
|
|
|
|
|
//˫<><CBAB><EFBFBD>Ⱦ<EFBFBD><C8BE><EFBFBD>
|
|
|
|
|
|
struct MapGisRect8
|
|
|
|
|
|
{
|
|
|
|
|
|
double x1;
|
|
|
|
|
|
double y1;
|
|
|
|
|
|
double x2;
|
|
|
|
|
|
double y2;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
// MapGis<69><73><EFBFBD><EFBFBD>
|
|
|
|
|
|
struct MapGisEnv
|
|
|
|
|
|
{
|
|
|
|
|
|
char clib[128]; //<2F><><EFBFBD>ֿ<EFBFBD>Ŀ¼
|
|
|
|
|
|
char sys[128]; //ϵͳĿ¼
|
|
|
|
|
|
char cur[128]; //<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>Ŀ¼
|
|
|
|
|
|
char temp[128]; //<2F><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>Ŀ¼<C4BF><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ã<EFBFBD>
|
|
|
|
|
|
char slib[128]; //ϵͳ<CFB5><CDB3>Ŀ¼
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
////1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD>(MAP_PARA<52>ṹ<EFBFBD><E1B9B9>type<70>ֶ<EFBFBD>ֵ)
|
|
|
|
|
|
enum EMapGis_CoorType
|
|
|
|
|
|
{
|
|
|
|
|
|
COOR_CUSTOM = 0, /*<2A>û<EFBFBD><C3BB>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ*/
|
|
|
|
|
|
COOR_JWD = 1, /*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ*/
|
|
|
|
|
|
COOR_BL = 2, /*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ*/
|
|
|
|
|
|
COOR_PRJ = 3, /*ͶӰƽ<D3B0><C6BD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ*/
|
|
|
|
|
|
COOR_XYZ = 4 /*<2A><><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ*/
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
////2<><32><EFBFBD><EFBFBD><EFBFBD>굥λ(MapGisMap<61>ṹ<EFBFBD><E1B9B9>unit<69>ֶ<EFBFBD>ֵ)
|
|
|
|
|
|
////2.1 <20><><EFBFBD>ȵ<EFBFBD>λ
|
|
|
|
|
|
enum EMapGis_UnitType
|
|
|
|
|
|
{
|
|
|
|
|
|
MG_UNIT_MM =0x00, //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
|
MG_UNIT_MilliMeter =0x01, //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
|
MG_UNIT_Meter =0x02, //<2F><>
|
|
|
|
|
|
MG_UNIT_Second =0x03, //<2F><>
|
|
|
|
|
|
MG_UNIT_Degree =0x04, //<2F><>
|
|
|
|
|
|
MG_UNIT_DMS =0x05, //<2F>ȷ<EFBFBD><C8B7><EFBFBD>,<2C><><EFBFBD><EFBFBD>DDDMMSS.SSSS<53><53>ʽ
|
|
|
|
|
|
MG_UNIT_Foot =0x06, //Ӣ<><D3A2>
|
|
|
|
|
|
MG_UNIT_Minute =0x07, //<2F><>(60<36><30>֮һ<D6AE><D2BB>)
|
|
|
|
|
|
MG_UNIT_Radian =0x08, //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
|
MG_UNIT_GRAD =0x09, //<2F>ݶ<EFBFBD> 1<>ݶ<EFBFBD>=0.015707963267949<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
MG_UNIT_KM =0x0A, //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
|
MG_UNIT_DM =0x0B, //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
|
MG_UNIT_CM =0x0C, //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
MG_UNIT_Inch =0x0D, //Ӣ<><D3A2>
|
|
|
|
|
|
MG_UNIT_Yard =0x0E, //<2F><>
|
|
|
|
|
|
MG_UNIT_SeaMile =0x0F, //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
|
MG_UNIT_Mile =0x10 //Ӣ<><D3A2>
|
|
|
|
|
|
};
|
|
|
|
|
|
//
|
|
|
|
|
|
////2.2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ
|
|
|
|
|
|
//#define UNIT_SQ_MM 0x20 //ƽ<><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(Square Millimeter)
|
|
|
|
|
|
//#define UNIT_SQ_CM 0x21 //ƽ<><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(Square Centimeter)
|
|
|
|
|
|
//#define UNIT_SQ_DM 0x22 //ƽ<><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(Square Millimeter)
|
|
|
|
|
|
//#define UNIT_SQ_M 0x23 //ƽ<><C6BD><EFBFBD><EFBFBD>(Square DeciMeter)
|
|
|
|
|
|
//#define UNIT_SQ_KM 0x24 //ƽ<><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(Square KiloMeter)
|
|
|
|
|
|
//#define UNIT_SQ_Inch 0x25 //ƽ<><C6BD>Ӣ<EFBFBD><D3A2>(Square Inch)
|
|
|
|
|
|
//#define UNIT_SQ_Foot 0x26 //ƽ<><C6BD>Ӣ<EFBFBD><D3A2>(Square Foot)
|
|
|
|
|
|
//#define UNIT_SQ_Yard 0x27 //ƽ<><C6BD><EFBFBD><EFBFBD>(Square Yard)
|
|
|
|
|
|
//#define UNIT_Are 0x28 //<2F><>Ķ(Are)
|
|
|
|
|
|
//#define UNIT_Acre 0x29 //ӢĶ(Acre)
|
|
|
|
|
|
//#define UNIT_Hectare 0x2A //<2F><><EFBFBD><EFBFBD>(Hectare)
|
|
|
|
|
|
//#define UNIT_SQ_Mile 0x2B //ƽ<><C6BD>Ӣ<EFBFBD><D3A2>(Square Mile)
|
|
|
|
|
|
//
|
|
|
|
|
|
////2.3 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ
|
|
|
|
|
|
//#define UNIT_CU_MM 0x40 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(Cubic Millimeter)
|
|
|
|
|
|
//#define UNIT_CU_CM 0x41 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(Cubic Centimeter)
|
|
|
|
|
|
//#define UNIT_CU_DM 0x42 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(Cubic Millimeter)
|
|
|
|
|
|
//#define UNIT_CU_M 0x43 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(Cubic DeciMeter)
|
|
|
|
|
|
//#define UNIT_CU_Inch 0x45 //<2F><><EFBFBD><EFBFBD>Ӣ<EFBFBD><D3A2>(Cubic Inch)
|
|
|
|
|
|
//#define UNIT_CU_Foot 0x46 //<2F><><EFBFBD><EFBFBD>Ӣ<EFBFBD><D3A2>(Cubic Foot)
|
|
|
|
|
|
//#define UNIT_CU_Yard 0x47 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(Cubic Yard)
|
|
|
|
|
|
//
|
|
|
|
|
|
////3<><33><EFBFBD>ο<EFBFBD><CEBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(MAP_PARA<52>ṹ<EFBFBD><E1B9B9>earthParam<61>ֶ<EFBFBD>ֵ)
|
|
|
|
|
|
enum EMapGis_EarthType
|
|
|
|
|
|
{
|
|
|
|
|
|
EP_UnDefine =0, //δָ<CEB4><D6B8>"<22>ο<EFBFBD><CEBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
|
|
|
|
|
EP_Beijing54 =1, //" 1:<3A><><EFBFBD><EFBFBD>54/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˹<EFBFBD><CBB9>(1940<34><30>)<29><><EFBFBD><EFBFBD>", //"Krasovsky"
|
|
|
|
|
|
EP_Xian80 =2, //" 2:<3A><><EFBFBD><EFBFBD>80/1975 <20><>I.U.G.G<>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD><EFBFBD> ",
|
|
|
|
|
|
EP_IUGG1979 =3, //" 3:1979 <20><>I.U.G.G<>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD><EFBFBD> ",
|
|
|
|
|
|
EP_IUGG1983 =4, //" 4:1983 <20><>I.U.G.G<>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD><EFBFBD>",
|
|
|
|
|
|
EP_UserDefine =5, //" 5:<3A>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28>Զ<EFBFBD><D4B6><EFBFBD>) ",
|
|
|
|
|
|
EP_IUGG1967 =6, //" 6:1967 <20><>I.U.G.G<>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD><EFBFBD>",
|
|
|
|
|
|
EP_WGS84 =7, //" 7:WGS-84 ",
|
|
|
|
|
|
EP_GRS80 =8, //" 8:GRS-80 ",
|
|
|
|
|
|
EP_WGS72 =9, //" 9:WGS-72 ",
|
|
|
|
|
|
EP_Australia =10, //" 10:<3A>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>1965<36><35><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
|
|
|
|
|
|
EP_11 =11, //" 11:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1910<31><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
|
|
|
|
|
|
EP_12 =12, //" 12:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1880<38><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
|
|
|
|
|
|
EP_13 =13, //" 13:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1866<36><36><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
|
|
|
|
|
|
EP_14 =14, //" 14:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1841<34><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
////4<><34>ͶӰ<CDB6><D3B0><EFBFBD><EFBFBD>(MAP_PARA<52>ṹ<EFBFBD><E1B9B9>projType<70>ֶ<EFBFBD>)
|
|
|
|
|
|
enum EMapGis_ProjType
|
|
|
|
|
|
{
|
|
|
|
|
|
PRJ_LonLat =0, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ(<28><>γ<EFBFBD><CEB3>)
|
|
|
|
|
|
PRJ_UTM =1, //ͨ<>ú<EFBFBD><C3BA><EFBFBD>ī<EFBFBD><C4AB><EFBFBD><EFBFBD>ͶӰ<CDB6><D3B0><EFBFBD><EFBFBD>ϵ(UTM)",
|
|
|
|
|
|
PRJ_Albers_Conical_EQ_Area =2, //<2F>Ƕ<EFBFBD><C7B6><EFBFBD>˹<EFBFBD>Ȼ<EFBFBD>ԲͶӰ<CDB6><D3B0><EFBFBD><EFBFBD>ϵ",ALBERS CONICAL EQUAL AREA
|
|
|
|
|
|
PRJ_Lambert_Conformal_Conic =3, //<2F><><EFBFBD><EFBFBD><EFBFBD>صȽ<D8B5>ԲͶӰ<CDB6><D3B0><EFBFBD><EFBFBD>ϵ",LAMBERT CONFORMAL CONIC
|
|
|
|
|
|
PRJ_Mercator =4, //ī<><C4AB><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD>Ƚ<EFBFBD>Բ<EFBFBD><D4B2>)ͶӰ<CDB6><D3B0><EFBFBD><EFBFBD>ϵ",MERCATOR
|
|
|
|
|
|
PRJ_Gauss_Kruger =5, //<2F><>˹-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD>Ƚ<EFBFBD>)ͶӰ",GAUSS-KRUGER
|
|
|
|
|
|
PRJ_Polyconic =6, //<2F><>ͨ<EFBFBD><CDA8>ԲͶӰ<CDB6><D3B0><EFBFBD><EFBFBD>ϵ",POLYCONIC
|
|
|
|
|
|
PRJ_EQ_Dist_Conic =7, //<2F>Ⱦ<EFBFBD>ԲͶӰ<CDB6><D3B0><EFBFBD><EFBFBD>ϵ",EQUIDISTANT CONIC
|
|
|
|
|
|
PRJ_Transverse_Mecator =8, //<2F><><EFBFBD><EFBFBD>ī<EFBFBD><C4AB><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD>Ƚ<EFBFBD>)ͶӰ",TRANSVERSE MECATOR
|
|
|
|
|
|
PRJ_StereoGraphic =9, //<2F><><EFBFBD><EFBFBD>ͶӰ(<28>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)<29><><EFBFBD><EFBFBD>ϵ",STEREOGRAPHIC
|
|
|
|
|
|
PRJ_Lambert_Azimuthal_EQ_Area =10, //<2F><><EFBFBD><EFBFBD><EFBFBD>صȻ<D8B5><C8BB><EFBFBD>λͶӰ<CDB6><D3B0><EFBFBD><EFBFBD>ϵ",LAMBERT AZIMUTHAL EQUAL_AREA
|
|
|
|
|
|
PRJ_Azimuthal_EQ_Dist =11, //<2F>ȾλͶӰ<CDB6><D3B0><EFBFBD><EFBFBD>ϵ",AZIMUTHAL EQUIDISTANT
|
|
|
|
|
|
PRJ_Gnomonic =12, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD>)ͶӰ<CDB6><D3B0><EFBFBD><EFBFBD>ϵ",GNOMONIC
|
|
|
|
|
|
PRJ_Orthographic =13, //<2F><><EFBFBD><EFBFBD>ͶӰ(<28>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD><EFBFBD>Զ)<29><><EFBFBD><EFBFBD>ϵ",ORTHOGRAPHIC
|
|
|
|
|
|
PRJ_General_VER_NS_Perspective =14, //ͨ<>ô<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><CDB8>(<28><><EFBFBD><EFBFBD>)ͶӰ",GENERAL VERTICAL NEAR_SIDE PERSPECTIVE
|
|
|
|
|
|
PRJ_Sinusoidal =15, //<2F><><EFBFBD><EFBFBD>ͶӰ(αԲ<CEB1><D4B2>)<29><><EFBFBD><EFBFBD>ϵ",SINUSOIDAL
|
|
|
|
|
|
PRJ_Equirectangular =16, //<2F>Ⱦ<EFBFBD><C8BE><EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2>(<28><><EFBFBD><EFBFBD>)ͶӰ<CDB6><D3B0><EFBFBD><EFBFBD>ϵ",EQUIRECTANGULAR
|
|
|
|
|
|
PRJ_Miller_Cylindrical =17, //<2F><><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2>(<><CDB8><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2>)ͶӰ<CDB6><D3B0><EFBFBD><EFBFBD>ϵ",MILLER CYLINDRICAL
|
|
|
|
|
|
PRJ_V_D_Grinten_I =18, //<2F><><EFBFBD>¸<EFBFBD><C2B8>ֶ<EFBFBD>IͶӰ<CDB6><D3B0><EFBFBD><EFBFBD>ϵ",VAN DER GRINTEN I
|
|
|
|
|
|
PRJ_Oblique_Mercator =19, //б<><D0B1>ī<EFBFBD><C4AB><EFBFBD><EFBFBD>ͶӰ<CDB6><D3B0><EFBFBD><EFBFBD>ϵ",OBLIQUE MERCATOR (HOTINE)
|
|
|
|
|
|
PRJ_Polar_Srereographic =20 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͶӰ<CDB6><D3B0><EFBFBD><EFBFBD>ϵ",POLAR SREREOGRAPHIC
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>
|
|
|
|
|
|
struct MapGisMap
|
|
|
|
|
|
{
|
|
|
|
|
|
char type; //<2F>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD>ݣ<EFBFBD>ˮƽ<CBAE><C6BD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD>
|
|
|
|
|
|
char unit; //<2F>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD>ݣ<EFBFBD>ˮƽ<CBAE><C6BD><EFBFBD>굥λ,
|
|
|
|
|
|
double mapw; //<2F>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD>ݣ<EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD>ۿ<EFBFBD> type<70><65><EFBFBD><EFBFBD>ϵ,unit<69><74>λ.
|
|
|
|
|
|
double maph; //..................<2E><> type<70><65><EFBFBD><EFBFBD>ϵ,unit<69><74>λ.
|
|
|
|
|
|
|
|
|
|
|
|
char projType; //<2F>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD>ݣ<EFBFBD>ͶӰ<CDB6><D3B0><EFBFBD><EFBFBD>
|
|
|
|
|
|
char earthParam; //<2F>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3>ο<EFBFBD><CEBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
double jd0; //<2F>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>½Ǿ<C2BD><C7BE><EFBFBD> , <20><><EFBFBD>ݵ<EFBFBD>λͳһ<CDB3><D2BB><EFBFBD><EFBFBD>UNIT_DMS<4D><53>ʽ
|
|
|
|
|
|
double wd0; //<2F>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD>......γ<><CEB3> , <20><><EFBFBD>ݵ<EFBFBD>λͳһ<CDB3><D2BB><EFBFBD><EFBFBD>UNIT_DMS<4D><53>ʽ
|
|
|
|
|
|
double djd; //<2F>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD>ݾ<EFBFBD><DDBE>ȿ<EFBFBD><C8BF><EFBFBD> , <20><><EFBFBD>ݵ<EFBFBD>λͳһ<CDB3><D2BB><EFBFBD><EFBFBD>UNIT_DMS<4D><53>ʽ
|
|
|
|
|
|
double dwd; //<2F>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD>γ<EFBFBD>ȿ<EFBFBD><C8BF><EFBFBD> , <20><><EFBFBD>ݵ<EFBFBD>λͳһ<CDB3><D2BB><EFBFBD><EFBFBD>UNIT_DMS<4D><53>ʽ
|
|
|
|
|
|
double rate; //<2F>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD>ˮƽ<CBAE><C6BD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD>, <20><EFBFBD>λ
|
|
|
|
|
|
|
|
|
|
|
|
double lon; //<2F>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD>뾭<EFBFBD>߾<EFBFBD><DFBE><EFBFBD> , <20><><EFBFBD>ݵ<EFBFBD>λͳһ<CDB3><D2BB><EFBFBD><EFBFBD>UNIT_DMS<4D><53>ʽ
|
|
|
|
|
|
double lon1; //<2F>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD>ݣ<EFBFBD>˫<EFBFBD><CBAB><EFBFBD><EFBFBD>1 <20><><EFBFBD><EFBFBD> , <20><><EFBFBD>ݵ<EFBFBD>λͳһ<CDB3><D2BB><EFBFBD><EFBFBD>UNIT_DMS<4D><53>ʽ
|
|
|
|
|
|
double lon2; //<2F>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD>ݣ<EFBFBD>˫<EFBFBD><CBAB><EFBFBD><EFBFBD>2 <20><><EFBFBD><EFBFBD> , <20><><EFBFBD>ݵ<EFBFBD>λͳһ<CDB3><D2BB><EFBFBD><EFBFBD>UNIT_DMS<4D><53>ʽ
|
|
|
|
|
|
double lat; //<2F>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD>ݣ<EFBFBD>ͶӰԭ<D3B0><D4AD>γ<EFBFBD><CEB3> , <20><><EFBFBD>ݵ<EFBFBD>λͳһ<CDB3><D2BB><EFBFBD><EFBFBD>UNIT_DMS<4D><53>ʽ
|
|
|
|
|
|
double lat1; //<2F>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD>ݣ<EFBFBD>˫γ<CBAB><CEB3>1 γ<><CEB3> , <20><><EFBFBD>ݵ<EFBFBD>λͳһ<CDB3><D2BB><EFBFBD><EFBFBD>UNIT_DMS<4D><53>ʽ
|
|
|
|
|
|
double lat2; //<2F>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD>ݣ<EFBFBD>˫γ<CBAB><CEB3>2 γ<><CEB3> , <20><><EFBFBD>ݵ<EFBFBD>λͳһ<CDB3><D2BB><EFBFBD><EFBFBD>UNIT_DMS<4D><53>ʽ
|
|
|
|
|
|
double dx; //<2F>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD>ݣ<EFBFBD>ͼֽ<CDBC><D6BD><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD>ͶӰ<CDB6><D3B0><EFBFBD><EFBFBD>ϵ<EFBFBD>е<EFBFBD>Xƫ<58><C6AB>ֵ ,type<70><65><EFBFBD><EFBFBD>ϵ,unit<69><74>λ.
|
|
|
|
|
|
double dy; //....................................Yƫ<59><C6AB> ,type<70><65><EFBFBD><EFBFBD>ϵ,unit<69><74>λ.
|
|
|
|
|
|
|
|
|
|
|
|
char levelType; //<2F>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD>ˮ<CBAE><D7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
double h; //<2F>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD>ˮ<CBAE><D7BC><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD><CEBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD>ĸ߲<C4B8>, <20><>λΪ
|
|
|
|
|
|
double H; //<2F>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD>ݣ<EFBFBD>ͶӰƽ<D3B0><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˮ<CBAE><D7BC><EFBFBD>ĸ߲<C4B8>, <20><>λΪ
|
|
|
|
|
|
|
|
|
|
|
|
double vRate; //<2F>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD>
|
|
|
|
|
|
char vUnit; //<2F>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>λ
|
|
|
|
|
|
char TICtype; //TIC<49><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD>
|
|
|
|
|
|
char TICunit; //TIC<49><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>굥λ
|
|
|
|
|
|
char infoUnit; //ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ
|
|
|
|
|
|
double infoRatex; //ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λֵ<CEBB><D6B5><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD>ݵ<EFBFBD>λֵ<CEBB><D6B5>x<EFBFBD><78><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5>, <20><>ʼֵ<CABC><D6B5><EFBFBD>븳0<EBB8B3><30>1
|
|
|
|
|
|
double infoRatey; //........................................y<><79><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5>, <20><>ʼֵ<CABC><D6B5><EFBFBD>븳0<EBB8B3><30>1
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
// MapGis<69><73><EFBFBD><EFBFBD>
|
|
|
|
|
|
struct MapGisMpj
|
|
|
|
|
|
{
|
|
|
|
|
|
short FileNum; //ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
MapGisRect8 Prj_Rect; //ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD>귶Χ
|
|
|
|
|
|
MapGisEnv Env; //ͼ<>λ<EFBFBD><CEBB><EFBFBD>
|
|
|
|
|
|
char Title[60]; //ͼ<>α<EFBFBD><CEB1><EFBFBD>
|
|
|
|
|
|
int lLayerDictOffset; //ͼ<><CDBC><EFBFBD>ֵ<EFBFBD>λ<EFBFBD><CEBB>
|
|
|
|
|
|
int lFirstFile; //ͼ<><CDBC><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>ʼλ<CABC><CEBB>
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>ҳ<EFBFBD>漰λ<E6BCB0><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
double TranX,TranY; //λ<><CEBB>
|
|
|
|
|
|
double ScaleX,ScaleY; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
|
double Angle; //<2F><>ת<EFBFBD>Ƕ<EFBFBD>
|
|
|
|
|
|
double VerW,VerH; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
short PrjType;
|
|
|
|
|
|
int lFirstCLN; //ͼ<><CDBC><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>ʼλ<CABC><CEBB>
|
|
|
|
|
|
MapGisMap PrjMapParam; //<2F><><EFBFBD><EFBFBD>Ԥ<EFBFBD><D4A4><EFBFBD>ĵ<EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>
|
|
|
|
|
|
char UnUsed[128];
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>е<EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ṹ<EFBFBD><E1B9B9>0x190=400<30>ֽڣ<D6BD>
|
|
|
|
|
|
struct MapGisFile
|
|
|
|
|
|
{
|
|
|
|
|
|
char Filetype; //<2F>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>(<28><>/<2F><>/<2F><>/Ӱ<><D3B0>)
|
|
|
|
|
|
char FileState; //<2F>ļ<EFBFBD>״̬(<28>ر<EFBFBD>/<2F><><EFBFBD><EFBFBD>/<2F>༭/<2F><>ǰ<EFBFBD>༭)
|
|
|
|
|
|
char Filename[128]; //<2F>ļ<EFBFBD><C4BC><EFBFBD>(ȫ·<C8AB><C2B7>)
|
|
|
|
|
|
char Describe[128]; //<2F>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
MapGisRect8 rect; //<2F><><EFBFBD>귶Χ
|
|
|
|
|
|
char UserType; //<2F>û<EFBFBD><C3BB>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
char GroupCode; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
char DataSource[32]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD><EFBFBD><EFBFBD>Դ(<28><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>)
|
|
|
|
|
|
double MinDispRate; //<2F><>С<EFBFBD><D0A1>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>(<MinDispRate,<2C><><EFBFBD><EFBFBD>ʾ)
|
|
|
|
|
|
double MaxDispRate; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>(>MaxDispRate,<2C><><EFBFBD><EFBFBD>ʾ)
|
|
|
|
|
|
char NoteFlg; //<2F><>־<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶζ<D6B6>̬<EFBFBD><CCAC>ע,<2C>Լ<EFBFBD><D4BC>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŵ<EFBFBD>
|
|
|
|
|
|
char NoteField[21]; //<2F><>ע<EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
float NoteHeight; //<2F><>ע<EFBFBD>ָ<EFBFBD>
|
|
|
|
|
|
short NoteColor; //<2F><>ע<EFBFBD><D7A2>ɫ
|
|
|
|
|
|
char NoteFont; //<2F><>ע<EFBFBD><D7A2><EFBFBD><EFBFBD>
|
|
|
|
|
|
::byte CLNClassCode; //ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|
|
|
|
|
char UnUsed[30]; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
|
|
// ͼ<><CDBC><EFBFBD>ļ<EFBFBD><C4BC>еĸ<D0B5><C4B8><EFBFBD><EFBFBD><EFBFBD>(<28><>16<31><36>)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ṹ
|
|
|
|
|
|
struct MapGisIndex
|
|
|
|
|
|
{
|
|
|
|
|
|
int pos; // λ<><CEBB>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>ʼλ<CABC><CEBB>)
|
|
|
|
|
|
int len; // <20>ֽڳ<D6BD><DAB3><EFBFBD>
|
|
|
|
|
|
short unknow; // δ֪(0xFFFF)
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݽṹ
|
|
|
|
|
|
struct MapGisArc
|
|
|
|
|
|
{
|
|
|
|
|
|
short LineType; // <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
::byte AuxLineType; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
::byte isTrans; // <20>Ƿ<EFBFBD><EFBFBD><CDB8>
|
|
|
|
|
|
int LineColor; // <20><>ɫ
|
|
|
|
|
|
float LineWidth; // <20>߿<EFBFBD>
|
|
|
|
|
|
::byte isSmooth; // <20>Ƿ<EFBFBD>ƽ<EFBFBD><C6BD>(0=<3D><><EFBFBD>ߡ<EFBFBD>1=<3D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|
|
|
|
|
float XParam; // Xϵ<58><CFB5>
|
|
|
|
|
|
float YParam; // Yϵ<59><CFB5>
|
|
|
|
|
|
int AuxColor; // <20><><EFBFBD><EFBFBD>ɫ
|
|
|
|
|
|
short LayerID; // ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
int res0; // <20><><EFBFBD><EFBFBD>(=0)
|
|
|
|
|
|
int res1; // <20><><EFBFBD><EFBFBD>(=0)
|
|
|
|
|
|
int ID; // <20><><EFBFBD>ε<EFBFBD>ID
|
|
|
|
|
|
MapGisRect8 rect; // <20><><EFBFBD>귶Χ
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݽṹ
|
|
|
|
|
|
struct MapGisPoly
|
|
|
|
|
|
{
|
|
|
|
|
|
int FillColor; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
|
|
|
|
|
|
short FillSymbol; // <20><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC>
|
|
|
|
|
|
float SymWidth; // ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
float SymHeight; // ͼ<><CDBC><EFBFBD>߶<EFBFBD>
|
|
|
|
|
|
int SymColor; // ͼ<><CDBC><EFBFBD><EFBFBD>ɫ
|
|
|
|
|
|
short LayerID; // ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
::byte isTrans; // <20>Ƿ<EFBFBD><EFBFBD><CDB8>
|
|
|
|
|
|
short basLN; // <20><><EFBFBD><EFBFBD>б<EFBFBD>»<EFBFBD><C2BB>ߵĻ<DFB5><C4BB><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
long res0; // <20><><EFBFBD><EFBFBD>(=0)
|
|
|
|
|
|
long res1; // <20><><EFBFBD><EFBFBD>(=0)
|
|
|
|
|
|
MapGisRect8 rect; // <20><><EFBFBD>귶Χ
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// <20>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD>Խṹ(0x27=39<33><39><EFBFBD>ֽ<EFBFBD>)
|
|
|
|
|
|
struct MapGisField
|
|
|
|
|
|
{
|
|
|
|
|
|
char name[20]; // <20>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
::byte type; // <20>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
int offset; // <20>ֶ<EFBFBD>ƫ<EFBFBD><C6AB>
|
|
|
|
|
|
short len; // <20>ֶγ<D6B6><CEB3><EFBFBD>(<28>ֽڳ<D6BD><DAB3><EFBFBD>)
|
|
|
|
|
|
short lenc; // <20>ֶγ<D6B6><CEB3><EFBFBD>(<28>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>)
|
|
|
|
|
|
::byte prec; // <20>ֶξ<D6B6><CEBE><EFBFBD>(С<><D0A1>λ<EFBFBD><CEBB>)
|
|
|
|
|
|
short enable; // <20>༭ʹ<E0BCAD>ܱ<EFBFBD>־(0/1/2=<3D><><EFBFBD><EFBFBD>/<2F><>/<2F><>ֹ)
|
|
|
|
|
|
::byte flg; // <20><>ӡ<EFBFBD><D3A1>־
|
|
|
|
|
|
short ptc_pos; // <20>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>Ϊ0,1,2...
|
|
|
|
|
|
int unknow; // δ֪(?)
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
// MapGisField<6C>ṹ<EFBFBD><E1B9B9>enable<6C><65><EFBFBD><EFBFBD>: (0-->0x00FFΪMapGisϵͳ<CFB5><CDB3><EFBFBD><EFBFBD>)
|
|
|
|
|
|
#define MG_FLDEDT_NO 0x0000 //<2F>ֶοɱ༭״̬,<2C><><EFBFBD><EFBFBD>
|
|
|
|
|
|
#define MG_FLDEDT_YES 0x0001 //<2F>ֶοɱ༭״̬,<2C><>
|
|
|
|
|
|
#define MG_FLDEDT_FORBID 0x0002 //<2F>ֶοɱ༭״̬,<2C><>ֹ
|
|
|
|
|
|
#define MG_FLD_VIS 0x0004 //<2F>ֶοɼ<CEBF>״̬(<28>༭<EFBFBD><E0BCAD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ʱ״̬)
|
|
|
|
|
|
#define MG_FLD_MSK 0x0008 //<2F>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD>״̬
|
|
|
|
|
|
#define MG_FLD_EXT 0x0010 //<2F><><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD>չ<EFBFBD><D5B9><EFBFBD><EFBFBD>(TEXT_TYPE--EXT_TYPE)
|
|
|
|
|
|
#define MG_FLD_REPEL 0x0020 //<2F><><EFBFBD>ֶ<EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>
|
|
|
|
|
|
#define MG_FLD_DBSKEY 0x0040 //<2F><><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF>ؼ<EFBFBD><D8BC>ֶ<EFBFBD>
|
|
|
|
|
|
#define MG_FLD_EDT (MG_FLDEDT_NO|MG_FLDEDT_YES|MG_FLDEDT_FORBID) /*<2A>ֶα༭״̬*/
|
|
|
|
|
|
|
|
|
|
|
|
////<2F><><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>
|
|
|
|
|
|
#define PNT_NOTE 0 // <20>ڵ<EFBFBD>/<2F>ַ<EFBFBD><D6B7><EFBFBD>
|
|
|
|
|
|
#define PNT_SUB 1 // <20><>ͼ/<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
|
#define PNT_CIR 2 // Բ
|
|
|
|
|
|
#define PNT_ARC 3 // <20><>
|
|
|
|
|
|
#define PNT_IMAGE 4 // MSIͼ<49><CDBC>
|
|
|
|
|
|
#define PNT_TEXT 5 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
#define PNT_TYPE_NUM 6 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݽṹ
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȵ<EFBFBD><C8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊdouble<6C>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD>Ը<EFBFBD><D4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD>Ϊ40<34><30><EFBFBD>ֽڣ<D6BD>
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD>ˡ<EFBFBD>#pragma pack(1)<29><><EFBFBD><EFBFBD><EFBFBD>뷽ʽΪ1<CEAA>ֽڣ<D6BD><DAA3><EFBFBD><EFBFBD>Ըýṹ<C3BD>峤<EFBFBD><E5B3A4>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>34<33>ֽ<EFBFBD>
|
|
|
|
|
|
union infoPoint
|
|
|
|
|
|
{
|
|
|
|
|
|
struct str // <20>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>22 Bytes<65><73>
|
|
|
|
|
|
{
|
|
|
|
|
|
float height; //<2F>߶<EFBFBD>
|
|
|
|
|
|
float width; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
|
float space; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
|
float angle; //<2F>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>Ƕȣ<C7B6><C8A3><EFBFBD>360<36><30><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>λ<EFBFBD><CEBB>ʾ
|
|
|
|
|
|
short ifnt; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
short chnt; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
::byte ifnx; //<2F><><EFBFBD>Σ<EFBFBD>0=<3D><><EFBFBD>壬1=<3D><>б<EFBFBD><D0B1>2=<3D><>б<EFBFBD><D0B1>3=<3D><><EFBFBD>ʣ<EFBFBD>4=<3D><><EFBFBD>ʣ<EFBFBD>64=<3D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӱ<EFBFBD><D3B0>65=<3D><>б<EFBFBD><D0B1>Ӱ<EFBFBD><D3B0>66=<3D><>б<EFBFBD><D0B1>Ӱ<EFBFBD><D3B0>67=<3D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӱ<EFBFBD><D3B0>68=<3D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӱ
|
|
|
|
|
|
::byte hvpl; //ˮƽ<CBAE><C6BD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD>0=ˮƽ<CBAE><C6BD><EFBFBD><EFBFBD> 1=<3D><>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD>
|
|
|
|
|
|
};
|
|
|
|
|
|
struct text // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֣<EFBFBD>34 Bytes<65><73>
|
|
|
|
|
|
{
|
|
|
|
|
|
float height; //<2F>߶<EFBFBD>
|
|
|
|
|
|
float width; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
|
float space; //<2F>ּ<EFBFBD><D6BC><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|
|
|
|
|
float angle; //<2F><>360<36><30><EFBFBD>ƶ<EFBFBD>Ϊ<EFBFBD><CEAA>λ<EFBFBD><CEBB>ʾ
|
|
|
|
|
|
short ifnt; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
short chnt; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
::byte ifnx; //<2F><><EFBFBD>Σ<EFBFBD>0=<3D><><EFBFBD>壬1=<3D><>б<EFBFBD><D0B1>2=<3D><>б<EFBFBD><D0B1>3=<3D><><EFBFBD>ʣ<EFBFBD>4=<3D><><EFBFBD>ʣ<EFBFBD>64=<3D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӱ<EFBFBD><D3B0>65=<3D><>б<EFBFBD><D0B1>Ӱ<EFBFBD><D3B0>66=<3D><>б<EFBFBD><D0B1>Ӱ<EFBFBD><D3B0>67=<3D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӱ<EFBFBD><D3B0>68=<3D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӱ
|
|
|
|
|
|
float lspace; //<2F>м<EFBFBD><D0BC><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|
|
|
|
|
float dx; //<2F><><EFBFBD>泤
|
|
|
|
|
|
float dy; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
::byte hvpl; //ˮƽ<CBAE><C6BD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD>0=ˮƽ<CBAE><C6BD><EFBFBD><EFBFBD> 1=<3D><>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD>
|
|
|
|
|
|
};
|
|
|
|
|
|
struct submap // <20><>ͼ<EFBFBD><CDBC>24 Bytes<65><73>
|
|
|
|
|
|
{
|
|
|
|
|
|
int subno; //<2F><>ͼ<EFBFBD><CDBC>
|
|
|
|
|
|
float height; //<2F>߶<EFBFBD>
|
|
|
|
|
|
float width; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
|
float angle; //<2F>Ƕ<EFBFBD>
|
|
|
|
|
|
float penw; //<2F>߿<EFBFBD>(δ<><CEB4>)
|
|
|
|
|
|
int fclr; //<2F><><EFBFBD><EFBFBD>ɫ(δ<><CEB4>)
|
|
|
|
|
|
};
|
|
|
|
|
|
struct circle // Բ<><D4B2>17 Bytes<65><73>
|
|
|
|
|
|
{
|
|
|
|
|
|
double radiu; //radiu>0, <=0Ϊ<30>Ƿ<EFBFBD> [float-->double]
|
|
|
|
|
|
int lcol; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫΪicol [short-->int]
|
|
|
|
|
|
float penw; //<2F>߿<EFBFBD>(6.0<EFBFBD><EFBFBD>ǰΪshort)
|
|
|
|
|
|
::byte fflag; //4.1<EFBFBD>濪ʼ 1=<3D><><EFBFBD><EFBFBD>Բ 0=<3D><><EFBFBD><EFBFBD>Բ
|
|
|
|
|
|
};
|
|
|
|
|
|
struct arc // <20><><EFBFBD><EFBFBD>20 Bytes<65><73>
|
|
|
|
|
|
{
|
|
|
|
|
|
double radiu; //radiu>0, <=0Ϊ<30>Ƿ<EFBFBD> [float-->double]
|
|
|
|
|
|
float begang; //<2F><>ʼ<EFBFBD>Ƕ<EFBFBD>
|
|
|
|
|
|
float endang; //<2F><>ֹ<EFBFBD>Ƕ<EFBFBD>
|
|
|
|
|
|
float penw; //<2F>߿<EFBFBD><DFBF><EFBFBD>(6.0<EFBFBD><EFBFBD>ǰΪshort)
|
|
|
|
|
|
};
|
|
|
|
|
|
struct image // ͼ<><CDBC><EFBFBD><EFBFBD>20 Bytes<65><73>
|
|
|
|
|
|
{
|
|
|
|
|
|
double width; // [float-->double]
|
|
|
|
|
|
double height; // [float-->double]
|
|
|
|
|
|
float angle; //<2F>Ƕ<EFBFBD>(δ<><CEB4>)
|
|
|
|
|
|
};
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
struct MapGisPoint
|
|
|
|
|
|
{
|
|
|
|
|
|
::byte type; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
::byte isTrans; // <20>Ƿ<EFBFBD><EFBFBD><CDB8><EFBFBD><EFBFBD>0=<3D><><EFBFBD><CDB8><EFBFBD><EFBFBD>1=<><CDB8>
|
|
|
|
|
|
char infoPointData[34]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݲ<EFBFBD><DDB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>Ը<EFBFBD>Ϊ40<34>ֽ<EFBFBD>
|
|
|
|
|
|
float infoDx; // [new, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB>dx]
|
|
|
|
|
|
float infoDy; // [new, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB>dy]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ40<34>ֽ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><31>short<72>ͱ<EFBFBD><CDB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD>
|
|
|
|
|
|
int iColor; // [short-->int]
|
|
|
|
|
|
int linNo; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߺ<EFBFBD>
|
|
|
|
|
|
int layer; // ͼ<><CDBC><EFBFBD><EFBFBD>
|
|
|
|
|
|
short res1; // <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
short res2; // <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
short res3; // <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
#pragma pack()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// <20>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
#define MG_MAX_STRING_LEN 512
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class CMapGisFile :
|
|
|
|
|
|
public COtherFormat
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
CMapGisFile(void);
|
|
|
|
|
|
virtual ~CMapGisFile(void);
|
|
|
|
|
|
|
|
|
|
|
|
BOOL Read(LPCTSTR lpszPathName);
|
|
|
|
|
|
BOOL B_ReadMpj(LPCTSTR lpszPathName); //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
|
|
|
|
|
BOOL B_ReadBinary(LPCTSTR lpszPathName);//<2F>㣨*.wt<77><74><EFBFBD><EFBFBD><EFBFBD>ߣ<EFBFBD>*.wl<77><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*.wp<77><70>
|
|
|
|
|
|
BOOL A_ReadAscii(LPCTSTR lpszPathName); //<2F><>(*.wat)<29><><EFBFBD><EFBFBD>(*.wal)<29><><EFBFBD><EFBFBD>(*.wap)
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
//<2F>ı<EFBFBD><C4B1><EFBFBD>ʽ
|
|
|
|
|
|
BOOL A_ReadWatPoint(CFile& fr); //<2F><>
|
|
|
|
|
|
BOOL A_ReadWalLine(CFile& fr); //<2F><>
|
|
|
|
|
|
BOOL A_ReadWapRegion(CFile& fr); //<2F><>
|
|
|
|
|
|
|
|
|
|
|
|
CString GetFontName(int nType);
|
|
|
|
|
|
COLORREF GetColor(int nIndex);
|
|
|
|
|
|
|
|
|
|
|
|
virtual void SetCurrentLayer(CString strLayer);
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
class CMGPoint : public CPoint2D
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
CMGPoint();
|
|
|
|
|
|
~CMGPoint();
|
|
|
|
|
|
|
|
|
|
|
|
CStringArray arrCommand;
|
|
|
|
|
|
int id; //ID<49><44>
|
|
|
|
|
|
int type; //<2F><><EFBFBD>ͣ<EFBFBD>0 <20>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>1 <20><>ͼ<EFBFBD><CDBC>2 Բ<><D4B2>3 <20><><EFBFBD><EFBFBD>4 ͼ<><CDBC><EFBFBD><EFBFBD>5 <20>ı<EFBFBD>
|
|
|
|
|
|
int layer; //ͼ<><CDBC>
|
|
|
|
|
|
int transparen; //<><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
int color; //<2F><>ɫ
|
|
|
|
|
|
|
|
|
|
|
|
BOOL Read(CFile& fr);
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class CMGLine //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
CMGLine();
|
|
|
|
|
|
~CMGLine();
|
|
|
|
|
|
|
|
|
|
|
|
BOOL Read(CFile& fr);
|
|
|
|
|
|
void ClearCurve();
|
|
|
|
|
|
|
|
|
|
|
|
MapGisArc m_par; //<2F><><EFBFBD>߲<EFBFBD><DFB2><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
bool isValid = false;//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>ЧԪ<D0A7><D4AA>
|
|
|
|
|
|
CCurveEx* m_pCurve; //<2F><><EFBFBD><EFBFBD><EFBFBD>꼰<EFBFBD><EABCB0><EFBFBD><EFBFBD>
|
|
|
|
|
|
double length; //<2F>߳<EFBFBD><DFB3><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
BOOL ReadParameter(CFile& fr);
|
|
|
|
|
|
BOOL ReadCurve(CFile& fr);
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class CMGLineSegment : public CMGLine //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
CMGLineSegment();
|
|
|
|
|
|
~CMGLineSegment();
|
|
|
|
|
|
|
|
|
|
|
|
BOOL Read(CFile& fr);
|
|
|
|
|
|
|
|
|
|
|
|
int frontNode; //ǰ<>ڵ<EFBFBD><DAB5><EFBFBD>
|
|
|
|
|
|
int backNode; //<2F><><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
int leftRegion; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
int rightRegion; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class CMGNode : public CPoint2D //<2F>ڵ<EFBFBD>
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
CMGNode();
|
|
|
|
|
|
~CMGNode();
|
|
|
|
|
|
|
|
|
|
|
|
BOOL Read(CFile& fr);
|
|
|
|
|
|
CArray<long,long> m_arrLineSegment; //<2F><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
|
|
|
|
|
|
};
|
|
|
|
|
|
class CMGRegion //<2F><>
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
CMGRegion();
|
|
|
|
|
|
~CMGRegion();
|
|
|
|
|
|
|
|
|
|
|
|
BOOL Read(CFile& fr);
|
|
|
|
|
|
CArray<long,long> m_arrLineSegment; //<2F><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
MapGisPoly m_par;
|
|
|
|
|
|
|
|
|
|
|
|
bool isValid; //<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>ЧԪ<D0A7><D4AA>
|
|
|
|
|
|
double penWidth; //<2F>ʿ<EFBFBD>
|
|
|
|
|
|
int id; //ID<49><44>
|
|
|
|
|
|
double area; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
|
double length; //<2F>ܳ<EFBFBD>
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>Ƹ<EFBFBD>ʽ
|
|
|
|
|
|
MapGisIndex m_IndexTable[16];
|
|
|
|
|
|
void B_ReadPoint(CFile& fr, int m_nEle); // <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void B_ReadAttData(CFile& fr, int start,int len); // <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3>ļ<EFBFBD><C4BC><EFBFBD>ʼλ<CABC>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽڳ<D6BD><DAB3>ȣ<EFBFBD>
|
|
|
|
|
|
void B_ReadArcLine(CFile& fr, int m_nArc, CList<CMGLineSegment*, CMGLineSegment*> &lineList); // <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void B_ReadPoly(CFile& fr, int nPoly, CList<CMGRegion*, CMGRegion*> &polyList); // <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
void toCurveSolid(CMGRegion& rgn, CPointList& dp);
|
|
|
|
|
|
void toCurveSolid(CMGRegion& rgn, CList<CMGLineSegment*, CMGLineSegment*> &arcLine);
|
|
|
|
|
|
void Clear(CList<CMGLineSegment*, CMGLineSegment*> &line);
|
|
|
|
|
|
void Clear(CList<CMGRegion*, CMGRegion*> &poly);
|
|
|
|
|
|
|
|
|
|
|
|
CMGColorLib m_mgColorLib; //<2F><>ɫ<EFBFBD><C9AB>
|
|
|
|
|
|
CMGSymbolLib m_mgSymbolLib; //<2F><><EFBFBD>ſ<EFBFBD>
|
|
|
|
|
|
CMGFillGrphLib m_mgFillGrphLib; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ſ<EFBFBD>
|
|
|
|
|
|
CMGLineTypeLib m_mgLineTypeLib; //<2F><><EFBFBD>Ϳ<EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
int ProcessScript(CString& str);
|
|
|
|
|
|
void WriteColorDFD(LPCTSTR lpszFileName);
|
|
|
|
|
|
CString FindSymbol(int nIndex, COLORREF col);
|
|
|
|
|
|
CString FindFillSymbol(int nIndex, COLORREF col);
|
|
|
|
|
|
void SetMapInfo(MapGisMap& map);
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
using namespace NMapGisReader;
|