最佳路径分析总结

最佳路径分析总结

ID:13355211

大小:149.00 KB

页数:5页

时间:2018-07-22

最佳路径分析总结_第1页
最佳路径分析总结_第2页
最佳路径分析总结_第3页
最佳路径分析总结_第4页
最佳路径分析总结_第5页
资源描述:

《最佳路径分析总结》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第一步:在View类里声明一个路径分析类的对象:public:CSePathAnalystm_PathAnalyst;//定义一个路径分析类对象第二步:调用SetDatasetNetwork方法,具体方法如下:⑴得到网络分析数据集CSeDatasetVector*pDatasetNetwork=NULL;CSeDataSource*pDataSource=theApp.m_WorkSpace.GetDataSourceByAlias(_T("新世界阳光花园"));if(pDataSource!=NULL){CSeDatasetVector*pDataset=(CSeDatasetVector*

2、)pDataSource->GetDataset(_T("道路网络"));pDatasetNetwork=pDataset;}⑵设置网络分析数据集boolm_setNetWork=m_PathAnalyst.SetDatasetNetwork(pDatasetNetwork);⑶设置分析模型m_bRuleParamSetted=true;//判断是否设置分析模型成功,成功的话在LbuttunDown里不成功m_bRuleParamSetted=false;m_nAction=10;//值为时表明为路径分析模式,在在LbuttunDown里用到判断操作的模式m_MapWnd.SetAction(

3、CSeDrawParameters::uaNull);//此时将地图上的操作设为空操作⑷在C路径分析View::OnLButtonDown(UINTnFlags,CPointpoint)里进行路径分析if(m_nAction==10)//如果操作为路径分析模式的话{//路径搜索if(m_bRuleParamSetted)//已经设置了路径分析参数{//设置路径分析模式和模型后CSeDatasetVector*pSeDatasetNetwork=m_PathAnalyst.GetDatasetNetwork();if(pSeDatasetNetwork)//如果网络数据集存在的话{//获取网络数

4、据集的节点子数据集CSeDatasetVector*pSeDatasetNode=pSeDatasetNetwork->GetChildDataset();if(pSeDatasetNode)//如果网络数据集的节点子数据集存在的话{CPointpntNode;//得到的一个最近的点CPointpntMouse=CPoint(point);//获取鼠标点对象//将像素坐标转换为地图坐标m_MapWnd.GetDrawParam()->ClientToMap(&pntMouse);//获取鼠标点击点最近的节点longnNodeID=pSeDatasetNetwork->FindNearestNo

5、de(pntMouse,pntNode);//pntMouse点击点,pntNode得到的最近的点if(nNodeID>=0)//如果找到相应节点{if(m_nFromNodeID==-1)//路径分析的起始点{m_nFromNodeID=nNodeID;//将得到的最近节点ID赋值给起始点IDm_pntToNode=m_pntFromNode=pntNode;//起始点坐标m_pntFromNode=pntNode;//刷新跟踪层,等待将分析的路径放入if(m_MapWnd.m_TrackingLayer.GetCount()>0){m_MapWnd.m_TrackingLayer.Rele

6、aseAll();m_MapWnd.RefreshTrackingLayer(false);}//显示起始点(为实现)//显示起始点(为实现)}else//在执行完上面的If语句后,开始设置路径分析的终止点{m_pntToNode=pntNode;//将得到的最近点的点的坐标给终止点坐标//DisplayNodePoint(m_pntToNode);//显示终止点未实现CDWordArrayarrIDs;//路径的各个弧段ID【输出】CDWordArraypntIDs;//路径的各个节点ID【输出】doubledPathLength=0.0;//路径的长度//开始分析m_PathAnalyst

7、.Analyse(m_nFromNodeID,nNodeID,arrIDs,dPathLength,pntIDs);CSeGeometry*pSeGeometry=NULL;CSeDatasetVector*pSeDtV=NULL;longnCount=arrIDs.GetSize();//获取分析后路径弧段的个数if(nCount==0){//如果没有弧度,即没有找到路径//AfxMessage

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。