目前有很多GIS软都提供了路径分析功能,如ArcGIS,TransCAD,MapInfo等,但都是在2维平面上进行的。以 ArcGIS为例,它的ArcMap平台提供了一个称为Utility Network Analysis的工具栏来提供路径分析功能,但是在它的3维GIS平台ArcScene中却没有路径分析的工具ArcMap中的路径分析工具,其背后都是通过ArcObject组件对象模型COM实现的,该组件提供了众多的接口来实现GIS分析功能。而Arccene程序也能访问ArcObject组件,因此真正的区别在于:ArcScene展示的是一个3维空间。
要实现路径分析的3维可视化,除了需要道路网数据外,还需要道路网所在区域的数字地面模型DEM可以用规则格网、等高线或不规则角网TIN表示。方法之一是由高程点构建的TIN来表示地形,具有高程的TIN在ArcScene中直接以3维的方式显示。道路网数据不具备高程值,通过设置I3Dproperties接口的BaseSurface属性,从TIN表面获取了道路的高程值,3维可视化后的效果用这种方法需要注意的是,TIN的精度越高高程点越密,则道路网高程精度越高如果道路网本身就带有高程,则直接能显示出3维效果,但是受测量方法和误差的影响,部分道路可能和地形不重合。这时可以用硬线HarLine法将道路和TIN匹配,硬线法根据道路的高程精化TIN表面。
最短路径分析需要至少两个站点起点、终点或多个站点,分析结果就是途经这些站点的最短线路。站点需要用户输入,通常是通过鼠标在屏幕上的点击来设置。2维平面上,鼠标点击位置的X,Y坐标可以惟一地确定一个点,但是在3维空间还需要Z坐标才能确定一个点的位置。如果用户点击在TIN以外的区域,则无法确定站点的位置;如果用户点击在TIN表面上,则通过调用ISceneGraph接口的Locate命令能确定该点的Z坐标,鼠标点击实际上定义了一条指向屏幕内部的射线,Locate命令计算并返回该射线与TIN的交点路径分析需要的站点必须位于道路网上,因此还要将得到的交点投影到道路网上这里用到了IPointToEID接口,该接口的GetNearestEdge方法将鼠标创建的点投影到最近的道路上。点是否能投影到道路上取决于捕捉容限SnapTolerance的大小捕捉容限小意味着离道路网稍远一些的点就无法投影到网络上,此处将捕捉容限设为TIN表面宽度和高度中的最大值。
这样,只要鼠标点击到TIN,计算出的交点就一定能投影到道路网上计算最短路径的功能由ITraceFlowSolver接口的FindPath方法实现,有几个参数的设置将影响分析的结果。
一个参数是流向规则FlowMethod,以设置为上游、下游、双向。上游规则表示道路只能从终点向起点通行;下游规则表示只能从起点向终点通行;由于道路通常允许双向行驶,因此这里采用双向规则。
另一个参数是最短路径目标函数ShortestPathObjFn,该参数可以设置为最小化总和MinSum,表示最短路径上的阻抗和最小;以及最小化总数MinMax,表示最短路径上的网络元素边和节点最少。



当前位置: