ArcGIS API for javascript開發筆記(六)——REST詳解及如何使用REST API調用GP服務

感謝一路走來默默支持和陪伴的你~~~

-------------------歡迎來訪,拒絕轉載--------------------

一、Rest API基礎

ArcGIS 平臺提供了豐富的REST風格的web服務,以ArcGIS REST API方式對外提供,我們通過ArcGISREST API可以訪問地圖服務、要素服務、影像服務、地理處理服務等多種類型的Web服務,這些服務可以來自Portal、online或是Arcgis server。

那麼如何使用這些ArcGIS REST API呢?我們可以使用常用的編程語言如javascript等構造http請求,然後解析以json格式返回。簡單講一下使用ArcGIS Server REST 風格調用web服務的過程

(1)構建請求url

         首先確定端點:包含服務類型的明確的url地址。

然後確定操作:不同的web服務支持的操作類型不同,如:地圖服務可以查找、識別、生成kml等。

其次確定參數:不同的操作需要不同的參數,入請求地圖服務需要地圖範圍參數。

最後確定輸出的格式:json、kmz、html等,

綜上所構建的url格式爲:

http://{ArcGISServer name}/ArcGIS/rest/services/{folder name}/{services name}/{service type}/{option}?{parameter2}={somevalues}&{parameter1}={some values}

(2)提交url請求到ArcGIS Server

(3)接收ArcGIS Server的響應

         ArcGISServer處理請求並返回響應到客戶端,這個過程分爲同步和異步。

Execute task:當同步執行的使用此操作,執行的特點是用戶需要等待結果被返回適用於短事務處理任務。

Submit job:適用於異步執行。當被異步提交時,用戶可以做其他的事情無須等待結果被加載完成,適用於長事務處理任務。

(4)解析和使用響應

         ArcGISServer rest web服務的響應可以是多種格式的,如json、kmz、圖片、html等,客戶端可以判斷響應成功還是失敗。

通常,ArcGISDesktop、ArcGISpro等客戶端與ArcGIS REST API進行交互,其交互的細節不必關心,但是都是ArcGIS REST API在默默的工作。以上是rest與server交互原理,然而使用ArcGIS javascript API 會集成上述四個步驟,不需要自己完成。

--------------------這是一條華麗麗的分割線---------------------

二、以GP服務爲例:  ArcGIS REST   API 可以做什麼:

(1).列舉了可用額工具及輸入輸出參數的屬性。

(2).同步執行。

(3).異步提交。

(4).獲取運行時的詳細工作信息,包括運行的狀態。

(5).使用地圖服務將運行的結果進行顯示。

(6).通過客戶端對返回的結果進行進一步的處理。

-----------------------這是一條華麗麗的分割線-----------------------

三、實戰篇

以一個已發佈並運行成功的gp服務爲例:關於該GP服務的製作和發佈在往期博客有詳解:點我! 再點我!

1.注意地址欄上構建的rest服務地址,回顧上述理論,會更加有心得體會。

2.查看發佈的服務目錄,瞭解每一個參數的類型、參數的名稱。


3.該服務在發佈時勾選了異步執行,所以會有submit Job操作,點擊submit job執行。

4.在第一欄中要求輸入excel,想必這是每一個人在執行過程中最爲頭疼的事情,該怎樣輸入呢?無從下手。


這時,就需要注意參數的類型,gp模型的類型與gp服務的類型存在對應關係,同時GP服務的類型又與ArcGIS javascript API中規定的參數類型存在對應關係,只有準確的找準參數,纔可以對這個參數按照api中規定的格式進行構造,參數對應表如下:


  很顯然,GPDataFile對應javascript中的<DataFile>,這時需要查找API中的DataFile參數的構建方法。具體在javascript調用GP服務的方法後面會慢慢整理,不再多述。

5.執行ing,此時你可以觀察服務的url,生成的結果在arcgis server所管理的服務目錄下,生成了一個唯一文件名的文件夾,其結果將會臨時存放在那裏。


6.執行成功,會看到esriJobSuccessed!此時,你應該多開森~~

7.點擊生成的結果進行預覽,應該就是想要的效果了,這個結果可以通過Arcgis javascript API添加到地圖上。


-----------------這是一條華麗麗的分割線------------------

本文的參考資料:

http://resources.arcgis.com/EN/HELP/ARCGIS-REST-API/index.html#/Resources_and_operations/02r3000000t9000000/

https://developers.arcgis.com/javascript/jsapi/parametervalue-amd.html

----------------------歡迎來訪,拒絕轉載----------------------


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章