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

📄 sepathanalystex.h

📁 Embedded vc++下开发的路经分析程序
💻 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 + -