?? vector.h
字號:
//---------------------------------------------------------------------------
#ifndef VectorH
#define VectorH
//---------------------------------------------------------------------------
typedef enum
{
GIS_POINT, //表示點圖層
GIS_LINE, //表示線圖層
GIS_POLYGON //表示面圖層
} PICTURE_TYPE;
//---------------------------------------------------------------------------
struct GISFILEHEADER
{
PICTURE_TYPE giType; //圖層類型
double giMinX; //圖層水平方向最小值
double giMaxX; //圖層水平方向最大值
double giMinY; //圖層垂直方向最小值
double giMaxY; //圖層垂直方向最大值
int nNumber; //點、線、或面的個數
};
typedef GISFILEHEADER* LPGISFILEHEADER;
//---------------------------------------------------------------------------
struct GISRECT //定義矩形
{
float x1;
float x2;
float y1;
float y2;
};
typedef GISRECT* LPGISRECT;
//---------------------------------------------------------------------------
struct GISPOINT //定義點
{
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; //該多邊形的標識號
int numberPoint; //該多邊形包含的點數
GISRECT outRect; //最小外包矩形
TPen* pPen; //保存畫筆屬性
TBrush* pBrush; //保存畫刷屬性
GISPOINT* point; //組成多邊形的各點
};
typedef GISPOLYGON* LPGISPOLYGON;
//---------------------------------------------------------------------------
class TGisVectorLayer
{
public:
TGisVectorLayer();
~TGisVectorLayer();
public:
BOOL OpenIdrisFile(AnsiString FileName);//打開文件
BOOL Save(AnsiString FileName);//保存文件
void Draw(TCanvas* canvas,GISRECT SourceRect,TRect DestRect);
void DrawAPolygon(LPGISPOLYGON polygon,GISRECT SourceRect,TRect DestRect);
void SelectPolygon(TPoint SourcePoint); //根據點選擇多邊形
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);//將圖形坐標轉換成屏幕坐標
TRect GisRectToTRect(GISRECT SourceRect); //將圖形坐標中的矩形轉變為屏幕坐標
public:
GISFILEHEADER m_gisFileHeader;
TList* m_lpPolygonList;
TCanvas* m_canvas; //多邊形顯示的畫布
int m_nSelectID; //當前選擇的圖象對象的ID
private:
float m_ratioX;
float m_ratioY;
TRect m_DrawRect; //目標矩形
GISRECT m_gisSourceRect; //源矩形
};
//---------------------------------------------------------------------------
#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -