VC++开发GIS系统(243)基本GIS系统中注释单元的结构体

前文已经实现了点、线、面(区)的相关功能,下面的工作便是GIS系统另外一个基本要素:注释。

图中红色的标注就是GIS地图中典型的注释。为了实现这个功能,首先,我们要在程序中定义一个用于描述注释元素的结构体,本文中尝试对注释要素做以下的定义。

//注释属性
typedef struct
{
    int labelId;
    int labelHeight;   //字体高度
    int labelWidth;    //字体宽度
    int labelAngle;    //字体角度
    int textAngle;     //文本角度
    COLORREF textColor;//字体颜色
    int  textOff;      //字体间距
    CString textFont;  //字体类型
    int fontWeight;    //字体磅数
    CString textStr;   //字符串
}malaLabelPro;

注释在本GIS系统中,被当作一个点元素。所以和点、线、面结构体不同,注释只定义了属性结构体,并没有定义坐标结构。其中相关属性说明如下:

  • @labelId 注释ID
  • @labelHeight 注释字体高度
  • @labelWidth 注释字体宽度
  • @labelAngle 注释字体的倾斜角度
  • @textAngle 注释字符串角度
  • @textColor 注释字体颜色
  • @textOff 注释字体间距
  • @textFont 注释字体类型
  • @fontWeight 注释字体磅数
  • @textStr 注释字符串内容

这样再通过坐标xy就可以详细定义一个注释类型了。

详细代码可以参考:GitHub

VC++开发GIS系统(242)删除所有区之菜单响应 VC++开发GIS系统(244)新建注释模块malaLabel

作者:,GIS爱好者。
分享本文,请您带上本文链接
分享到:

发表评论