1. 程式人生 > >arcgis api for js 之網絡分許服務發布

arcgis api for js 之網絡分許服務發布

兩個 準備 conn 地圖 有一個 最短路 text 轉折點 and

1.引言

百度地圖上有這樣的功能:點擊兩個點,地圖上會顯示對兩個點的路徑規劃。這個功能能否利用 arcgis api 實現呢?答案是肯定的。不過在實現之前,我們需要將數據發布為網絡分析服務,接下來我將介紹如何發布網絡分析服務。

2. 步驟

2.1 數據準備

首先,我們需要一個 gdb 數據庫,右擊這個數據庫,創建一個 feature dataset。

技術分享圖片

右擊剛創建的 feature dataset,import 我們進行分析所需要的道路數據。

數據導入成功之後,再次右擊這個 feature dataset,創建一個 network dataset:

技術分享圖片

為新建的網絡分析數據集命名。
技術分享圖片

一路點擊下一步,直到設置 connectivity 時。connectivity 主要是設置多個圖層之間的連通性和連接方式。我們主要關註的是這兩個點

  • connectivity policy

表示的是連接的規則。有兩個選項。第一個是 End Point,表示兩條線段僅在端點處才能連接。例如下面這張圖,l1 和 l2 設置連通性為 End Point 之後,雖然他們顯示為交叉,但是不能夠從圖中的 j1 經過拐點到達 j3。

技術分享圖片

第二個選項時 Any Vertex,表示線段上任意一個轉折點都可以和其他線段連接。還是上面那個例子,如果設置為 Any Vertex 之後,就可以從 j1 經過拐點到達 j3 了。

  • 連接組

連接組表示將這兩個圖層放在同一個網絡服務上,如果他們坐標一樣,顯示在地圖上有重合的部分,這些重合的部分會按照對應的連接政策連接。如果這裏 highroad 不勾選的換,那麽highroad 圖層和 road 圖層之間是不能連接的。

技術分享圖片

接下來設置圖層的 Z 坐標。即是否需要為每個圖層設置高程值,如果有設置高程值,不同高程的點之間是不連通的,我這邊選擇 None。

技術分享圖片

接下來的這步操作會影響到最終的路徑規劃。要選擇出兩點之間的最短路徑,我們需要有一個評判標準,例如長度、時間等,這裏我們一長度作為評判路徑長短的標準。選擇 Add,填入對應的名稱、類型、單位等值。關於 Usage Type 的詳細介紹可以看這裏

技術分享圖片

添加完之後,我們發現 Distance 字段前面出現了黃色感嘆號,表示這個評判標準不合法,我們點擊 Evaluators 來消除這個感嘆號。主要是為每個圖層的評判標準設置一個值,我們將每個圖層的 Value 都設置為圖層內部的 SHAPE_1_Length,表示長度。根據圖層包含字段不同,請自行設置。如果需要對字段進行計算之後再賦值,可以點擊右邊的這個圖標。
技術分享圖片

技術分享圖片

接下來設置 Direction 屬性,點擊 Directions 按鈕之後,將 Primary 的 name 屬性設置為任意一個字段,至於為什麽這麽還有待研究。註意,每個圖層都要進行這個操作。

技術分享圖片

點擊 下一步,顯示我們設置的信息,至此,我們數據準備步驟已經完成了。

2.2 服務發布

發布服務之前,我們需要開啟網絡分析權限,點擊 Customize - extensions,勾選 Network Analyst。打開 Network Analyst 工具條,新建一個 route。至此,數據準備完成了,開始發布數據。

發布過程跟發布基本的動態服務差不多,需要註意的是確保在 Capabilities 選項卡下勾選 Network Analysis。

技術分享圖片

點擊 Analyze 進行分析,沒有錯誤之後,點擊 Publish 發布服務。出現以下窗口之後,表示服務發布成功。

技術分享圖片

arcgis api for js 之網絡分許服務發布