GP(Geoprocessing)服務的發佈與調用

轉自:http://www.cnblogs.com/gisangela/archive/2011/01/06/1927702.htmlhtml

一、什麼是GP服務 web

   GP服務是Geoprocessing服務的簡稱,Geoprocessing包含了一系列地理數據處理的功能,像作緩衝區分析、疊加分析、以及對柵格數據製做陰影圖等等。在桌面軟件中能夠經過ArcToolbox中的工具直接調用Geoprocessing的功能,而若是指望經過web來調用GP的功能,就必須藉助於GP服務了。Esri的幫助文檔中介紹了發佈GP服務的兩種方式: app

Publish a geoprocessing toolbox. Each tool in the toolbox becomes a task in the geoprocessing service.  異步

Publish an ArcMap document containing geoprocessing tool layers. Each tool layer becomes a task in the geoprocessing service.async

    也就是說咱們既能夠將某個工具單獨發佈爲一個服務,也能夠將該工具做爲一個工具圖層(tool layer)和地圖文檔一塊兒發佈,這樣會同時獲得同名的一個地圖服務和一個GP服務。這裏地圖服務中的圖層能夠當作GP任務的數據源,也能夠利用工具圖層獲得的結果來控制最後輸出圖層的符號。工具

二、如何發佈GP服務——buffer爲例測試

   2.1 案例介紹ui

    這裏咱們使用ArcTutor\Using_ArcGIS_Desktop\MexicoPopulationDensity.mxd【已經安裝ArcTutor練習數據】做爲地圖服務,而且調用GP中的Buffer工具來進行緩衝區的建立。這裏咱們採用地圖文檔和工具一塊兒發佈的方式,GP服務的輸入爲經過和地圖交互獲得的點(即feature set),而直接使用buffer工具的話輸入參數只能是要素類或圖層,因此須要經過ModelBuilder製做模型來讓GP服務正確讀取輸入參數。spa

   2.2 準備模型htm

   在ArcTutor\GP Service Examples\BufferPoints目錄下,會看到已經制做好的示例模型。在這裏截圖展現:

    

具體的操做步驟爲:

(1)在該文件夾中建立自定義工具箱,右鍵——new——toolbox,命名爲BufferService

(2)在該工具箱中新建模型,右鍵——new——Model

(3)在打開的ModelBuilder界面中,將Analysis工具箱中Buffer工具拖放進去,如今工具尚未輸入參數,而根據要求輸入是用戶跟地圖交互時產生的。這就須要咱們進行下面的設置;

(4)Buffer工具上右鍵菜單中設置變量——從參數——輸入要素;

    

     

(5)如今一個完整的模型流程已經建立好了,可是還處於不可執行狀態。由於咱們還未指定輸入數據源,這裏就須要藉助一個空的要素類來做爲feature set的模板。這裏咱們新建一個geodatabase,在其中新建一個point類型的要素類;

(6)Input Features右鍵屬性的Data Type選項卡中,指定「select data type」的類型爲Feature Set,「Import schema and symbology」爲上面一步中建立的要素類;

   

(7)如今模型就會變成彩色的,便可執行狀態。爲了之後便於修改緩衝區距離這個參數,咱們也用第四步中的辦法把距離參數提取出來,做爲模型的參數。OK,到這一步咱們的模型就製做完畢了,下一步咱們在ArcMap中測試一下模型;

(8)MexicoPopulationDensity.mxd打開,把製做好的模型添加進去,模型自動會被識別爲工具圖層。打開工具,按照提示經過與地圖交互的方式得到輸入的若干個點,點擊OK執行,可以順利獲得點的緩衝區那麼測試就經過了。如今取消剛生成結果圖層的可見性,保存地圖文檔,下面一步要作的就是發佈服務。

   2.3 發佈服務

   打開ArcCatalog,在該地圖文檔上彈右鍵菜單,選擇Publish toArcGIS Server,指定名稱後點擊下一步,如圖所示這裏除了Mapping service以外還會出現Geoprocessing Service

 

三、如何調用GP服務——Flex API

 

   GP服務的執行有兩種方式,同步(synchronous)和異步(asynchronous),同步的調用方法爲execute,異步的調用方法爲submitJob,區別詳見幫助。下面一段就是使用Flex API調用GP服務的代碼,這裏GP服務的名稱爲BufferPoint,測試環境爲Flex Builder 3+ArcGIS Server 9.3

相關文章
相關標籤/搜索