原理:Geoprocessor是用py寫的腳本,它簡單語法,并可以調(diào)用大部分ArcGISToolBox里的現(xiàn)有工具,十分強大。Geoprocessing被稱之為地理處理,實際上就是ToolBox里的各種tools用py連接起立,連續(xù)處理而不用反復(fù)操作單個工具,流程化了。ArcGIS還提供了一個可視化的構(gòu)建Geoprocessor工具,叫ModelBuilder:如圖
緩沖區(qū)分析只用到一個工具,在工具箱的Analysis Tools->Proximity->Buffer。下面就是制作一個GP包。 1.準備數(shù)據(jù):一個點shp圖層。因為是一個緩沖分析,下一章我們要用SilverLight調(diào)用該服務(wù)做頁面的內(nèi)的緩沖分析,做一個點的緩沖分析,最后輸出一個shp。新建一個工作空間,供GP使用,默認的workspace是windowsuser的目錄,程序不能隨時創(chuàng)建。然后再里面創(chuàng)建一個shapefile,指定其坐標系為web Mercator。 將該圖層添加到ArcMap中,編輯,添加幾個測試點,保存。
2.準備GP工具的容器,新建,注意是下面那個,不是上面那個python Toolbox:將來在ModelBuilder里創(chuàng)建的腳本文檔只能存放在這里面。 3.創(chuàng)建GP腳本,打開ModelBuilder如下操作:
然后右擊ModelBuider的工作區(qū)域空白,設(shè)定其Model Properties中的Scratchworkspace: 設(shè)定該參數(shù)是讓tools可以引用該參數(shù),方式類似于window的系統(tǒng)變量:%scratchworkspace%;
添加featureclass,也就是創(chuàng)建的點圖層,然后用連接線將其指向buffer工具,然后選擇提示的inputFeatures選項,這是將該FeatureClass作為Buffer的輸入數(shù)據(jù)的引用:
雙擊Buffer工具,設(shè)定參數(shù)變量,緩沖20米,其他默認和輸入路徑: 注意那個引用方式。 然后整個工具的顏色就變成可運行的狀態(tài)了,如果某一個工具顏色還是白色,說明其參數(shù)沒配置好,檢查就可以:
4.運行測試GP:先點擊驗證√,然后點擊運行:最后在文件夾上刷新就看到結(jié)果,托放到ArcMap中,看看結(jié)果: 最后,最重要的是指定參數(shù)化,也就是將輸入和輸入都參數(shù)化,將來運行的時候可以默認我們設(shè)定的值,也可以指定參數(shù),實用性更強大,部署到ArcGIS Server中有實用價值: 右擊point和buffferdpoint如下:
保存該GP,選擇之前創(chuàng)建的tbx文件: 5.最后整個GP工具工作文件夾如下:
6.運行該腳本,為什么要如此?因為只有通過單獨運行的并且成功的GP才能被發(fā)布到Server中,之前在ModelBuilder中處于調(diào)試環(huán)境,單獨運行是在Python+arcpy環(huán)境下,需要設(shè)定全局變量以適應(yīng)我們的腳本中scrathworkspace:
右擊BufferModel,選擇run,結(jié)果在是在Geoprocessing->result中,右側(cè)就是運行成功之后,Current Seesion有一條記錄: 7:發(fā)布GP服務(wù):右擊上圖中restults,BufferModels,有一個選項,:
出現(xiàn)服務(wù)發(fā)布配置的界面,點擊Analysis,如果出現(xiàn)問題,會在下面有提示,雙擊該提示,一般是參數(shù)注釋之類的,填上即可: 如: 依次類推,所有的參數(shù)都要有說明文檔,直到Analysis沒有X號就可以點發(fā)布了。
8.在ArcGIS Server web管理頁面中驗證該服務(wù):打開Server的服務(wù)列表,找到剛發(fā)布的服務(wù),點到功能,點擊rest服務(wù):
成功。你的成功了沒?
總結(jié):GP實際上是一種py腳本,可以運行在ArcMap中,可以運行在Server中,運行在Server中就作為一種服務(wù)功能,稱之為Geoprocessor,很形象,地理處理器。簡化了以前使用.net開發(fā)一個服務(wù)器擴展的麻煩(SEO),相當?shù)暮唵危瑢τ贕IS開發(fā)者普遍開發(fā)水平不高的情況下,有很強的使用價值。缺點就是,性能慢。 Continued:下一節(jié),我們講使用SilverLight調(diào)用該服務(wù),在前端繪制一個點的緩沖分析,很有意思哦,期待吧。 |
|
|