天天看點

C#調用ArcGIS REST服務

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、程式設計使用

參考代碼:

C#調用ArcGIS REST服務
C#調用ArcGIS REST服務

代碼隻是簡單的在一個圖層上加了一個點,注意以下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