版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
使用ArcGISGP服務(wù)發(fā)布
我們首先看一下,Ge叩rocessing框架,我們要緊是通過這些框架來進(jìn)行
Geoprocessing處理的。我這里使用的是ArcGIS10.1spl版本。
第一個,ArcToolBox,這里是系統(tǒng)自帶的工具,只能復(fù)制與粘貼,不能手工的
創(chuàng)建。
ArcToolboxnX
ArcToolbox
田?3DAnalystTools
1+10AnalysisTools
田奧CartographyTools
i+)?ConversionTools
?能CoverageTools
l+l沛DataInteroperabilityTools
?既DataManagementTools
S?EditingTools
?沿GeocodingTools
田&Geostatist!calAnalystTools
?汾LinearReferencingTools
S電MultidimensionTools
?qNetworkAnalystTools
l±J既ParcelFabricTools
I+I翁SchematicsTools
l±l礴ServerTools
田?SpatialAnalystTools
l±l量SpatialStatisticsTools
田電TrackingAnalystTools
第二個,是Dialog,也就是對話框,點擊某一個模型或者者工具。能夠輸入一
些參數(shù),將結(jié)果輸出出來。
第三個,是ModelBuilder,我們能夠點擊七圜由里面巴扣,能夠點擊
最右側(cè)的那個按鈕。在下面的文章,我們將使用這個工具來建模,然后公布成
GP月員務(wù)。
卜Model
ModelEditInsertViewWindowsHelp
0合務(wù)說I8x、。電
第四個,是Python工具,我們點擊庭國由國廟巴扣,倒數(shù)第二個按鈕。
另外我們說一下,工具分為多種類型的。
類型I描述
系統(tǒng)工具Z在系統(tǒng)里安裝注冊。通常這些工具都是在安裝ArcGIS軟件時
一起安裝并注冊的。ESRI提供了數(shù)百個這樣的工具,放在系
統(tǒng)工具箱里。Add>Tool
模型工具“用ModelBuilder創(chuàng)建的工具,系統(tǒng)工具箱里也有一些模型工具。
New>Model
腳本工具%用腳本語言創(chuàng)建的工具,系統(tǒng)工具箱里也有一些腳本工具。
Add>Script
定制工具統(tǒng)由系統(tǒng)開發(fā)人員創(chuàng)建,有自己獨立的UI。目前數(shù)據(jù)互操作擴(kuò)
展模塊是唯一的這類工具。New>SpatialETLTool
建模,是我們公布GP服務(wù)的第一步,這是基礎(chǔ)功。我們?yōu)槭裁匆D兀?/p>
關(guān)于現(xiàn)實的GIS業(yè)務(wù)來說,基本上都有相應(yīng)的流程與規(guī)范,具體怎么做,
都得按照步驟來。步驟少還好說,要是步驟多了,不僅效率低下,而且還容易出
現(xiàn)工作錯誤,每一步都會產(chǎn)生中間文件。比如我們的天氣預(yù)報,將收集各個氣象
站站點定位到地圖上,然后剪出中國的版圖來,再然后進(jìn)行克里金差值等等,一
些步驟以后,就能夠得到相應(yīng)的溫度線或者者降雨線。步驟都是規(guī)定好的,為什
么不做成一個工具,然后直接輸出結(jié)果呢?
對,這就是建模的好處,我們通過將多個工具組合起來,生成一個工具,來
完成整體的步驟化。
上一篇博客介紹了,我們首先打開ModelBuilder。假如不明白怎么打開,
請看上一篇博客吧。
首先介紹一下,我們要實現(xiàn)的一個過程,某一個地方發(fā)生污染,周圍什么城
市將受影響,我們這里只考慮距離吧。
下面是我們整個建模的思想。
1:得到受污染的區(qū)域2:進(jìn)行緩沖3:將在緩沖區(qū)的城市選出來。
第一步,新建模型
□合電x電,||區(qū)]國13月1150.
最右側(cè)的按鈕。
第二步,拖入工具
我們能夠?qū)F(xiàn)有的工具,直接拖到這里面來。比如我拖一個Buffer工具。
二9looiooxes
0MyToolboxes
Id0SystemIoolboxes
田?3DAnalystTools.tbx
□?AnalysisTools.tbx
?£,Extract
S£?Overlay
□Proximity
Buffer
“tCreateThiessenPolyc
,GenerateNearTable
港MultipleRingBuffer
Near
“oPointDistance
“PolygonNeighbors
?&Statistics
事實上假如找不到的話,我們能夠進(jìn)行一個搜索,快捷鍵Ctrl+F。
?4金C1]&▼LocalSearch
ALLMapsDataTools
(analysis)a
AnyExtent▼
Searchreturnee6items▼SortBy▼
電Analysis(Toolbox)
TheAnalysistoolboxcontainsapowerful...
toolboxes\systemtoolboxes\analysistoo...
'Buffer(Analysis)(Tool)
Createsbufferpolygonsaroundinputfea...
toolboxes\systemtoolboxes\analysistoo...
3:MultipleRingBuffer[Analysis)(Tool)
Createsmultiplebuffersatspecifieddist...
toolboxes\systemtoolboxes\analysistoo...
「Buffer3D(3DAnalyst)(Tool)
Createsa3Dbufferaroundpointorline...
toolboxes\systemtoolboxes'3danalystto...
3:GenerateServiceAreas(NetworkAnal...
Createsaserviceareanetworkanalysis...
toolboxes\systemtoolboxes\networkanal...
*MakeServiceAreaLayer(NetworkAn...
MakesaserviceareanetworkanalysisI...
toolboxes\systemtoolboxes\networkanal...
拖進(jìn)之后的樣子。
我們雙擊Buffer,我們能夠看到Buffer的很多參數(shù),前面帶綠點的參數(shù)是
必填的。
?InputF?atur?s
I3回
?OutputF??tur?Class___
日
>Distanct(velu?or£i?ld]
OLinearunit
D?CIM*1d?(r??s▼
?Field
Sid*Type(optional)
FULL▼
EndTypt(optional)
ROUND▼
Dissolv?Typ*(?ptiontl)
NONE▼
DissolvtFi?Id(s)(option*!)
I~I
第三步,設(shè)置參數(shù)
參數(shù)分為兩種方式填,一種直接填在這里面,另夕h-種是作為參數(shù)。有綠點
是必填的,假如不輸入這些參數(shù),這個工具是黑白色的,不是彩色的。
比如我在這里輸入Linearunit:1單位選擇為Decimaldegrees。
假如是以參數(shù)的方式,來添加的話,有兩種方法添加。
?先說第一種,右鍵buffer,選擇MakeVariable-FromParameter。我
們看到后面的參數(shù),與上圖的參數(shù)是一樣的。只是還是缺少了一個Out
看一下右側(cè)是什么?這是拖進(jìn)來,自動就
putFeatureClassoBuffer
把這個參數(shù)添加進(jìn)來了,我這里點擊選授Distance[valueorfield]。
MakeVariableFromParameterInputFeatures
CreateLabelFromEnvironmentDistance(valueorfield]
ViewMessages...SideType
CndType
CopyDissolveType
DeleteDissolveField(s)
Rename-
SwitchToWctureSymbol
DisplayProperties...
CfProperties...
由于之前,這個參數(shù),我已經(jīng)設(shè)好值,因此說顯示的是彩色的。后面的兩個
還是沒有變成彩色,說明這個buffer還缺少一個必填參數(shù)。就是Input
Featureso
注意,我們點擊這個Distance參數(shù),也是能夠修改這個參數(shù)值的。
DistanceOutput
[value
我們這時候,使用第二種方式。
在這里建模空白區(qū)域,右鍵選擇CreateVariable(創(chuàng)建變量),選擇我們需
要使用的參數(shù)類型,我們這里選擇FeatureSet。
CreateVariableF'一|
Selectthevariabledatatype.
Extent
ExtractValues
FeatureClass
FeatureDataset
FeatureLayer
FeatureSet
Field
FieldInfo
FieldMappings
Multivalue
|OK
點擊囪,然后點擊FeatureSet,一直拖著鼠標(biāo)不放到Buffer,然后松開。
然后會出現(xiàn)與這個類型匹配的,參數(shù)名字,這里我選擇
InputFeatureso
按理說,這里我已經(jīng)完所有的參數(shù),應(yīng)該變成彩色才對。回頭想一下,應(yīng)該
是FeatureSet沒有設(shè)置成功應(yīng)該一些參數(shù)沒有設(shè)置對。我們點擊FeatureSet。
在這里我選擇了一個區(qū)的shp文件。點擊確定。
我們再去看一下,我們的模型,都變成了彩色。說明我們這個務(wù)必參數(shù)已經(jīng)
設(shè)置正確,正確與否,還不能確定。
我們先點擊那個.,進(jìn)行檢驗一下啊,是否正確。爭取的話,我們點擊?O
運(yùn)行完畢之后,但是并明白結(jié)果怎么樣。
這個時候,我們能夠右鍵這個選擇
OutFeatureClass,AddToDisplay0
Output
Fe
Open...
ModelParameter
Managed
“AddToDisplay
mediate
CreateLabel
ViewMessages...
Cut
0Copy
XDelete
Rename...
SwitchToPictureSymbol
DisplayProperties...
Properties...
假如不這么辦的話,也是能夠使用其他的方法的,點擊OutFeatureClass,
我們這樣就能夠明白整個的輸出地址什么了,當(dāng)然作為參數(shù)我們也能夠自己進(jìn)行
手動的設(shè)置。
UutputfeatureLlass
D:\Users\Max\Docwnents\ArcGIS\Default.gdb\polygon_Buffer
現(xiàn)在完了嗎?事實上關(guān)于輸入FeatureSet我想進(jìn)行一個手動畫一些區(qū)域,
然后進(jìn)行一個緩沖區(qū)生成,來在Desktop上的一個檢驗。
把原先的"InputFeatures”參數(shù)還原成最初的樣式吧。
在這之前,我們需要在Geodatabase文件中新建一個FeatureClass,其
中類型選擇為什么要建立這個呢?由于我們需要將這個模板
PolygonFeatureo
引入到這個參數(shù)中,讓Desktop明白我們要輸入的是點、線還是面之類的,
右鍵這個屬性,選擇進(jìn)入標(biāo)簽,然后剛才我們新
PropertiesoDataType
建的
FeatureClasso
稍等,還有一步需要完成,右鍵這個參數(shù),然后選擇ModelParameter.
這個時候,就會出現(xiàn)一個Po所有出現(xiàn)P的,這個模型作為使用,都需要在使用
的時候,作為其中一個參數(shù)出現(xiàn),沒有把它寫死。那個緩存長度,由于沒有加P,
使用的時候,參數(shù)都是死的,不能進(jìn)行改變,除非重新編輯這個Model,但是
一旦公布成服務(wù),就不能更換了。因此說,在使用之前,一旦要想好,那些參數(shù)
是死的,什么參數(shù)是在使用的時候,才能確定的。
為了GP服務(wù)的使用,參數(shù)的名字將會作為參數(shù)名稱來提交的,為了更好的
懂得意思,最好更換一下名字,比如說,上圖的"FeatureSet",更換為
n
ContaminatedAreas"o
這個時候,我們來儲存這個模型吧。
第四步,初入驗證模型
打開這個模型。
ContaminatedArcas
Conlmin?t?dAr?es
|C0nttAtn?t?dAr?as:ContMiin?t?dAr?*sZJ圄
^]ContaAin*t<dAr??s
OutputFeatureClass
D:\Users\M&x\Docun>ents\ArcGIS\Default.gdb\polygon_Buffer
pCJ|Can:eiCnwoments...?rtdeHe|p
然后在Desktop畫區(qū)域吧。
然后點擊“OK”,等待整個的運(yùn)行完畢。
到了這里,我們緩沖區(qū)域基本上就夠完成了。下面我們就要整體構(gòu)建我們模
型了。根據(jù)模型選擇城市。
第五步,完成模型
我們這個時候,需要添加一個新的工具,把第一
selectlayerbylocationo
步的輸出結(jié)果,作為第二個工具的參數(shù)SelectingFeatures。然后再添加一個
InputFeatures參數(shù),選擇相應(yīng)的圖層。等等?!恪?。。
最后我們實現(xiàn)整個模型,是這樣的。
第六步,最后驗證模型
10.1版本,為了更加保證模型,沒有錯誤,需要先進(jìn)行跑一遍才能夠公布。
在這里我添加了原先畫的區(qū)域,我是怎么做到的呢?很簡單。點擊
Geoprocessing-resultso
B1clCurrentSession
S扣ContaminatedAreas[233747_11112012]
EresultCity:res2_4m_CopyFeatures2
fflOutputFeatureClass:polygon_Buffer
Q。Inputs__________________________
畫ContaminatedAreas:<datainIoc2
oDistance[valueorfield]:1Decime
SbEnvironments
Etl0Messages
l+l扣ContaminatedAreas[233517_11112012]
S扣ContaminatedAreas[230315_11112012]
l+,由PreviousSession
gShared
然后把選中的,直接拖進(jìn)去,就能夠顯示了,就能檢驗我們輸入正確與否。
這一博客,確實有些長了。
下一個博客,我們就要做公布前的準(zhǔn)備了。
這里的準(zhǔn)備分為兩部分,分別是數(shù)據(jù)整理與環(huán)境設(shè)置。
數(shù)據(jù)整理I
上面我們使用到全國要緊城市圖,新建的FeatureClass,中間與最后生成
的等等數(shù)據(jù),我們最好數(shù)據(jù)整理一下。
上圖是我們常見的一個數(shù)據(jù)結(jié)構(gòu)圖。
ToolData在這里面,我們能夠放置我們的底圖Geodatabase與Schema
Geodatabase。何為Schema,上面我們新建的FeatureClass,類似一種模板。
Scripts能夠放置一些python腳本文件,具體腳本文件,請看下一篇關(guān)于
python集成ModuleBuilder,生成工具。
Doc能夠放置一些說明文件。
Scratch放置一些中間數(shù)據(jù),比如上一個博客我們生成的緩沖區(qū)文件,就能
夠放置在這里。
比如這是我新建的文件列表
二£3tools
QDoc
SBScratch
JIScratch.gdb
QScripts
ElQToolData
日」china4m.gdb
國bou2_4p
Aibou2_4p_anno
回res2_4m
0ijschema.gdb
畫polygon
E?tools.tbx
?ContaminatedAreas
@China.mxd
環(huán)境設(shè)置|
地理處理環(huán)境設(shè)置是影響工具執(zhí)行結(jié)果的附加參數(shù)。這些參數(shù)與常規(guī)工具參
數(shù)的區(qū)別在于它們不可能顯示在工具對話框中(存在某些例外情況)。更確切地
說,這些參數(shù)是先前使用獨立對話框設(shè)置的值,工具在運(yùn)行時將詢問與使用這些
參數(shù)。
環(huán)境設(shè)置有四個級別:
?應(yīng)用程序級別設(shè)置是默認(rèn)設(shè)置,執(zhí)行任何工具時均應(yīng)用該設(shè)置。
?工具級別設(shè)置適用于工具的單次運(yùn)行同時會覆蓋應(yīng)用程序級別設(shè)置。
?模型級別設(shè)置使用某種模式指定與儲存,同時會覆蓋工具級別設(shè)置與應(yīng)用
程序級別設(shè)置。
?模型過程級別設(shè)置在模型過程級別指定,隨模型一起儲存,同時會覆蓋模
型級別設(shè)置。
應(yīng)用程序級別,我們點擊ArcMap-Geoprocessing?Environment。
我EnvironmentSettings
這里我們將Workspace-CurrentWorkspace設(shè)置到第一個圖的
ToolShare文件,然后ScratchWorkspace設(shè)置到圖中的Scratch文件夾。
然后,調(diào)整我們的工具,需要中間文件與最后生產(chǎn)的文件,都放置在相對
Workspace路徑下。右鍵我們之前編輯的工具,然后點擊Edit。找到相應(yīng)的輸
出文件或者輸入文件模塊,雙擊打開,設(shè)置為相對地址。比如我這里設(shè)置的最后
的輸出文件,%scratchworkspace%,就代表上面的ScratchWorkspace路徑。
?resultCity
等等,我們還得去完成一件情況,就是需要設(shè)置我們新建的module需要
設(shè)置儲存為相對路徑。當(dāng)然也需要將MXD文檔設(shè)置為相對路徑。編輯模型-菜
單欄Model-ModelProperties一圈中下面標(biāo)紅的。建議來說,MXD文檔之類的
工程,最后設(shè)置為相對路徑,直接就拷貝使用。
可能,很多人不明白為什么需要設(shè)置ArcM叩的Workspace?我們需要在
ArcMap中跑一遍,驗證是否正確,因此需要修改環(huán)境變量。在Server使用
GP服務(wù)當(dāng)中,每一次請求的時候,都會產(chǎn)生一個job,這個job會有自己的環(huán)
境變量,這樣一來,就能夠保住整個數(shù)據(jù)不可能互相影響。
我們儲存所有的設(shè)置之后,然后重新運(yùn)行一遍。下面我們就要進(jìn)行服務(wù)的公
布了。
所有的數(shù)據(jù)與環(huán)境都配置好以后,我們就需要公布GP服務(wù)了。關(guān)于ArcGIS
10.1,公布GP服務(wù)方式改變了,得需要ArcM叩幫助。我們能夠先將這個服
務(wù)打包定義,然后發(fā)給別人,使用Sever公布,也能夠直接使用Server公布。
不論怎么樣,都需要預(yù)先在ArcMap跑一遍。
菜單欄Geoprocessing-Results查看結(jié)果。
□心CurrentSession
0扣ContaminatedAreas[000744_11182
曰resultCity:resultCity
畫polygon_Buffer:polygon_Buffer
E?Inputs
E&Environments
S0Messages
心Shared
服務(wù)公布j
為什么需要跑一遍呢?之前我們模型定制完成之后,直接公布,沒有驗證,可
能使用GP服務(wù),就出現(xiàn)問題。因此,這樣一來,先跑一遍,就能夠處理這些問
題,然后再去公布。
1:選中結(jié)果
右鍵當(dāng)前結(jié)果,ShareAs-GeoprocessingService。
2:點擊PublishaService
這里有是三個選項第一個意思是公布一個新服務(wù)第二個將服務(wù)打包定義模
型當(dāng)中使用到的數(shù)據(jù),模型,服務(wù)設(shè)置),第三個意思是,重新覆蓋當(dāng)前的一個
模型。
3:設(shè)置服務(wù)名字
上面的connection,需要預(yù)先在catalog當(dāng)中設(shè)置好,具體怎么設(shè)置,能夠
在這里添加一個。
???一?
日曲GISServers
免AddArcGISServer
關(guān)AddArdMSServer
至AddWCSServer
?光AddWMSServer
電AddWMTSServer
4:設(shè)匐艮務(wù)文件路徑
能夠使用現(xiàn)有的,也能夠新建一個"文件夾二
5:服務(wù)參數(shù)設(shè)置
下面要緊介紹比較常用的參數(shù)。
(5.1)General
這里面的參數(shù),就是根據(jù)前面的設(shè)置,列出來的,不能改變。能改變的,
就是設(shè)置是否服務(wù)公布的時候,是否立即啟動。
(5.2)Parameters
ExecutionMode,同步與異步定義了客戶端(使用任務(wù)的應(yīng)用程序)如何
與服務(wù)器進(jìn)行交互與如何獲取任務(wù)結(jié)果。服務(wù)設(shè)置為同步時,客戶端將等待任務(wù)
完成。通常,同步任務(wù)的執(zhí)行速度很快,大概需要5秒或者更短。異步任務(wù)的
執(zhí)行往往花費的時間較長,客戶端務(wù)必定期向服務(wù)器發(fā)出詢問以確定任務(wù)是否已
完成,假如完成,則獲取結(jié)果。使用異步任務(wù)的Web應(yīng)用程序務(wù)必添加函數(shù)
邏輯來檢查任務(wù)狀態(tài),并在執(zhí)行完畢后處理結(jié)果。不一致的方式,在代碼當(dāng)中使
用的函數(shù)是不一樣的。
Viewresultswitham叩service,公布地理處理服務(wù)時,能夠選擇以地圖
形式查看服務(wù)所有任務(wù)的結(jié)果(與任務(wù)的其他結(jié)果)。這一地圖使用ArcMap創(chuàng)
建在服務(wù)器上,以將其以圖片格式(如jpeg)傳輸回客戶端。返回地圖的符號
系統(tǒng)、標(biāo)注、透明度與所有其他屬性與當(dāng)前ArcMap會話中的輸出圖層完全相
同。使用結(jié)果地圖服務(wù)的原因如下:
?假如您的任務(wù)輸出大量的要素而且需要客戶端進(jìn)行符號化與繪制,那
么關(guān)于該客戶端來說,接收一幅地圖可能會更迅速、更簡便。
?用于顯示結(jié)果的最好方法中所需要的功能在ArcMap中有,但在客
戶端不存在。
?由于數(shù)據(jù)分發(fā)的原因,您不希望向客戶端發(fā)送任何要素,而僅僅是發(fā)
送地圖圖像。
?您任務(wù)的結(jié)果是一個不可傳輸?shù)臄?shù)據(jù)集,比如TIN或者CAD工程
圖。向客戶端發(fā)送地理狀況的唯一方法是通過地圖圖像。
?假如輸出圖層要繪制唯T直,則可能需要取消選中圖層屬性中的<
所有其他值〉以在繪制之前強(qiáng)制重新計算唯一值。有關(guān)全面信息,請
參閱創(chuàng)建圖層符號系統(tǒng)文件。
?假如您希望客戶端只能查看數(shù)據(jù)而無法下載數(shù)據(jù),可在公布時將服務(wù)
器返回的最大記錄數(shù)選項設(shè)置為零。
選擇此選項后,服務(wù)器上會自動生成一個地圖服務(wù),其名字同您的地理處
理服務(wù)相同。
另外能夠設(shè)置,返回的條數(shù)。
(5.3)ContaminatedAreas
這個名字,當(dāng)然是根據(jù)你的名字自動生成的,可能你的模型不是這個名字。
事實上第二篇,我欺騙了大家,在代碼當(dāng)中傳到后臺的參數(shù)名字是能夠通
過這里更換的。
(5.4)ItemDescription
這里盡管對功能沒有影響,但是不填的話,會不能公布服務(wù)的。
最后點擊
Publisho
服務(wù)目錄
<-CD127.0.0.l:6080/arcgis/rest/services/GP/ContaminatedAreas/GPServer
OGISCJ零聲CJ0M-S口HELPCK?+CJ下"口震樂□讀書U)云計,U)舊技術(shù)沙龍
電此網(wǎng)頁為英文▼網(wǎng)頁,是否震要翻譯?翻深否
ArcGISRESTServicesDirectory
Home>services>fiP>CorUdminateclAreds(GPServer)
JSON|SOAP
GP/ContaminatedAreas(GPServer)
ServiceDescription:先通過區(qū)域設(shè)用,然后根據(jù)緩沖長度,然后得到受再染的城市
Tasks:
?ContamiocledAreas
ExecutionType:esrlExecutionTypeAsynchronous
ResultMapServerName:
MaximumRecords:1000
ChildResources:Info
打開Server服務(wù)目錄,查看一下,這就是我們公布后的結(jié)果。
具體怎么使用,請看下一篇JavaScriptAPI來調(diào)用
使用前的熟悉
?Q>>/■,SIAJE、/-r,,u
Dotsa?/ODK?UHUPOC..O下?□u策U??DirtiDr>w*s
電WS苑文.網(wǎng)員.是百"。海?0i?9
ArcCISKfSTS?rvtc*sDirectory
Home>、ervX*5>fi£>ContaminatcdArea、(GPServer)
KQMIS3
GP/ContaminatedAreas(GPServer)
ServiceDescription:先也連RXWH.然后搐■子冷長度,然后傅用bSQ的城希
Tasks:
ExecutionType:e<n£xe<ut>onTypeAsynchfonou$
ReMihMapServerName:
MaxknumRecords:1000
CbUdResourcesm'o
這是上一個博客留下的最后一張圖,GP的服務(wù)目錄,我們通過點擊Tasks
下面的一個鏈接地址送入。這個地址,需要記住,這將是GP服務(wù)的地址,需要
寫在代碼里面的。
Task:ContaminatedAreas
Di%pUyM4me:Cont^n<no:e<lAreJs
幫助說明
category:
HHpURI:r"??gE
txecutiontype:ttnexecuttonTypeAsynchronous
P^ramctrr^:
Pwmet,
D?t.Type:教露類型
DKpUyN^mcContamnatedAreas
Dlr—:esnG”a&ne:E>re<gUMKR
UeTduirvJTuei
GeometryTypesesnG?Mnetn^oly9on
Ha%7:,.kc
Ha%M:LaKe
SpatUIReference:4214(42H)默認(rèn)偷參數(shù)
F?(K:
?OWECHD(g;€$nF^ryptOlD?.5:OWFCUO)
?SHAWegS(type:mfi。7MOoWe,Mas:VCCFTCA)
?SHAPC^Area(fyx:evif^dTypeDoub^,3s:SNAPf.A/et)
Features:None.
ParameterVype4cnGP?*aMerTypeRewed[必次Y|
C?teQory:??i-J
Parameter:rcKXOtY
D?tatype:GPFzppRecordSetLdyer
DHp<4yN<imefesultCity
OWectkm:e$nG^?rdmeterOrecDonOut(x;t
Drf.BuRV^lue:
GeometryType:csnG?xnetrv^otnt
IU%Z:fake
Ha>M:UKe
SfMtUIReference:4214(4214)
?幫助說明,這個是在公布服務(wù)的時候,手動輸入的。也就是說,假如我們
想要別人來使用我們的工具,公布服務(wù)的時候,盡量讓這個幫助寫的清晰
一些,現(xiàn)在很多懶人都不愿意寫。
?參數(shù)列表,會列出所有的參數(shù),參數(shù)名字是需要記住的,到時候需要寫在
代碼里面的。
?數(shù)據(jù)類型,這是GP服務(wù)的數(shù)據(jù)類型。每一個GP服務(wù)數(shù)據(jù)類型與JS數(shù)
據(jù)類型進(jìn)行對應(yīng)。
DataTypeJavaScriptTypeExample
GPStringString"MyString"
GPDoubleNumber(float)12.56
GPLongNumber(int)345
GPBooleanBooleantrue
GPDateDate
GPLinearUnit
GPDataFile
GPRasterData
GPRecordSet
GPRasterDataLayer
GPFeatureRecordSetLayer
GPMultiValueString[]["Pcrcels","StreetLights"]
?默認(rèn)值,假如我們沒有傳數(shù)據(jù)的話,將會使用默認(rèn)值。
這些我們都熟悉后,上代碼。
JavaScript的調(diào)用
1dojo,require(dijit.layout.BorderContainer);
2dojo,require(,zdijit.layout.ContentPane,z);
3dojo,require(^esri.map");
4dojo,require(z,esri.toolbars,draw");
5dojo,require(^esri.tasks.gp〃);
6varmap,toolbar,gp;
7functioninit(){
8map=newesri.Map(,,map/,):
9map.addLayer(basemap);
10dojo,connect(map,'onLoad',function(theMap){
11dojo,connect(dijit.byld('map,),‘resize),
12map,map.rpsiZP):
13toolbar=newesri.toolbars.Draw(map);
14dojo,connect(toolbar,'onDrawEnd*,drawEnd);
15!);
16varbutton=dojo.byld("polygon");
17dojo,connect(button,'onclick',drawPolygon);
18
19
20
21functiondrawPolygon(){
22toolbar.activate(esri.toolbars.Draw.POLYGON);
23
24
25
26functiondrawEnd(geometry){
27toolbar,deactivate0;
28varsymbol=new
29esri.symbol.SimpleFillSymbol(esri.symbol.SimpleFi1ISymbol.ST
30YLE_S0LID,new
31esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.ST
32YLE_DASHDOT,newdojo.Color([255,0,0]),2),new
33dojo.Color([255,255,0,0.25]));
34vargraphic=newesri.Graphic(geometry,symbol);
35map.graphics,add(graphic);
36tojob(graphic);
37
38
39functiontojob(graphic){
40〃第一步構(gòu)造GP
41gp=newesri.tasks.Geoprocessor(gpUrl);
42〃第二步,構(gòu)造參數(shù)
43〃我們通過上面,熟悉到GPFeatureRecordSetLayer對應(yīng)
44FeatureSet
45varfeatures=[];
46features,push(graphic);
47varfeatureset=newesri.tasks.FeatureSet();
48featureset.features=features;
49〃構(gòu)造緩沖長度,這里的單位是能夠更換的,我使用的是度,
50簡單一些
51varDis=newesri.tasks.LinearUnit();
52Dis.distance=1;
53Dis.units=esri.Units.DECIMAL_DEGREES;
54//Distance_value_or_field_,后悔當(dāng)時參數(shù)名字沒有改
55varparms={
56ContaminatedAreas:featureset,
57Distance_value_or_field:Dis
58};
59〃這里函數(shù)是異步的,使用函數(shù)是submitjob,同步的使用的
60是execute。
61〃成功之后,調(diào)用jobResul:,建議看一下這個參數(shù)。
62gp.submitJob(parms,jobRcsult);
63)
64
65functionjobResult(result){
66varJobTd=result.JobTd;
67varstatus=result.jobStatus;
68if(status===esri.tasks.Jobinfo.STATUSSUCCEEDED){
69〃成功之后,將其中的結(jié)果取出來,當(dāng)然這也是參
70數(shù)名字。
71〃在模型中,想要取出中間結(jié)果,需要設(shè)置為模型
72參數(shù)
73gp.getResultData(jobId,“polygonBuffer”,
74addResults);
75gp.getResultData(jobId,“resultCity”,
76addResults);
77}
78}
79//將緩沖添加到地圖上
80functionaddBufferResults(results;{
81console,log(results);
82varfeatures=results,va'ue.features;
83for(vari=0,length=features,length;i!=length;
84++i){
85varfeature=features[i];
86varpolySymbolRed=new
87esri.symbol.SimpleFi11Symbol();
88polySymbolRed.setOutline(new
89esri.symbol.SimpleLineSymbol(esri.symbol.Simp1eLineSymbol.ST
90YLE_S0LID,newdojo.Color([0,0,0,0.5]),1));
91polySymbolRed.setColor(newdojo.Color([255,
920,0,0.5]));
93feature.setSymbol(polySymbolRed);
map.graphics,add(feature);
)
)
//將受污染的城市,添加到地圖上
functionaddResults(results){
console,log(results);
varfeatures=results,value,features;
for(varf=0,fl=features,length;f<f1;f++;{
varfeature=features[f];
varpolySymbolRed=new
esri.symbol.Simp1cMarkerSymbo1(esri.symbol.Simp1eMarkerSymbo
1.STYLE_SQL-ARE,12,new
esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.ST
YLE_SOL1D,newdojo.Color([204,102,51]),1),new
dojo.Color([158,184,71,1]));
feature.setSymbol(polySymbolRed);
map.graphics.add(feature);
)
dojo.addOnLoad(init);
每一個Job,都會儲存下來,中間與最后的結(jié)果數(shù)據(jù)都會儲存下來。
D:\arcgisserver\directories\arcgisjobs\gp\contaminatedareas_gpserver\j00d34711dd564a5c8d85ae553cfbaa8a
包含到庫中▼共享▼刻錄新建文件夾
…起I-----當(dāng)初定義的中間數(shù)據(jù)存放位置
definition.dat
results.dat
方問的位置
status.dat
_toolname.dat
value_polygon_Buffer.dat
value_resultCity.dat
GP服務(wù)〃調(diào)試”技巧
事實上不應(yīng)該叫做調(diào)試,應(yīng)該是怎么來找出問題的所在,是代碼的原因,還
是模型的問題。
打開瀏覽器的調(diào)試窗口,進(jìn)入Network界面。
SDeveloperTools-/jsApi/ca.html
ElementsResourcesNetworkSourcesTimelineProfilesAuditsConsole
NameSize
Method窗usTypeInitiator
PathContent
■■
submitJob200serverapi.areg344B
Ltext/…
localhost/arcgis/rest/s?提為JobScript128B
200serverapi.arc?405B
GETtext/…
—localhost/arc〈is/r&st/sOKScript279B
—
J4990620fble046d9839(200s2rverapi.area405B
GETtext/…
localhost/arcgis/rest/sOKScript279B
j4990620fble046d9839(serverapi.arce405B
GET_皆恂Jobtext/'"
一localhost/arcgis/rest/s0KScript279B
—
j4990620fble046d9839<200serverapi.arc2405B
GET
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025廣東湛江市麻章區(qū)大學(xué)生鄉(xiāng)村醫(yī)生專項計劃招聘7人備考筆試題庫及答案解析
- 2026年中國林業(yè)集團(tuán)有限公司校園招聘(廣東11人)模擬筆試試題及答案解析
- 2025江西吉安市泰和縣新睿人力資源服務(wù)有限公司面向社會招聘項目制人員5人模擬筆試試題及答案解析
- 2025遼寧沈陽盛京資產(chǎn)管理集團(tuán)有限公司所屬子公司沈陽華海錕泰投資有限公司所屬子公司招聘5人參考考試題庫及答案解析
- 2025上海對外經(jīng)貿(mào)大學(xué)公開招聘工作人員備考筆試題庫及答案解析
- 2025湖南衡陽市衡陽縣湘南船山高級技工學(xué)校招聘專業(yè)技術(shù)人員6人參考筆試題庫附答案解析
- 2026上海銀清企業(yè)服務(wù)有限公司招聘備考筆試試題及答案解析
- 2025浙江溫州甌海招商發(fā)展有限公司招聘1人備考筆試題庫及答案解析
- 2025安徽皖新融資租賃有限公司服務(wù)人員招聘崗位核減備考筆試題庫及答案解析
- 2025年河南輕工職業(yè)學(xué)院招聘工作人員(博士)5名備考考試試題及答案解析
- 招投標(biāo)自查自糾報告
- 高校公寓管理述職報告
- HG-T 20583-2020 鋼制化工容器結(jié)構(gòu)設(shè)計規(guī)范
- 單位職工健康體檢總結(jié)報告
- 有序則安之現(xiàn)場定置管理技術(shù)
- V型濾池設(shè)計計算書2021
- 醫(yī)院護(hù)理培訓(xùn)課件:《老年患者靜脈輸液的治療與護(hù)理》
- 安全用電防止觸電主題教育PPT模板
- LY/T 1690-2017低效林改造技術(shù)規(guī)程
- 通信工程設(shè)計基礎(chǔ)doc資料
- 流體機(jī)械原理:05第四章 泵的汽蝕
評論
0/150
提交評論