最短路徑求解
【如果看到此博客還沒有網絡數據集的,請參考第一章的內容,點擊我,看目錄】
最短路徑,是什么最短?時間最短?距離最短?什么距離?路程距離?
考慮到擁堵問題,限速問題,換乘問題,在現實的最短路徑遠遠比計算機中的最短路徑要復雜,因為要考慮的因素太多了。
這些因素就叫作最短路徑求解過程中的“阻抗”,和電阻阻礙電流類似。
最短路徑是后面幾個分析類型的基礎,只有求得了最短路徑,才知道能覆蓋多大地方(服務區)、事故點與最近設施的路徑怎么走(最近設施)等。
在上一章,就已經有了最簡單的路徑分析:單一的道路網,阻抗僅僅為公路網的長度。
在這里不討論最短路徑的內部算法,似乎有大佛說過,ESRI是用的Dijkstra算法的變種算法。
最短路徑中有什么元素呢?換句話說,最短路徑要什么東西才能分析?
途徑點、障礙。
最短路徑輸出了什么?
當然就是最短路徑的那條線啊!
輸入元素 | 輸出元素 |
途徑點 障礙 |
最短路徑 |
換成圖的形式,就是這樣子。
輸入必選參數[途徑點],可選參數:充當障礙的[點線面],基於連通策略和阻抗,就能計算出最短路徑。
什么是障礙呢?例如,某條路正在封閉施工,那施工的那個地方就是障礙,這里是不能通行的,就代表最短路徑是不會走過障礙的。
路徑分析常用設置
在這里打開網絡分析圖層的屬性窗口
找到分析設置選項卡,就會有如下圖:
經常會使用到的設置是:阻抗、限制、方向、交匯點的U形轉彎、這幾個。
阻抗
很簡單,分析的時候經過這條路的花費成本,可以這么簡單的理解。可以是時間、平均消耗體力、道路長度等。
限制
限制主要有兩種:轉彎限制和單行線限制。
有的十字路口會有禁止轉向左邊或者右邊,或者十字路口等紅綠燈的時間比較長的情況,這個就是轉彎限制。轉彎限制怎么來的呢?
當網絡數據集中加入了轉彎要素類的時候,這個復選列表就可以選擇了。有關如何制作轉彎要素類,請跳到第四章。
單行線,有的道路只能一個方向走,不能來回走,這也是很常見的。
方向
這個是導航設置。主要設置導航的顯示單位和導航的屬性(長度或者時間成本)。
交匯點的U形轉彎
交匯點,就是線與線相交並且連通的地方。什么是連通?就是這個點的所有道路都能暢通無阻通過這個點。
交匯點可以是線的折點,也可以是兩條線的公共交點。
這個點能否U形轉彎,換句話,這個交匯點是否能掉頭,在這里就有4種選項:
[允許]:在任何交匯點處均允許調頭。
[僅在交點和死角處允許]:當兩條相鄰邊恰好相交於交匯點時,禁止掉頭。
[僅在死角處允許]:除僅有一條相鄰邊的交匯點(死角)外,其他交匯點均禁止掉頭。
[不允許]
什么地方都不允許掉頭。
ps:這里僅僅對交匯點所言,要是在道路上,一般也可以掉頭的,除非有中央路障。那這個怎么設置呢?只需設置以下屬性:
如果設置了最后一個禁止U形轉彎,那么在非交匯點也不能掉頭了。
輸出Shape類型
有的時候為了節約顯示資源,提高顯示速度,可以設置為點與點之間的直線:
不過一般最短路徑都是看效果的,除非只看導航,否則這個設置一般都默認。
分析示例
如上圖,阻抗用的是道路的長度,其余均為默認設置。
在以后,通過添加各種限制條件,如轉彎、掉頭策略,復雜的阻抗策略,連通性組策略,產生的結果就不同。