arcgis rest api提供了簡單、開放的接口來通路和使用arcgis server釋出的服務。使用arcgis rest api通過url可以擷取和操作每一個服務中的所有資源和操作。
1、使用步驟
1)建構請求網址
b、确定操作:不同地理資訊系統服務支援不同的操作。不同的操作會傳回不同的結果。地圖服務可以地圖輸出,點選檢視,查找和生成kml。輸出地圖可以生成地圖,同時可以點選産看是否給出地圖服務圖層的屬性表。
c、确定參數:不同的操作需要不同的參數。例如,如果請求地圖圖檔,需要提供地圖範圍的四周角點坐标參數,也就是地圖覆寫範圍。
d、确定輸出格式:rest api支援很多輸出格式,例如json,kmz,圖檔和html。确定輸出格式的重要參數是f。在url請求的查詢字元串後面加上”f=<你的格式>”來确定輸出格式。例如:f=html傳回的資料格式為html;f=json傳回的資料格式為json;f=image傳回的格式為image等等。
我們就以上面的4個步驟來建構自己需要的url。一般來說,格式如下:
http://{arcgis server name}/arcgis/rest/services/{foldername}/{service name}/{service type}/{operation}?{{parameter1}={somevalues}&{parameter2}={some values}&…&{parameter}={some values}}
可以看到,整個url請求分為兩個部分,第一部分是服務的端點和操作類型,也就是“?”前面的部分;第二部分是查詢字元串,即請求參數,“?”後面的部分。
2)發送請求到arcgis server
送出url請求到arcgis server sending,可以不通過程式設計發送url請求。例如,隻需在網頁浏覽器的位址欄輸入網址,如ie或firefox。每種程式設計語言都用不同的提出請求方式。
3)接受伺服器的響應
接受arcgisserver的響應,arcgis server處理請求并傳回響應到用戶端。對于一個同步的工作,用戶端一直等待收到伺服器的響應。對于一部工作,伺服器發送一份工作編号來定期跟蹤用戶端的工作狀态。
4)解析伺服器響應
arcgis server rest web服務的響應可以是多種格式,例如json,kml,圖檔和html。用戶端可判斷響應時成功還是失敗。如果失敗了,用戶端可以判斷錯誤資訊。如果響應是成功的,用戶端可以解析響應所需的資訊,并恰當地利用這些資訊。
2、程式設計使用
參考代碼:


代碼隻是簡單的在一個圖層上加了一個點,注意以下2點:
(1)确定參數的json格式
(2)解析響應結果
對于{"addresults":[{"objectid":6,"globalid" : null,"success":true}]}這樣的json字元串構造了一個dictionary<string, list<dictionary<string, object>>>複雜的對象來儲存結果,如果是調用query操作,傳回的結果是一個featureset,可以使用featureset的fromjson來得到結果。
newtonsoft.json(json.net)下載下傳:
<a href="http://json.codeplex.com/">http://json.codeplex.com/</a>
參考:
1、基于 rest 的 web 服務:基礎
<a href="http://www.ibm.com/developerworks/cn/webservices/ws-restful/">http://www.ibm.com/developerworks/cn/webservices/ws-restful/</a>
2、arcgis用戶端開發學習筆記(五)——arcgis rest api基礎
<a href="http://www.cnblogs.com/carlbiao/archive/2010/09/09/1822419.html">http://www.cnblogs.com/carlbiao/archive/2010/09/09/1822419.html</a>
3、java中調用arcgis server rest api
<a href="http://www.cnblogs.com/esrichina/archive/2013/02/01/2889224.html">http://www.cnblogs.com/esrichina/archive/2013/02/01/2889224.html</a>
本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利。
http://www.cnblogs.com/luxiaoxun/p/3364107.html