Flex调用GP服务实现按划选范围切割地图(二)

具体代码实现:

<?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,”Output”,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>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值