📄 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 + -