当前位置:首页 > ARCGIS最短路径 VB代码
毕业设计(论文)专用纸Solve=\whensolving\DimIsPartialSolutionAsBooleanIsPartialSolution=pNAContext.Solver.Solve(pNAContext,pGPMessages,Nothing)IfIsPartialSolution=FalseThenSolve=\ElseSolve=\Solution\EndIfExitFunctionFAIL:IfErr.NumberThenSolve=Solve+\Error#\+Str(Err.Number)+\Description\+Err.DescriptionEndIfEndFunction4.6显示路线及结果信息
Solver函数返回一个String类型变量,如果路径分析成功,则返回“OK”。网络分析结束后应该显示网络分析的结果,其中最短路径的路长结果通过函数GetRouteOutput返回。本程序可以返回3中路长结果,具体饭后哪种结果与之前进行的分析设置的阻抗属性有关。PublicFunctionGetRouteOutput(pContextAsINAContext,strNAClassAsString)AsDoubleDimintRowAsLongDimptableAsITableSetptable=pContext.NAClasses.ItemByName(strNAClass)IfptableIsNothingThenGetRouteOutput=-1ExitFunction25毕业设计(论文)专用纸EndIfDimpCursorAsICursorDimprowAsIRowSetpCursor=ptable.Search(Nothing,False)DimpSolverSettingsAsINASolverSettingsSetpSolverSettings=pContext.SolverSetprow=pCursor.NextRowIfNotprowIsNothingThenGetRouteOutput=prow.Value(ptable.FindField(\pSolverSettings.ImpedanceAttributeName))EndIfEndFunction'最短路径的现状要素通过以下代码获得:DimpNaFeatureClassAsIFeatureClassDimpNAClassAsINAClass'得到分析结果对象SetpNAClass=m_pNAContext.NAClasses.ItemByName(\SetpNaFeatureClass=pNAClassDimpNewCursorAsIFeatureCursorDimpNaFeatureAsIFeatureDimindexNaAsLongDimpPolylineAsIPolylineindexNa=pNaFeatureClass.FeatureCount(Nothing)SetpNewCursor=pNaFeatureClass.Search(Nothing,False)DimtAsIntegert=pNaFeatureClass.FeatureCount(Nothing)Ift<>1Then“分析结果路径不唯一!”26+毕业设计(论文)专用纸MsgBox\aretoomanyroutefeature\EndIfSetpNaFeature=pNewCursor.NextFeatureWhileNotpNaFeatureIsNothing'获取路径对象多义线IfpNaFeature.Shape.GeometryType=esriGeometryPolylineThenSetpPolyline=pNaFeature.ShapeEndIfGoToOneWend4.7最终程序实现的功能及查询方式
本节将介绍程序的运行结果,其中地图可以进行放大、缩小、还原等简单操作,并且可以在一定范围内任意拖动方便查看。1.点击查询用时最短路径图4-1点击查询——用时最短查询结果如图4-1所示,查询方式选择“点击查询”在\Attribute\下拉选项中选中“所用时间”在地图上的交通线路中随机选取两个目标点,在有些地方由于点图层未覆盖到,所以27毕业设计(论文)专用纸不能选取。成功选取之后点击“找路径”按钮就可以看到图中显示的线路了,其中1代表先选取的点。另外可以在窗口的右下方看到线路所经过的路径。2点击查询里程最短路径图4-2点击查询——里程最短查询结果这里的查询方法同图4-1中的用时最短查询基本一样,首先要将\Attribute\下拉选项中改成“里程”。另外,无论在之前是否有过任何查询,都需要重新选取目标点。3.点击查询花费最少路径28
共分享92篇相关文档