說明:
1. 本文主要用於演示網絡分析服務的搭建過程。所以在此不會深入討論網絡分析服務的每一個細節,本文的目的就是讓初學者學會使用網絡分析服務進行基本的分析(主要針對后續的WEB開發):路徑分析,最近設施點分析,以及服務區分析。
2.關於OD成本矩陣分析,多路徑配送,位置分配分析不會在本文中討論(注:REST GIS服務不支持OD成本矩陣分析,多路徑配送,位置分配,只能在ArcMap中進行分析)。
3.本文部分內容參考了ArcGIS幫助文檔,想詳細了解GIS網絡分析可查閱官方幫助文檔,並在此強烈推薦。
4.為簡化分析過程,本文使用的數據為作者零時制作,所以實際的表現效果會沒有真實的數據美觀,但是對於網絡分析服務的內容沒有任何影響,讀者可以參閱官方給出的網絡分析服務數據(注:需安裝ArcGIS Toturial 10.0,這里基本提供了官方文檔中用到的所有數據)。
1.准備網絡分析的數據
首先我們制作表示道路的線要素,線要素之后將用於構建我們的網絡數據集。
a.第一步
建立如下所示文件夾結構:
解釋:Scratch文件夾用來存儲我們的零時數據,ToolData用於存儲我們永久的服務數據。一般我們將地理要素及要素集存放在地里數據庫中。
這里我們新建了一個名叫NetworkFeatureDataSet的要素集,這是因為存放於地理數據庫中的線要素如果用於構建網絡數據集,則必須放在要素集中。
b.第二步
新建各種要素(表示設施點的點要素,以及表示道路的線要素),並添加相關的屬性
(說明:Network_ND和Network_ND_Junctions是之前已構建好的網絡數據集和結點。在此我們只需要新建三個點要素和一個線要素即可)
分別配置一下屬性:
線要素:
屬性說明:
Shape_Length:新建要素時默認生成的屬性,表示線要素的長度,其值和單位和選擇的坐標系有關,由於我們考慮到之后的Web開發,因此這里采用Web Mecator坐標系。
Length:表示道路的長度,這里的值就等於Shape_Length。(其實這里我們直接用Shape_Length這個屬性就可以,可以不添加該屬性)
Level:表示道路的等級,不同的等級所允許的行駛速度不同這里我們設置的等級和速度的對應關系如下:
等級 |
速度的最大值 |
1 |
130 km/h |
2 |
120 km/h |
3 |
80 km/h |
4 |
60 km/h |
這里還需要說明的一點是:在Web的開發過程中,默認情況下是啟用了道路的等級屬性(也就是說:無論你的網絡數據集有沒有設置等級,都會在Web開發中啟用等級屬性)。因此如果我們構建的網絡數據集中不包含等級屬性,那么采用默認的設置時,在Web開發中就會出錯,當然在Web開發時,我們也可以將啟用等級屬性設置為False,這樣也可以實現網絡分析的功能,具體過程將在下一篇Web開發中到。在此有個基本概念即可。
Speed:表示該公路運行行駛的最大速度,及按照如上所示的表格進行設置。
Time:表示行駛時間,這里我們沒有添加任何數據。
Name:即表示公路的名稱,注意線要素一定要有類型為文本類型的屬性,這樣才能夠在構建網絡數據集的時候添加方向設置,否則構建的網絡數據集中將不包含方向指南。因此這里我們添加了道路的名稱,目的用於之后生成方向指南。
點要素(以表示學校的點要素為例,其他點要素雷同)
c.第三步
編輯要素,構建具體的地圖,這里我們制作了一個簡單的,如下示例的地圖:
需要注意的是:由於道路是聯通的,所以我們需要將所有相交的線要素進行打斷處理。在此可以用拓補工具進行批處理。
以上過程完成之后,數據的准備階段就已完成,下面開始網絡數據集的構建工作。
2.構建網絡數據集
再次強調,構建網絡數據集的線要素必須位於要素集中,否則無法構建。
右鍵要素集——新建——網絡數據集
點擊將如下圖所示
設置網絡數據集的名稱,點擊下一步。
設置連通性,這里有節點和端點兩種,默認情況下為端點,這里我們選擇默認即可,然后點擊下一步。
設置高程字段,當涉及到高程時,在此設置,本文沒有涉及,所以選擇無。然后點擊下一步。
設置網絡數據集的屬性,我們指定了如上所示的屬性。具體的添加過程:
點擊添加,然后設置名稱,用法和單位,然后點擊賦值器,可以指定該屬性是字段,函數,常量以及VB腳本。
這里我們設置Distance屬性為字段,對應線要素的Length屬性(也可以用表達式,將單位換成千米即:Length/1000,默認的長度單位是米)。
Speed屬性對於線要素的Speed屬性。如下圖所示:
DriverTime屬性,表示行駛時間。這里需要注意的是DriveTime屬性我們采用的是表達式,而不是直接將線要素的Time屬性賦給它。(因為之前在新建要素的時候,我們沒有給Time屬性賦值,這里我們想根據線要素的長度和最大行駛速度來設置通過該要素所需最小時間)
因為速度是千米/時,默認長度單位是米,所以我們將要素長度除以一千。
以上屬性設置好以后,點擊下一步,設置網絡方向屬性。
這里我們設置長度屬性為Distance,並設置單位及時間屬性,如上圖所示,在街道名稱中設置名稱為Name字段。
然后點擊完成。如果以上過程沒有出錯,那么恭喜你,我們自己構建的網絡數據集已經生成了,這個時候,你的要素集中的內容應該如下:
接下來我們驗證生成的網絡數據集。
3.驗證網絡數據集
點擊自定義調出網絡分析工具條:
點擊NetworkAnalyst,可以選擇分析項。
a.最短路徑查詢
點擊新建路徑,然后點擊網絡分析工具條中帶有+號的按鈕。在地圖中添加兩個點或者更多,如下圖所示添加了四個點:
然后點擊求解工具,則會生成相應的路徑。
下面是生成的方向指南:
同理服務區的分析過程雷同,具體過程可參考官方的文檔。在此不再敘述。下一篇將會講述發布我們的網絡數據集,從而提供Web客戶端(Silveright)的GIS網絡分析服務。
本文數據下載地址:
http://files.cnblogs.com/potential/NetworkAnalysis.rar
(版權所有,轉載請標明出處,歡迎轉載)