使用ArcGISGP服務(wù)發(fā)布_第1頁
使用ArcGISGP服務(wù)發(fā)布_第2頁
使用ArcGISGP服務(wù)發(fā)布_第3頁
使用ArcGISGP服務(wù)發(fā)布_第4頁
使用ArcGISGP服務(wù)發(fā)布_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論