具体代码实现:
<?xml version=”1.0″ encoding=”utf-8″?>
<s:Application xmlns:fx=”http://ns.adobe.com/mxml/2009”
????? xmlns:s=”library://ns.adobe.com/flex/spark”
????? xmlns:esri=”http://www.esri.com/2008/ags“
????? xmlns:mx=”library://ns.adobe.com/flex/mx”minWidth=”955″ minHeight=”600″>
?
?<fx:Script>
??<![CDATA[
???import com.esri.ags.FeatureSet;
???import com.esri.ags.Graphic;
???import com.esri.ags.events.DrawEvent;
???import com.esri.ags.events.GeoprocessorEvent;
???import com.esri.ags.geometry.MapPoint;
???import com.esri.ags.layers.FeatureLayer;
???import com.esri.ags.layers.GPResultImageLayer;
???import com.esri.ags.symbols.Symbol;
???import com.esri.ags.tasks.supportClasses.ExecuteResult;
???import com.esri.ags.tasks.supportClasses.ParameterValue;
???
???import mx.controls.Alert;
???import mx.events.ItemClickEvent;
???import mx.rpc.AsyncResponder;
???import mx.rpc.events.FaultEvent;
???
???import spark.events.IndexChangeEvent;
???
???
???protected functiondrawTool_drawEndHandler(event:DrawEvent):void
???{
????// reset after finished drawing a feature
????myDrawTool.deactivate();
????
????
????var graphic:Graphic=new Graphic(event.graphic.geometry);
????var inputPolyFS:FeatureSet = new FeatureSet();
????inputPolyFS.features = [graphic];
????var params:Object = { “ClipFeature”: inputPolyFS,”lnshijie1_region”:”lnshijie1_region”};
????
????gp.addEventListener(GeoprocessorEvent.JOB_COMPLETE,gp_JobCompleteHandler);
????
????gp.addEventListener(GeoprocessorEvent.GET_RESULT_DATA_COMPLETE,gp_ResultCompleteHandler);
????
????gp.addEventListener(FaultEvent.FAULT,onGPFault);
????
????gp.submitJob(params);
????//gp.execute(params);
????//graphicsLayer.clear();
???
????
???}
???
???
???protected functiongp_JobCompleteHandler(event:GeoprocessorEvent):void?
???{
????//调用getResultData方法获取结果,该方法执行成功后将派发//GET_RESULT_DATA_COMPLETE事件
????gp.getResultData(event.jobInfo.jobId,”Output”);
????var myImageLayer:GPResultImageLayer=gp.getResultImageLayer(event.jobInfo.jobId,”Output”,null);
????//Map1.addLayer(myImageLayer);
????//Alert.show(“gp_JobCompleteHandler”,event.jobInfo.jobId);
????
???}
???
???private function gp_ResultCompleteHandler(event:GeoprocessorEvent):void
????
???{
????
????var pv : ParameterValue = event.parameterValue;
????
????
????var fs : FeatureSet = pv.value as FeatureSet;
????
????var ruteGraphicsLayer:GraphicsLayer = newGraphicsLayer();
????//ruteGraphicsLayer.graphicProvider = fs.features;
????
????//Map1.addLayer(ruteGraphicsLayer);
????//var symbol:SimpleMarkerSymbol = newSimpleMarkerSymbol(SimpleMarkerSymbol.STYLE_SQUARE,8,0xFF0000,0.5);
????//symbol.outline = new SimpleLineSymbol();
????for each (var graphic:Graphic in fs.features)
????{
?????graphic.symbol = rFill;
?????graphicsLayer.add(graphic);
?????
?????var attr:Object = graphic.attributes;
?????if (graphic.attributes.hasOwnProperty(“AREA”))
?????{
??????Alert.show(graphic.attributes.CITYNAME +“:” + graphic.attributes.Shape_Area,”面积”);
?????}
????}
????Map1.addLayer(graphicsLayer);
????
????//Alert.show(“123,321″,fs.features.length.toString());
???}
???
???protected function btnok_clickHandler(event:MouseEvent):void
???{
????myDrawTool.activate(DrawTool.POLYGON);
???}
???
???private function onGPFault(fe:FaultEvent):void
???{
????this.cursorManager.removeBusyCursor();
????if (fe.type == “fault” && fe.fault.name ==“Error” && fe.fault.faultString == “Error Executing Task”)
????{
?????Alert.show(“Oops – no results.? Maybe try asmaller number.”);
????}
????else
????{
?????Alert.show(“Unexpected fault:
” + fe.toString());
????}
???}?
?
???
?
?
?
???protected functiongp_jobCompleteHandler(event:GeoprocessorEvent):void
???{
????//调用getResultData方法获取结果,该方法执行成功后将派发//GET_RESULT_DATA_COMPLETE事件
????gp.getResultData(event.jobInfo.jobId,”Output”);
//????varmyImageLayer:GPResultImageLayer=gp.getResultImageLayer(event.jobInfo.jobId,null);
//????Map1.addLayer(myImageLayer);
????
????var pv : ParameterValue = event.parameterValue;
????
????
????var fs : FeatureSet = pv.value as FeatureSet;
????
????var ruteGraphicsLayer:GraphicsLayer = newGraphicsLayer();
????ruteGraphicsLayer.graphicProvider = fs.features;
????Map1.addLayer(ruteGraphicsLayer);
????
????// TODO Auto-generated method stub
????//Alert.show(“111″,“Oops”);
???}
?
?
??]]>
?</fx:Script>
?<fx:Declarations>
??<esri:SimpleMarkerSymbol id=”sms_circleAlphaSizeOutline”color=”0xFF0000″? alpha=”0.5″ size=”15″ style=”circle”/>
??<esri:SimpleFillSymbol id=”rFill” alpha=”0.5″ color=”0xFF0000″/>
??<esri:SimpleFillSymbol id=”gFill” alpha=”0.5″color=”0x00FF00″/>
??<esri:SimpleFillSymbol id=”bFill” alpha=”0.5″color=”0x0000FF”/>
??<!– Symbol for all point shapes –>
??<esri:SimpleMarkerSymbol id=”sms”
???????? color=”0x00FF00″
???????? size=”12″
???????? style=”square”/>
??
??<!– Symbol for all line shapes –>
??<esri:SimpleLineSymbol id=”sls”
????????? width=”3″
????????? color=”0x00FF00″/>
??
??<!– Symbol for all polygon shapes –>
??<esri:SimpleFillSymbol id=”sfs”
????????? color=”0xFFFFFF”
?????????style=”diagonalcross”>
???<esri:outline>
????<esri:SimpleLineSymbol width=”2″color=”0x00FF00″/>
???</esri:outline>
??</esri:SimpleFillSymbol>
??<esri:Geoprocessor id=”gp”
???????? concurrency=”last”
???????? showBusyCursor=”true”
????????utSpatialReference=”{Map1.spatialReference}”
???????? url=”http://guo/arcgis/rest/services/tooltest/GPServer/guo”/>
??<esri:DrawTool id=”myDrawTool”
??????? drawEnd=”drawTool_drawEndHandler(event)”
??????? fillSymbol=”{sfs}”
??????? graphicsLayer=”{graphicsLayer}”
??????? lineSymbol=”{sls}”
??????? map=”{Map1}”
??????? markerSymbol=”{sms}”/>
??
?</fx:Declarations>
?
?<s:controlBarLayout>
??<s:HorizontalLayout horizontalAlign=”center”
???????paddingBottom=”1″
???????paddingTop=”1″/>
??
?</s:controlBarLayout>
?<s:Label id=”messages”
??? width=”100%”
??? fontSize=”14″
??? fontStyle=”italic”
??? paddingLeft=”4″
??? paddingRight=”4″
??? paddingTop=”4″/>
?
?<s:Button id=”btnok” click=”btnok_clickHandler(event)”>
??
?</s:Button>
?
?
?
<esri:Map id=”Map1″ >
?<esri:ArcGISDynamicMapServiceLayer url=”http://localhost/ArcGIS/rest/services/shuilifabu/MapServer“> ?</esri:ArcGISDynamicMapServiceLayer> ?<esri:GraphicsLayer id=”graphicsLayer” />? </esri:Map> </s:Application>