天天看點

AE中網絡分析的實作

1.     建立網絡資料集

在ArcCatalog中勾選網絡分析子產品,建立個人地理資訊資料庫—>建立要素資料集—>批量導入要素—>建立網絡資料集。

在網絡的屬性中,可以添加成本、等級和限制等屬性。成本用于累積計算最短路徑(一般為距離和時間);等級用于道路等級的劃分(使用等級執行網絡分析時,将應用啟發式算法,該算法在選擇道路時傾向于更進階别的等級);可以針對特定元素辨別限制條件,這樣在分析過程中,不可周遊限制元素。

2.     AE中的網絡分析

在AE中網絡分析對應于NetworkAnalyst命名空間。在這裡會用到很多不常見的接口INetworkLayer(網絡圖層),INetworkDataset(網絡資料集),INASolver(網絡分析求解器),INASolverSettings(網絡分析設定),IDENetworkDataset(資料元素網絡資料集),INAContext(網絡分析環境),INALayer(網絡分析圖層),INAClass(網絡分析類型),INALocator(網絡分析定位器)等待。

在網絡分析中,網絡資料集是一切分析的基礎,是以在進行網絡分析之前,首先要得到網絡資料集。将資料加載到AxMapControl之後,網絡資料集所對應的圖層類型為INetworkLayer,通過它的屬性INetworkLayer.NetworkDataset就可以的到網絡資料集INetworkDataset。

要想進行網絡分析,還需要建立一個網絡分析求解器(INASolver),并且根據不同的分析需求執行個體化不同的求解器類型,而不同的求解器類型中包含着不同的網絡分析類型(NAClass),不同的求解器接口又可以進行相應不同的設定(如INAClosestFacilitySolver可以設定預設目标設施點數量和預設成本切斷值即最大成本)。

如果要對網絡分析進行設定,則通過強制轉換将NASolver轉換為INASolverSettings,根據實際需要對其屬性進行設定。AccumulateAttributeNames用于設定多個累積機關字段,ImpedanceAttributeName用于設定成本字段,HierarchyAttributeName用于設定等級字段,UseHierarchy設定是否使用道路等級,RestrictionAttributeNames用于設定限制字段。

在INASolver和INetworkDataset基礎上使用INASolver.CreateContext方法建立網絡分析環境,使用INASolver.CreateLayer方法建立網絡分析圖層,在INALayer上就可以進行網絡分析了。在最近設施點分析(NAClosestFacilitySolver)中,事件點(Incidents)和設施點(Facilities)是兩個必要的網絡分析類型,是以在進行分析之前需要加載位置要素到網絡分析環境的網絡分析類型中,可以使用INAClassLoader批量加載,也可以将INAClass強制轉換為IfeatureClass然後通過CreateFeature添加單個要素。

準備工作完畢,使用ISolver.Solve方法進行分析計算。不同的分析求解器有不同的輸出要素類型,均包含在網絡分析環境中,可以對其進行查詢或其它操作。