?? vector.~h
字號(hào):
//---------------------------------------------------------------------------
#ifndef VectorH
#define VectorH
//---------------------------------------------------------------------------
typedef enum
{
GIS_POINT, //表示點(diǎn)圖層
GIS_LINE, //表示線圖層
GIS_POLYGON //表示面圖層
} PICTURE_TYPE;
//---------------------------------------------------------------------------
struct GISFILEHEADER
{
PICTURE_TYPE giType; //圖層類(lèi)型
double giMinX; //圖層水平方向最小值
double giMaxX; //圖層水平方向最大值
double giMinY; //圖層垂直方向最小值
double giMaxY; //圖層垂直方向最大值
int nNumber; //點(diǎn)、線、或面的個(gè)數(shù)
};
typedef GISFILEHEADER* LPGISFILEHEADER;
//---------------------------------------------------------------------------
struct GISRECT //定義矩形
{
float x1;
float x2;
float y1;
float y2;
};
typedef GISRECT* LPGISRECT;
//---------------------------------------------------------------------------
struct GISPOINT //定義點(diǎn)
{
float x;
float y;
};
typedef GISPOINT* LPGISPOINT;
//---------------------------------------------------------------------------
struct GISLINE //定義線
{
public:
float X1;
float Y1;
float X2;
float Y2;
public:
GISLINE(float x1,float y1,float x2,float y2)
{
X1=x1;
Y1=y1;
X2=x2;
Y2=y2;
}
~GISLINE(){}
};
typedef GISLINE* LPGISLINE;
//---------------------------------------------------------------------------
struct GISPOLYGON //定義多邊形
{
int id; //該多邊形的標(biāo)識(shí)號(hào)
int numberPoint; //該多邊形包含的點(diǎn)數(shù)
GISRECT outRect; //最小外包矩形
TPen* pPen; //保存畫(huà)筆屬性
TBrush* pBrush; //保存畫(huà)刷屬性
GISPOINT* point; //組成多邊形的各點(diǎn)
};
typedef GISPOLYGON* LPGISPOLYGON;
//---------------------------------------------------------------------------
class TGisVectorLayer
{
public:
TGisVectorLayer();
~TGisVectorLayer();
public:
BOOL OpenIdrisFile(AnsiString FileName);//打開(kāi)文件
BOOL Save(AnsiString FileName);//保存文件
void Draw(TCanvas* canvas,GISRECT SourceRect,TRect DestRect);
void DrawAPolygon(LPGISPOLYGON polygon,GISRECT SourceRect,TRect DestRect);
void SelectPolygon(TPoint SourcePoint); //根據(jù)點(diǎn)選擇多邊形
void DrawSelPlyWithBitmap(GISRECT SourceRect,TRect DestRect);
void DrawSelectPolygon(GISRECT SourceRect,TRect DestRect);
void SetBitmapBrush(AnsiString strBitmapFile);
BOOL PointIsInPolygon(LPGISPOLYGON polygon,GISPOINT SourcePoint);
GISPOINT TPointToGisPoint(TPoint SourcePoint);
TPoint GisPointToTPoint(GISPOINT SourcePoint);//將圖形坐標(biāo)轉(zhuǎn)換成屏幕坐標(biāo)
TRect GisRectToTRect(GISRECT SourceRect); //將圖形坐標(biāo)中的矩形轉(zhuǎn)變?yōu)槠聊蛔鴺?biāo)
public:
GISFILEHEADER m_gisFileHeader;
TList* m_lpPolygonList;
TCanvas* m_canvas; //多邊形顯示的畫(huà)布
int m_nSelectID; //當(dāng)前選擇的圖象對(duì)象的ID
private:
float m_ratioX;
float m_ratioY;
TRect m_DrawRect; //目標(biāo)矩形
GISRECT m_gisSourceRect; //源矩形
};
//---------------------------------------------------------------------------
#endif
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -