📄 sepathanalystex.h
字号:
// SePathAnalystEx.h: interface for the CSePathAnalystEx class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_SEPATHANALYSTEX_H__68F87269_A14D_414E_925F_A40F6AD7A282__INCLUDED_)
#define AFX_SEPATHANALYSTEX_H__68F87269_A14D_414E_925F_A40F6AD7A282__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
//路径分析扩展类
class CSePathAnalystEx : public CSePathAnalyst
{
enum RuleType//分析模型
{
ShortestWithoutLimit = 0, //0-无规则最短路径分析
ShortestWithLimit = 1, //1-有规则最短路径分析
LeastTimeWithoutLimit = 2, //2-无规则最短时间分析
LeastTimeWithLimit = 3, //3-有规则最短时间分析
};
public:
CSePathAnalystEx();
virtual ~CSePathAnalystEx();
public:
/// \brief 设置路径分析模型
/// \return 成功返回true, 否则为false
bool SetPathRuleParams( long nRuleType );
protected://method
/// \brief 根据实际规则返回节点间的距离
/// \param pRecordsetArc 网络数据集的记录集指针
/// \param nArcID 当前记录的弧段ID [输出]
/// \param nFNodeID 当前记录的弧段的开始节点ID [输出]
/// \param nTNodeID 当前记录的弧段的终止节点ID [输出]
/// \param dDistanceStartToEnd 当前记录的弧段的正向距离 [输出]
/// \param dDistanceEndToStart 当前记录的弧段的逆向距离 [输出]
/// \return 成功true,否则为false
/// \remark pRecordsetArc指针为空则会返回false
virtual bool GetDistance( CSeRecordset *pRecordsetArc, long &nArcID, long &nFNodeID, long &nTNodeID,
double &dDistanceStartToEnd, double &dDistanceEndToStart );
/// \brief 根据实际规则返回道路的限制速度!
long GetSpeedLimit( BYTE btRoadType );
/// \brief 根据实际规则判断节点是否可以通达
/// \param nFromNodeID --> nCurrentNodeID --> nToNodeID 是否可通行
/// \param nFromNodeID 入口节点的ID
/// \param nCurrentNodeID 当前位置节点的ID
/// \param nToNodeID 出口节点的ID
/// \return 可通行true, 否则为false
virtual bool CanForward( long nFromNodeID, long nCurrentNodeID, long nToNodeID );
protected://attribute
long m_nRuleType; //路径分析模型
};
#endif // !defined(AFX_SEPATHANALYSTEX_H__68F87269_A14D_414E_925F_A40F6AD7A282__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -