【ArcGIS for Server】制作並發布GP服務--緩沖分析為例


   原理:

   Geoprocessor是用py寫的腳本,它簡單語法,並可以調用大部分ArcGISToolBox里的現有工具,十分強大。Geoprocessing被稱之為地理處理,實際上就是ToolBox里的各種tools用py連接起立,連續處理而不用反復操作單個工具,流程化了。ArcGIS還提供了一個可視化的構建Geoprocessor工具,叫ModelBuilder:如圖

image

 

緩沖區分析只用到一個工具,在工具箱的Analysis Tools->Proximity->Buffer。下面就是制作一個GP包。

1.准備數據:一個點shp圖層。

         因為是一個緩沖分析,下一章我們要用SilverLight調用該服務做頁面的內的緩沖分析,做一個點的緩沖分析,最后輸出一個shp。新建一個工作空間,供GP使用,默認的workspace是windowsuser的目錄,程序不能隨時創建。然后再里面創建一個shapefile,指定其坐標系為web Mercator。

image

將該圖層添加到ArcMap中,編輯,添加幾個測試點,保存。

 

2.准備GP工具的容器,新建,注意是下面那個,不是上面那個python Toolbox:

image

將來在ModelBuilder里創建的腳本文檔只能存放在這里面。

3.創建GP腳本,打開ModelBuilder如下操作:

image

 

然后右擊ModelBuider的工作區域空白,設定其Model Properties中的Scratchworkspace:

image

設定該參數是讓tools可以引用該參數,方式類似於window的系統變量:%scratchworkspace%;

 

添加featureclass,也就是創建的點圖層,然后用連接線將其指向buffer工具,然后選擇提示的inputFeatures選項,這是將該FeatureClass作為Buffer的輸入數據的引用:

image

 

雙擊Buffer工具,設定參數變量,緩沖20米,其他默認和輸入路徑:

image

注意那個引用方式。

然后整個工具的顏色就變成可運行的狀態了,如果某一個工具顏色還是白色,說明其參數沒配置好,檢查就可以:

image

 

4.運行測試GP:先點擊驗證√,然后點擊運行:

image

最后在文件夾上刷新就看到結果,托放到ArcMap中,看看結果:

image

最后,最重要的是指定參數化,也就是將輸入和輸入都參數化,將來運行的時候可以默認我們設定的值,也可以指定參數,實用性更強大,部署到ArcGIS Server中有實用價值:

右擊point和buffferdpoint如下:

image

 

 

保存該GP,選擇之前創建的tbx文件:

image

5.最后整個GP工具工作文件夾如下:

image

 

6.運行該腳本,為什么要如此?

因為只有通過單獨運行的並且成功的GP才能被發布到Server中,之前在ModelBuilder中處於調試環境,單獨運行是在Python+arcpy環境下,需要設定全局變量以適應我們的腳本中scrathworkspace:

image

 

右擊BufferModel,選擇run,結果在是在Geoprocessing->result中,右側就是運行成功之后,Current Seesion有一條記錄:

image

7:發布GP服務:

右擊上圖中restults,BufferModels,有一個選項,:

image

 

image

image

image

出現服務發布配置的界面,點擊Analysis,如果出現問題,會在下面有提示,雙擊該提示,一般是參數注釋之類的,填上即可:

image

如:

image

依次類推,所有的參數都要有說明文檔,直到Analysis沒有X號就可以點發布了。

 

8.在ArcGIS Server web管理頁面中驗證該服務:

打開Server的服務列表,找到剛發布的服務,點到功能,點擊rest服務:

image

 

image

image

 

image

image

image

image

成功。你的成功了沒?

 

總結:

GP實際上是一種py腳本,可以運行在ArcMap中,可以運行在Server中,運行在Server中就作為一種服務功能,稱之為Geoprocessor,很形象,地理處理器。簡化了以前使用.net開發一個服務器擴展的麻煩(SEO),相當的簡單,對於GIS開發者普遍開發水平不高的情況下,有很強的使用價值。缺點就是,性能慢。

Continued:下一節,我們講使用SilverLight調用該服務,在前端繪制一個點的緩沖分析,很有意思哦,期待吧。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM