最短路径求解
【如果看到此博客还没有网络数据集的,请参考第一章的内容,点击我,看目录】
最短路径,是什么最短?时间最短?距离最短?什么距离?路程距离?
考虑到拥堵问题,限速问题,换乘问题,在现实的最短路径远远比计算机中的最短路径要复杂,因为要考虑的因素太多了。
这些因素就叫作最短路径求解过程中的“阻抗”,和电阻阻碍电流类似。
最短路径是后面几个分析类型的基础,只有求得了最短路径,才知道能覆盖多大地方(服务区)、事故点与最近设施的路径怎么走(最近设施)等。
在上一章,就已经有了最简单的路径分析:单一的道路网,阻抗仅仅为公路网的长度。
在这里不讨论最短路径的内部算法,似乎有大佛说过,ESRI是用的Dijkstra算法的变种算法。
最短路径中有什么元素呢?换句话说,最短路径要什么东西才能分析?
途径点、障碍。
最短路径输出了什么?
当然就是最短路径的那条线啊!
输入元素 | 输出元素 |
途径点 障碍 |
最短路径 |
换成图的形式,就是这样子。
输入必选参数[途径点],可选参数:充当障碍的[点线面],基于连通策略和阻抗,就能计算出最短路径。
什么是障碍呢?例如,某条路正在封闭施工,那施工的那个地方就是障碍,这里是不能通行的,就代表最短路径是不会走过障碍的。
路径分析常用设置
在这里打开网络分析图层的属性窗口
找到分析设置选项卡,就会有如下图:
经常会使用到的设置是:阻抗、限制、方向、交汇点的U形转弯、这几个。
阻抗
很简单,分析的时候经过这条路的花费成本,可以这么简单的理解。可以是时间、平均消耗体力、道路长度等。
限制
限制主要有两种:转弯限制和单行线限制。
有的十字路口会有禁止转向左边或者右边,或者十字路口等红绿灯的时间比较长的情况,这个就是转弯限制。转弯限制怎么来的呢?
当网络数据集中加入了转弯要素类的时候,这个复选列表就可以选择了。有关如何制作转弯要素类,请跳到第四章。
单行线,有的道路只能一个方向走,不能来回走,这也是很常见的。
方向
这个是导航设置。主要设置导航的显示单位和导航的属性(长度或者时间成本)。
交汇点的U形转弯
交汇点,就是线与线相交并且连通的地方。什么是连通?就是这个点的所有道路都能畅通无阻通过这个点。
交汇点可以是线的折点,也可以是两条线的公共交点。
这个点能否U形转弯,换句话,这个交汇点是否能掉头,在这里就有4种选项:
[允许]:在任何交汇点处均允许调头。
[仅在交点和死角处允许]:当两条相邻边恰好相交于交汇点时,禁止掉头。
[仅在死角处允许]:除仅有一条相邻边的交汇点(死角)外,其他交汇点均禁止掉头。
[不允许]
什么地方都不允许掉头。
ps:这里仅仅对交汇点所言,要是在道路上,一般也可以掉头的,除非有中央路障。那这个怎么设置呢?只需设置以下属性:
如果设置了最后一个禁止U形转弯,那么在非交汇点也不能掉头了。
输出Shape类型
有的时候为了节约显示资源,提高显示速度,可以设置为点与点之间的直线:
不过一般最短路径都是看效果的,除非只看导航,否则这个设置一般都默认。
分析示例
如上图,阻抗用的是道路的长度,其余均为默认设置。
在以后,通过添加各种限制条件,如转弯、掉头策略,复杂的阻抗策略,连通性组策略,产生的结果就不同。