上篇已經創建好了線數據(shp文件格式)鏈接:點我
這篇將基於此shp線數據創建網絡數據集。
在此說明:shp數據的網絡數據集僅支持單一線數據,也就是說基於shp文件的網絡數據集,只能有一個shp線文件參與。
如何解決這個弊端呢?見下篇,利用地理數據庫即可。
本篇目錄:
1. 創建網絡數據集 2. 給網絡數據集命名
3. 轉彎 4. 連通性 5. 高程
6. 網絡數據集的阻抗屬性
7. 出行模式 8. 導航設置 9. 創建並構建網絡數據集
10. 試驗最短路徑
1. 創建網絡數據集!
如圖。
2. 給網絡數據集命名
因為線shp的名稱是Route,所以會自動命名為Route_ND(ND就是Network Dataset)
在這我沒用別的,就默認。
3. ★ 轉彎
這一步關鍵,但是現在是最簡單的創建模式(就是盡量減少復雜的步驟),直接默認用通用轉彎,下一步即可。
4. ★ 連通性
這一步也很關鍵,這直接與線要素的創建習慣有關,見上一篇的折點問題,這里還不會看到效果,等實戰到簡單的最短路徑分析時就知道了。
在這里,連通策略使用按任意節點連通(就是按折點連通的意思)。不要問那么多,下一步。
5. ★ 高程
道路不可能一直平坦,但是這里作為示范,就不考慮這么多了,直接假設高程為0,選無即可。(好像shp也不能用高程)
6. ★★ 網絡數據集的阻抗(屬性)
這里必須談一談了。
道路網,要求解最短的路徑,是什么最短?有的同學可能說時間,也有的同學說長度。
沒錯,這些就是阻抗,阻礙最小的那條路線,就叫最短路徑。
ArcGIS的網絡數據集可以擁有多個阻抗屬性,就如同要素類可以擁有多個字段一樣。
我們這里阻抗就用道路的長度——大白話說就是,假定道路暢通無阻,唯一影響我解算最短路徑的就是道路的長度了。
見下圖:
父窗口上的“長度”,即為網絡數據集的一個阻抗屬性,它的值怎么來?
由右邊的參數給其 賦值 為Route線要素的Length字段。也可以雙擊屬性給其賦值。
知道為什么要計算幾何長度了嗎?
這里大有門路,不僅僅是長度這個阻抗,還有很多類型的阻抗能影響網絡數據集。
在這里,僅僅使用道路的長度作為阻抗,因為簡單嘛。
確定下一步。
7. 出行模式
直接下一步。
8. ★ 導航設置
這一步會影響導航窗口的單位和道路名稱的顯示,如下圖設置:
長度單位設置為千米。
名稱使用Route這個shp線文件的Name字段(就創建線數據的時候填寫的道路名)
確定下一步。
9. 創建並構建網絡數據集
無視軟媒魔方的浮動窗口。
剛才設置的所有信息都會列舉出來。此時只需下一步,即可創建網絡數據集。
軟件會提示是否構建,選是。
在這里多說兩句:創建是無中生有的過程,構建是利用給定的各種參數(連通性阻抗什么的)進行邏輯組合的過程。
創建只需這里一次,構建可以以后更新規則后再次進行。
這里選否。我們只需把Route_ND網絡數據集添加到數據框即可。
創建完成后是這樣的:
多了一個.nd文件和一個網絡數據集連通結點的shp文件。
無視教程文件夾,那是我為了寫這篇博客存放截圖的文件夾。
我們簡單試驗一下最佳路徑:
10. 試驗最佳路徑
打開網絡分析工具條,選擇當前的網絡數據集,創建路徑圖層,使用添加位置工具點兩個點,按求解按鈕:
成功了!留心一下這里的藍色結點,如果我改變起點終點位置:
它可能會繞的非常大,為什么不是按紅箭頭的方式走呢?那樣才是最快的呀?
甚至會報錯:起點和終點間沒有連通。
這是為什么呢?這里先賣個關子,這和線數據的質量有關,詳情見這篇博客:點我。
在下一篇博客中,就使用地理數據庫來構建網絡數據集了。