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

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

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

1、Rest API基礎java

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

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

(1)構建請求urljson

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

而後肯定操做:不一樣的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服務爲例:

1.      首先ArcGISREST 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

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

相關文章
相關標籤/搜索