ArcGIS Server Flex API調用GP服務的一般步驟 1、說明 ArcGIS Geoprocessing提供了大量地理處理和分析工具,可根據需要對這些工具進行組合構造自己的GIS分析模型,然後釋出成GP服務,以友善各種Web用戶端調用。Flex API中提供了通路GP服務的接口,通過該接口和GP工具,可實作具有進階GIS分析功能的Web應用。 2、模型建立與測試 建立模型可在modelbuilder可視化環境下進行,也可使用Python腳本定義。模型建立完成需要在ArcMap環境下測試是否正常運作。 詳細模組化過程請參考ArcGIS的幫助文檔。 3、GP服務釋出 釋出GP服務可使用兩種資源類型:GP工具;包含結果圖層的MXD文檔。其中包含結果圖層的MXD文檔釋出成GP服務時又有兩種選擇:一種隻釋出為GP服務;另一種釋出成MapService和GP服務。第二種方式可預先在MXD文檔中對結果圖層渲染,這樣可簡化用戶端的可視化工作。實際項目中選擇使用哪一種方式,需要根據具體業務需要确定,不能一概而論。 4、GP服務測試 (1)在ArcMap中加載MapService 注意為友善測試,該MapService不能使用釋出GP服務時一同釋出出來的MapService。 (2)在ArcToolbox中添加GP服務 将釋出的GP服務添加到ArcToolbox中,點選運作,生成的結果會自動添加到目前的地圖中。 5、ArcGIS Server Flex API調用GP服務示例 上面幾小節簡單的介紹了GP工具的制作和GP服務的釋出,本小節正式進入正題,講講如何使用ArcGIS Server Flex API調用GP服務。 GP服務分同步和異步兩種執行模式,Flex API也提供了兩種處理方式與之對應。Flex API調用GP服務使用的是Geoprocessor類。該類提供了execute(params)和submitJob(params)兩個方法調用背景的GP服務進行資料處理,其中execute(params)對應的是同步執行模式,執行完成觸發executeComplete事件。submitJob(params)對應的是異步執行模式,執行完成觸發jobComplete事件。對GP服務結果的處理我們可以定義在這些complete事件中。如果GP服務處理過程比較簡單而且耗費時間少,我們可以選擇同步執行模式,但如果比較耗時,為避免用戶端長時間等待,常使用異步執行模式。 為保證Flex API正常調用GP服務,在GP模型定義和GP服務釋出過程需要,還需要注意以下幾項: (1)在配置MXD文檔時,設定臨時工作空間 在MXD中添加完GP工具後,如果未設定臨時工作空間,則運作GP工具生成的結果将預設儲存在C槽下,該路徑會導緻GP服務無法讀取結果圖層,可通過設定臨時工作空間解決。設定方法:在ArcToolbox上右鍵選擇Environment,設定scratchworkspace的路徑即可。 (2)GP工具輸出路徑的處理 為友善通路輸出圖層,一般情況下使用環境變量來指定輸出路徑,即使用scratchworkspace變量,該變量指向ArcGIS Server的arcgisjobs目錄。例如:%scratchworkspace%\idwraster。 (3)輸出圖層中文字元處理 如果GP工具中輸出的圖層名包含中文,需要更改為英文名稱,否則添加到地圖上的結果圖層無法正常顯示。 本示例以生成等值面為例,資料使用ArcGIS自帶的World地圖,軟體環境使用ArcGIS Server9.3.1,ArcGIS for Flex API 1.3版本。示例代碼如下: (1)釋出服務 将包含GP工具的MXD文檔釋出成同名的地圖服務和GP服務。 (2)Flex調用GP服務 |