VC++开发GIS系统(287)计算一条折线的长度

本文介绍GIS系统中计算一条折线长度的方法。

算法介绍

将折线拆分成多条线段,并分别计算线段的长度,其长度之和即为折线的长度。

算法实现

在_malaBase.h中定义下面的函数

double distanceLine(vector<malaPoint>& pLilne);//计算一条线的长度

@ pLilne 表示线要素

在_malaBase.cpp中实现上述函数定义

/*
* 计算一条线的长度
*/
double malaLogic::distanceLine(vector<malaPoint>& pLilne)
{
  double dis(0.0);
  for (int i = 0; i < pLilne.size() - 1; i++)
  {
    dis += distancePointToPoint(pLilne[i], pLilne[i + 1]);
  }
  return dis;
}

其中 distancePointToPoint 函数用于计算两点之间的距离。可参考文章《VC++开发GIS系统(188)线上移点之获取点在线的位置

VC++开发GIS系统(286)判断拓扑关系菜单响应及实现 VC++开发GIS系统(288)已知线段量算类的设计及实现

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

发表评论