⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vector.h

📁 利用vc开发gis系统有用的可以下一下哈欢迎大家使用
💻 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 + -