VC++开发GIS系统(271)删除注释之函数定义

本文目录
  • 正文

本文介绍GIS系统中的删除注释的功能,并实现一个用于删除注释的底层IO函数。

删除注释IO函数定义

在_malaIO.h中的注释文件读写类 CLabelIO 中定义用于删除注释的函数,声明如下:

public:
  long labelDelete(malaLabelPro &labelPro, CString &fileName);//删除注释
  • @ labelPro 被删除注释的属性
  • @ fileName 注释文件的完整路径

删除注释IO函数实现

在_malaIO.cpp中实现上述的函数定义,代码如下:

//删除注释实现
long CLabelIO::labelDelete(malaLabelPro &labelPro, CString &fileName)
{
  long ID = labelPro.labelId;
  readLabels(fileName);

  vector<malaLabelFile>tempLabels;

  int Size = mLabel.size();
  for (int i = 0; i < Size; i++)
  {
    if (mLabel[i].mLabelPro.labelId != ID)
    {
      tempLabels.push_back(mLabel[i]);
    }
  }
  mLabel.clear();
  mLabel = tempLabels;
  saveLabels(fileName);
  tempLabels.clear();
  return ID;
}

实现原理是遍历注释文件中的所有注释,ID相同即删除。

详细代码可以参考:GitHub

如您有疑问,可在文末留言,或到QQ群提问。

本站QQ群:291616564 麻辣GIS

微信公众号:malagis,扫描右边二维码直接关注。

微信捐助麻辣GIS 支付宝捐助麻辣GIS

如果本文对您有所帮助,欢迎对我们团队进行打赏捐助,让我们在传播3S的路上可以走得更远。


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

发表评论