1. 程式人生 > >【技術貼】ArcGIS Runtime for Xamarin 洪荒之力-查詢路徑

【技術貼】ArcGIS Runtime for Xamarin 洪荒之力-查詢路徑

我們要去一個陌生的地方經常會在地圖上查詢路線,現在一般的地圖軟體都有查詢路徑功能。輸入出發地,目的地,輕輕一搜,一條路徑就給顯示出來了,非常方便我們的出行。那麼這個功能是這麼做出來的呢,今天我們就介紹ArcGIS Runtime 是怎麼做到的。

本文采用的是ArcGIS Runtime for Xamarin 版本實現的,其他的版本均可以實現。

ArcGIS Runtime 能做到什麼

  • 計算點對點和多點路線

  • 優化結果找到最短的或最快的路線

  • 重新排序來找到最好的路徑

  • 設定避免限制區域和障礙區

  • 指定站點的通過時間段(只在某一個時間段可以通過該點)

1基礎知識

ArcGIS Runtime 

實現路徑分析的主要的類是route task

一個route task是一個網路分析的任務。通過執行這個任務可以在交通網路上得到倆個或者倆個位置的通達的解決路線。    

交通網路可以是道路、橋樑、隧道、自行車道、鐵軌和網路以及這個網路中的其他元素,道路的十字路口表示網路可以連線,障礙點表示網路不可以通過,通過分析網路的連通性來找到目標路線。

2詳細步驟

有了以上的簡單瞭解,我們就開始step by step 實現這個功能,總共分為六步

  1. 選擇網路分析資料來源

  2. 建立route物件

  3. 指定route任務引數

  4. 指定開始位置,結束位置和障礙

  5. 執行route任務

  6. 視覺化顯示路徑

1選擇網路分析資料

ArcGIS Runtime 的網路資料可以是線上的服務,也可以是離線的本地資料,但不管你使用的線上還是離線的實現的整個過程的是一樣的。線上服務可以選擇Esri公司的釋出的ArcGIS Online,你也可以自己製作釋出網路分析服務,具體釋出流程請訪問官方教程

2建立route物件

 route task 是一個重要的物件,通過設定 該物件的 空間參考,起始點位置,障礙點位置,就可以獲得到要分析的滿意路徑。本例中使用的是線上服務

 

3指定route任務引數

 route task 有許多個引數,通過這些引數可以允許你自定義路徑,比如你設定站點位置,障礙點位置。route task 也有多種執行路徑模式,不同的模式也會產生不同的結果。其中 spatial reference

屬性必須和地圖的一致。


4指定開始位置,結束位置和障礙


5執行route任務

當設定完以上的引數以後,就可以得到結果了,只需要一行程式碼


6視覺化顯示路徑

得到了查詢的路徑我們當然希望將路徑顯示在地圖上了,為此我們要做一下視覺化展示的工作,用一個紅色的線的來呈現路徑。


最後的成果


怎麼樣 是不是很酷,簡簡單單的六步就實現一個路徑查詢功能的,趕快來試試吧。 

下圖是一個iOS版本的路徑執行結果


除了二維平面導航路徑以外,還可以做三維的路徑,這樣對於我們有時候在一棟大樓裡面找一個商店或者在一個樓裡面開會尋找小夥伴非常管用,下圖中直接從一樓導航到三樓。


總結

duersi

        一路狂貼程式碼,ArcGIS Runtime 洪荒之力只用冰山一角,路徑分析是一個非常實用的功能,希望通過這篇文章對大家的工作有所幫助,另外提一句 ArcGIS Runtime for Xamarin這個版本可以使用C#開發ArcGIS 跨平臺的移動產品, 比如Android 和iOS。

後續關於ArcGIS Runtime 的文章會有

ArcGIS Runtime 裝置定位,

ArcGIS Runtime 3D,

ArcGIS Runtime 線上離線,

ArcGIS Runtime 符號化渲染,

ArcGIS Runtime 結合VR初探,等多篇文章,請大家持續關注