1. 程式人生 > >【ArcGIS|空間分析|網路分析】8 查詢能夠為需求點對提供服務的最佳路徑

【ArcGIS|空間分析|網路分析】8 查詢能夠為需求點對提供服務的最佳路徑

文章目錄

參考ArcGIS幫助文件

要求

  • 目標

為運載乘客的車隊找到最佳路徑,此車隊將是乘客從家中出發前往不同醫院赴診的唯一交通工具。

  • 方法

1、用需求點對來求解車輛配送 (VRP) 分析,首先將兩個停靠點關聯並對其進行排序,從而使車輛能夠將乘客接往正確的目的地。
2、使用 VRP 分析圖層的其他要素,確保其他要求得以滿足。例如,輸入需求點對間的最長行駛時間,以避免乘客在路上花費過多時間。對停靠點使用時間窗,以避免乘客錯過預約的赴診時間。有些乘客需要使用輪椅,可以使用特殊要求選項來為這些乘客指派配有輪椅升降裝置的車輛。
3、確定該路徑後生成轉向說明,並將該路徑以電子形式分發給駕駛員,或列印後交給駕駛員。

步驟

1 建立車輛配送 (VRP) 分析圖層

1、在 Network Analyst 工具條上,單擊 Network Analyst,然後單擊新建多路徑派發(VRP)。

2 新增特殊要求

物流公司擁有三輛麵包車。其中在市區行駛的一輛麵包車配備了方便輪椅進出的裝置。您將把“輪椅”新增為特殊要求,以保證將需要此特殊要求的停靠點分配到具有輪椅升降裝置的路徑上。

1、在 Network Analyst 視窗中,右鍵單擊特殊要求 (0),然後單擊新增專案。
2、開啟該新特殊要求的屬性視窗,在屬性視窗中設定名為 Wheelchair 的特殊要求 。
在這裡插入圖片描述

3 新增停靠點

OrderPairs表格記錄包括患者姓名、家庭地址;患者必須被送往的醫院名稱和地址;以及車輛必須在哪個時間窗內接到患者等等。
在這裡插入圖片描述

表格欄位說明:
在這裡插入圖片描述

乘客和就診醫院是相互關聯的,因為每個顧客都必須前往預先確定的醫院。利用停靠點對來構建此種情景的模型,方式是將患者和醫院位置都載入到“停靠點”網路分析類中,並用新停靠點對物件對他們進行關聯。

地理編碼

1、雙擊 OrderPairs.xls 檔案。 OrderPairs.xls 檔案將展開,此時可見表 Patients。
2、右鍵單擊表 然後單擊地理編碼地址,將開啟選擇地址定位器對話方塊。
3、單擊 SanFranciscoLocator,開啟地理編碼位置SanFranciscoLocator 對話方塊。
4、單擊地址表下拉列表旁的瀏覽按鈕瀏覽,選擇包含地址的表Patients$。
5、在完整地址下拉列表中,選擇 PatientAddress。
6、單擊輸出 shapefile 或要素類文字框旁的瀏覽按鈕瀏覽。 單擊儲存型別下拉列表,選擇檔案和個人地理資料庫要素類。 雙擊 SanFrancisco.gdb。 刪除 Name 文字框中的名稱,然後鍵入 Patients。
在這裡插入圖片描述

在這裡插入圖片描述

7、將開啟地理編碼地址對話方塊,並顯示 15 個地址全部匹配。地理編碼地址將被作為點要素圖層,地理編碼結果:Patients 新增至地圖文件。
在這裡插入圖片描述

8、重複以上步驟 載入患者的目標醫院 ,將街道或交叉點設定為 HospitalAddress,輸出為 DestinationHospitals。

在這裡插入圖片描述

9、在內容列表視窗中,取消選中上述兩個地理編碼結果圖層,以使其在地圖檢視中不可見。

把病人位置載入為停靠點。

10、在 Network Analyst 視窗中,右鍵單擊停靠點 (0),然後選擇載入位置。 從載入自下拉列表中選擇地理編碼結果:Patients。
11、按照如下子步驟所指定的方式從“地理編碼結果:Patients”圖層中複製欄位值。

  • 將 Name 屬性對映到 OrderName1 欄位。
  • 將 Description 屬性對映到 PatientAddress 欄位。
  • 將 TimeWindowStart1 屬性對映到 PickFrom 欄位。
  • 將 TimeWindowEnd1 屬性對映到 PickTo 欄位。
  • 將 PickupQuantities 屬性對映到 TotalPassengers 欄位。
  • 確保 SpecialtyNames 屬性自動與 SpecialtyNames 欄位相匹配。
  • 在 ServiceTime 屬性對應的預設值下輸入 2。
    載入的所有患者地址位置的 ServiceTime 屬性值都將設為 2,該值是指乘客上車所花費的平均時間(以分鐘為單位)。
  • 在 MaxViolationTime1 屬性對應的預設值下輸入 0。
    將所有 MaxViolationTime1 屬性都設為零之後,VRP 求解程式將僅搜尋能夠在時間窗內經過停靠點的路徑。

在這裡插入圖片描述

把醫院位置載入為停靠點。

1、在 Network Analyst 視窗中,右鍵單擊停靠點 (15),然後選擇載入位置。 從載入自下拉列表中選擇地理編碼結果:DestinationHospitals。
2、按照如下子步驟所指定的方式,從“地理編碼結果:DestinationHospitals”圖層中複製欄位值。

  • 將 Name 屬性對映到 OrderName2 欄位。

請注意,Name 屬性的值在“停靠點”網路分析類中必須唯一。在本示例中,有許多患者需要前往同一家醫院。因此,如果使用醫院地址來獲取“停靠點”的 Name 屬性值,則 VRP 求解程式會因存在重複的 Name 值而返回錯誤訊息。
在這裡插入圖片描述

  • 將 Description 屬性對映到 HospitalAddress 欄位。
  • 將 DeliveryQuantities 屬性對映到 TotalPassengers 欄位。
  • 確保 SpecialtyNames 屬性自動與 SpecialtyNames 欄位相匹配。
  • 在 ServiceTime 屬性對應的預設值下輸入 2。

在這裡插入圖片描述

4 新增需求點對

必須將乘客送往預先確定的醫院。通過向“需求點對”網路分析類中新增物件,可以指定患者將被送往哪家醫院,以及患者在單向行程中的最長乘車時間。

1、在 Network Analyst 視窗中,右鍵單擊需求點對 (0),然後選擇載入位置。 雙擊 Patients P a t i e n t s 2 P a t i e n t s 。Patients 表將被新增至載入位置對話方塊的載入自下拉列表中。 2、配置位置分析屬性部分中所列屬性,按照如下子步驟所指定的方式從 Patients 表中提取欄位值。

  • 將 FirstOrderName 屬性對映到 OrderName1 欄位。
  • 將 SecondOrderName 屬性對映到 OrderName2 欄位。
  • 確保 MaxTransitTime 屬性自動與 MaxTransitTime 欄位相匹配。

在這裡插入圖片描述
在這裡插入圖片描述

5 新增站點

物流公司將在三個站點處進行車輛運輸工作。

1、在 Network Analyst 視窗中,右鍵單擊 站點 (0),然後選擇載入位置。 從載入自下拉列表中選擇 CentralDepots。
2、在位置分析屬性部分中,確保名稱屬性自動與名稱欄位相匹配。
在這裡插入圖片描述

6 新增路徑

物流公司有三輛麵包車,最大載客量均為 6。車輛從站點出發,並在所有行程全部結束後返回站點。其中在市區接送乘客的一輛車配備了方便輪椅進出的升降裝置。新增三條路徑(每輛車一條),並設定市區車輛的屬性,以使其具有 Wheelchair 這一特殊要求。
1、在 Network Analyst 視窗,右鍵單擊路徑 (0),然後選擇新增專案, 開啟該路徑的屬性視窗。
2、在屬性視窗中,按下表所示方式指定路徑的屬性,保持其他屬性的預設值不變。
在這裡插入圖片描述
在這裡插入圖片描述
3、重複以上步驟新增另兩條路徑以表示在 North Bay 和 East Bay 區域運轉的車輛。對於這兩條新路徑,請使用下表中的屬性,而不要使用步驟 2 中列出的屬性,這些車輛並未配備可供輪椅進出的裝置。
在這裡插入圖片描述
在這裡插入圖片描述

7 新增路徑區

物流公司所使用的三輛麵包車只能為預先確定的區域中的停靠點提供服務。新增路徑區並將其與車輛/路徑相關聯。

1、在 Network Analyst 視窗中,選擇路徑區 (0)。
2、在 Network Analyst 工具條上,單擊建立網路位置工具。
3、在地圖檢視上,按如下所示方式對大致覆蓋市區的面進行數字化。單擊可新增折點;雙擊可完成面。新路徑區 Graphic Pick 1 將新增至 Network Analyst 視窗的路徑區類中。
在這裡插入圖片描述
4、在 Network Analyst 視窗中,雙擊新路徑區物件 Graphic Pick 1 開啟該路徑區的屬性視窗。按下表所示方式設定路徑區的屬性。
在這裡插入圖片描述
在這裡插入圖片描述
5、重複步驟 1 至 4,新新增兩個路徑區:一個針對 North Bay,另一個針對 East Bay。
在這裡插入圖片描述

在這裡插入圖片描述

8 設定分析屬性

1、單擊 Network Analyst 視窗中的分析圖層屬性按鈕,將開啟圖層屬性對話方塊。單擊分析設定選項卡。
2、確保將時間屬性下拉列表設定為駕車時間(分鐘)。
VRP 求解程式將使用此屬性來計算停靠點與站點間基於時間的成本。
3、確保未在距離屬性下拉列表中選擇任何值。
由於您並沒有使用任何基於距離的成本引數(如 CostPerUnitDistance 或 MaxTotalDistance),因此無需設定距離屬性。
4、將預設日期設定為星期。在星期下拉列表中,選擇星期一。
5、由於車輛容量僅以車輛可載客總數來衡量,因此請確保將容量計數設定為 1。
如果以車輛可容納的乘客總數及可容納輪椅的最大數目衡量車輛容量,則應將“容量計數”設定為 2。

在這裡插入圖片描述

9 執行該程式以求解

1、在 Network Analyst 工具條上,單擊求解按鈕求解。
VRP 求解程式會計算各車輛的路徑。各路徑車輛均從某一站點始發,接待一名或多名乘客(乘客在車輛上度過的時間應小於在需求點對中指定的 MaxTransitTime 值),到達對應的醫院後停車讓乘客下車,然後繼續接送其他乘客,最終返回至起始站點。路徑所服務的停靠點必須位於為其分配的路徑區內。
在這裡插入圖片描述

10 確定路徑中的轉彎說明

1、在 Network Analyst 工具條上,單擊指示視窗按鈕方向。
在這裡插入圖片描述
2、選擇將車輛配送 (VRP) 作為圖層檔案 (.lyr) 匯出到磁碟中,以便將其載入至其他地圖文件中。