有很多同學雖然成功做好了網絡數據集,但是分析時會出現這樣的問題:
這是為什么呢?
這有三個可能的原因:
1. 兩個點之間所有的道路沒有連通(問題出在點、線數據上)。
2. 網絡數據集出現了孤立的點位置。
3. 網絡數據集的連通性有問題。
我就從這三個方面說說,如何避免這些問題。因為標題起的是點線要素的制作情況,我就着重講第一點了,后兩個情況簡單說說,在第四章網絡數據集的連通性會詳細說。
1. 問題出在點線數據上
還分兩個簡單的情況:
一個是點不在線上;
另一個比較復雜:線之間二維沒有由折點連通。
這里的由,用專業的說法就是"via",或者"by"。
點不在線上很容易,初中數學都說過的,想必證明點在線上的問題已經讓各位頭疼了吧。
那么,什么是“線之間二維沒有由折點連通”?
我們暫時假定道路數據是沒有高程數據的,也就是說,所有的道路均在二維平面上。
偉大的數學家華羅庚說過,“數有形時可直觀,形有數時能入微”。我們畫圖吧!
我們知道,ArcGIS里的線是Polyline,一個Polyline數據集有多條折線,一條折線由n個折點(也叫結點、節點、端點)和n-1條線段組成,例如下圖:
這個三折線就包括了3條線段和4個折點。
那么熟悉了折點的概念,我們往下看看,什么是二維間沒有折點連通?
我又畫了一條三折線,用綠色的折點表示:
現在,我將綠色的三折線挪動,與紅色的線相交,只會有這樣的三種情況:
A、B、C三種情況有什么不同?
在ArcGIS中,如果不顯示折點,是根本看不出是如何相交的。
A:線相交,但是存在上下的關系
B:線相交,雖然存在上下關系,但是有一條線的一個折點在另一條線的邊上
C:線相交,雖然存在上下關系,但是一條線的一個點與另一條線的折點重合
現在我們再來看看“線之間二維沒有經過折點連通”,就十分容易了:A、B兩個情況均為此情況,只要是這樣的情況
構建的網絡數據集都不會在線的交點處連通。
——————————那么,說清楚了,如何畫線是最科學的呢?——————————
- 十字路口、岔路口處設置折點。
- 立交橋處不設置折點(這樣就不連通了)。
- 立交橋的匝道出入口設置折點。
如果涉及立交橋,那么就需要設置高程字段了,而且是涉及了三維線數據的端點連通問題,更為復雜。
在此我暫時不解釋,有興趣的同學可以參考官方的幫助文檔,說的很詳細。(其實就是畫起來和解釋起來比較麻煩,篇幅原因,怕讀者拍磚看不懂、說我寫的復雜,就不繼續寫了,從我的二維情況可以推廣到三維的情況)
說實話,A和B完全就可以看作有一條線在另一條線的上空,你想想,兩條路如果不相交,而是上下的關系,車子怎么切換道路呢?當然也就不連通咯。
但是,在二維世界里沒有第三個維度,所以看起來“疊合”在一起了而已。
plus:還記得1.2用shp創建網絡數據集中那張圖嗎:
為什么不按紅線走呢?
因為紫色圈的地方根本沒有“二維按折點連通”。可以看到,藍色的點即為網絡數據集的連通點,紫色圈的地方沒有連通的折點,說明相交的兩條線確實沒有“二維按折點連通”。
見Route.shp編輯下的狀態:
是沒有綠色的折點的,難怪不能連通了。
在我的編輯下,Route.shp已經全部實現了每條線交叉的地方都有折點。見新的網絡數據集的Junctions:
每個交叉點都是連通的,所以道路也就暢通無阻(當然這是假定交點都是十字路口,不是立交橋)
2. 網絡數據集出現了孤零零的點(我好孤單!)
這個點類似於島嶼,其實就是上面提及的點不在線上,構建網絡網絡數據集的時候就成了孤立的點。
(這個問題一直困擾着我,最近才解決)
還是畫圖更直觀吧!
紅色的點假設是點要素類中的一個點要素,並不在任何一條線上,雖然可以創建網絡數據集,但是在網絡數據集中是孤零零的一個點:
然而,在網絡數據集中孤立的點並不會顯示,端點也不會顯示,例如有這樣的一幅網絡數據集:
我們是看不到端點的,也看不到孤立的點。上上個圖我只是把端點和孤立點“畫”了出來。
所以如果存在這樣的路網數據和點數據:
兩個點是孤立點,一個點在線的折點上(而不是在線上) (為啥這樣說,下一篇會寫到如果有點數據,網絡數據集又如何創建)
構建網絡數據集時,點數據選擇依邊線連通:
完成時會提示:
這樣就存在了孤立點。
雖然不影響,但是如果精確地添加了網絡位置到這些獨立的點上,自然就會出現文章開頭的無法分析的情況。
網絡位置是可以用這個工具添加的:
可以簡單理解網絡位置為最短路徑中的起點終點,最近設施點等。
當使用構建網絡數據集的點要素添加為網絡位置點時,就說精確重合了,那當然是不連通的,沒法分析咯。
3. 網絡數據集的連通性問題
這個屬於以后的內容,在這里就不細說了,等以后寫完第四章的連通性問題,就會在這里跟進超鏈接。