?? map.h
字號(hào):
/////////map.h
////////////////////
class CMapObject;
class CMapTestDoc;
class CReadMidFile;
//顏色色數(shù)值定義
#define UD_RED 0xff
#define UD_GREEN 0xff00
#define UD_BLUE 0xff0000
///************CMapObject************//
///************CMapObject************//
class CMapObject : public CObject
{
/*
//----------//
private:
COLORREF m_PenColor;//圖元顏色
//----------//*/
public:
double* m_pData;//地圖元素?cái)?shù)據(jù)(定義一個(gè)指針)
COLORREF m_nColor;//圖元顏色
int m_nMaxPoint;//圖元端點(diǎn)點(diǎn)數(shù)
double m_fMinX, m_fMinY, m_fMaxX, m_fMaxY;//圖元區(qū)域頂點(diǎn)坐標(biāo)
CMapTestDoc* m_pDoc;//文檔指針
long m_nStyle;//地圖圖元類(lèi)型
// double Num[BUFSIZ][2]; //定義一個(gè)二維數(shù)組,用來(lái)保存坐標(biāo),顯示標(biāo)注信息
int p,ONum; //定義一個(gè)全局變量用于存儲(chǔ)坐標(biāo)的數(shù)組的循環(huán),以得到當(dāng)前已經(jīng)讀取到了那個(gè)對(duì)象
CString Nam[BUFSIZ]; //定義一個(gè)數(shù)組 用來(lái)存儲(chǔ)從MID文件中讀取的屬性信息
bool IsInView();
virtual void Draw(CDC* pDC) = 0 ;//繪制地圖元素,定義了一個(gè)純虛函數(shù),其實(shí)現(xiàn)是在其派生類(lèi)中的
CMapObject();
~CMapObject()
{if(m_pData) delete[] m_pData;}
};
//****************************************************8*
//*************構(gòu)建地圖對(duì)象類(lèi)***************************
//******************************************************
/////************CMapPLine****************************
class CMapPLine : public CMapObject //構(gòu)建折線類(lèi)
{
public:
CMapPLine(CMapTestDoc* pDoc, CArchive& ar, int points);
void Draw(CDC* pDC);
};
/////***************CMapText****************************
class CMapText:public CMapObject //
{
public:
void Draw(CDC* pDC);
CString m_strText;
CMapText(CMapTestDoc*pDoc,CArchive&ar);
};
/////**************CMapPoint****************************
class CMapPoint:public CMapObject
{
public:
void Draw(CDC* pDC);
CMapPoint(CMapTestDoc* pDoc,CArchive& ar,CString str);
};
class CMapRegion : public CMapObject
{
public:
CMapRegion(CMapTestDoc* pDoc, CArchive& ar, int allpoint);
void Draw(CDC* pDC);
};
/**************************************************************/
///////// CReadMidFile ///////////////////////////
/************************************************************/
/**************************************************************/
///////// CMapLayer ///////////////////////////
/************************************************************/
class CMapLayer : public CObject
{
private:
CMapTestDoc* m_pDoc; //文檔指針
double starX,starY,endX,endY; //定義變量用于存儲(chǔ)起始點(diǎn)和結(jié)束點(diǎn)坐標(biāo)
public:
void DrawPath(struct NODE*path,long endx,long endy);
struct NODE * CheckCLOSED(double x,double y);
void Insert(struct NODE *Successor);
struct NODE * CheckOPEN(double x,double y);
void GenerateSucc(struct NODE *BestNode,double x, double y, double dx,double dy);
struct NODE* ReturnBestNode(void);
void FindNext(struct NODE *BestNode,double dx, double dy);
void PathSearch(CPoint point);
struct NODE* FindPath(double sx,double sy,double dx,double dy);
void SetFirstPoint(CPoint point,double &x,double &y);
CString GetObjectName(CString &str);
CString GetFirstPara(CString& str);//讀mif文件數(shù)據(jù)
int GetSecondPara(CString& str); //讀取對(duì)象個(gè)數(shù)
int m_nMaxPoint;//圖元端點(diǎn)點(diǎn)數(shù)
// CString m_strLayerName;//所在圖層名
CArray<CMapObject*, CMapObject*> m_aObject;//圖元對(duì)象數(shù)組
bool m_bCanDraw;
void Draw(CDC* pDC, long style);//繪制圖元
/////////////////////////////////////////
double m_fMinX, m_fMinY, m_fMaxX, m_fMaxY;//圖元區(qū)域頂點(diǎn)坐標(biāo)
// CString buf[BUFSIZ]; //定義一個(gè)動(dòng)態(tài)數(shù)組,用來(lái)存儲(chǔ)屬性
double Num[BUFSIZ][2]; //定義一個(gè)二維數(shù)組,用來(lái)保存坐標(biāo),顯示標(biāo)注信息
int p; //定義一個(gè)全局變量用于存儲(chǔ)坐標(biāo)的數(shù)組的循環(huán)
bool n_point,n_CancelFind;//定義一個(gè)布爾型量用于判斷是否已經(jīng)得到了第一個(gè)點(diǎn)
CMapLayer(CMapTestDoc* pDoc, CArchive& ar);//和文件關(guān)聯(lián)
CMapLayer();
~CMapLayer();
};
struct obj_point
{
CString name; //屬性名
int shape;
int color;
int size;
float longitude; //經(jīng)度
float latitude; //緯度
obj_point * next;
};
struct obj_pline
{
CString name; //屬性名
int pointnum; //折線點(diǎn)數(shù)
int penwidth;
int pencolor;
double *longitude; //經(jīng)度
double *latitude; //緯度
obj_point * next;
};
struct obj_region ///區(qū)域
{
CString name; //屬性名
int pointnum; //折線點(diǎn)數(shù)
double *longitude; //經(jīng)度
double *latitude; //緯度
int penwidth;
int pencolor;
int brushpattem ;
long forecolor,backcolor;
float ccnx,ceny;
obj_region * next;
};
struct NODE { ///節(jié)點(diǎn)鏈表
double f,h; //h:到終點(diǎn)的距離,f:f值,即估價(jià)值 f=g+h
double g,tmpg; // g:從起點(diǎn)到當(dāng)前點(diǎn)的實(shí)際距離
double x,y; //為點(diǎn)的坐標(biāo)
struct NODE *Parent;
struct NODE *NextNode; /* for filing purposes */
} ;
//struct NODE *OPEN;
//struct NODE *CLOSED;
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -