Select to view content in your preferred language

Loading Layers to be buffred widget point buffer

537
0
03-13-2014 03:43 PM
fatizanady
Deactivated User
hello everyone,

I want to apply buffer to my layers using a geoprocessing service.i'm bloked in loading a layer (points) that well be buffered.
I'm trying to do that but the following error appears:

"Call the push method may not defined through a reference type static com.esri.ags.layers:FeatureLayer."

I need really your help, i'm new to Flex so I'm sure that there are multiple errors but would like to know if I'm going about this the right way? Thanks for any help that could be offered!

this is the code:

<?xml version="1.0" encoding="utf-8"?>
<viewer:BaseWidget xmlns:fx="http://ns.adobe.com/mxml/2009"
       xmlns:s="library://ns.adobe.com/flex/spark"
       xmlns:mx="library://ns.adobe.com/flex/mx"
       xmlns:esri="http://www.esri.com/2008/ags"
       xmlns:viewer="com.esri.viewer.*"
       xmlns:components="com.esri.viewer.components.*"
     
                   >
    <fx:Script>
        <![CDATA[

   import com.esri.ags.Graphic;
   import com.esri.ags.Units;
   import com.esri.ags.events.GeoprocessorEvent;
   import com.esri.ags.layers.FeatureLayer;
   import com.esri.ags.tasks.supportClasses.LinearUnit;
  
   import mx.controls.Alert;
   import mx.managers.CursorManager;
   import mx.rpc.AsyncResponder;
  
  
   private var dist:LinearUnit = new LinearUnit();
  
  
  
  
   private function executer():void
   {
    var haslayerSelected:Boolean = (map.defaultGraphicsLayer.numGraphics > 0);
    var hasSelectedLayersTobebufffred:Boolean = pointsCheckBox.selected  ;
   
    if (haslayerSelected && hasSelectedLayersTobebufffred)
    {
     buffer();
    }
    else
    {
     showErrorMessage("Select layer to be buffred");
    }
   }
  
   private function showErrorMessage(content:String):void
   {
    Alert.show(content, "Geoprocessing Task Error");
   
   }
  

   private function buffer():void
   {
    var requestObject:Object = createRequestObject();
    gp.execute(requestObject);
   
    CursorManager.setBusyCursor();
   }
  
  
  
   private function createRequestObject( ):Object
   {
    var layersToBuffred:FeatureLayer = getLayersTobebuffred();
    dist.distance = Number(bufferDistance.text);
    dist.units = "esriMeters";
   
    var requestObject:Object = {
     " GPBuffer_DBO_points ": layersToBuffred,
     "Distance_ ": dist
    };
   
    return requestObject;
   }
  
  
   private function getLayersTobebuffred():FeatureLayer
   {
    var layersToBuffred:FeatureLayer=new FeatureLayer;
   
    if (pointsCheckBox.selected)
    {
     layersToBuffred.push(pointsCheckBox.label);
    }
   
   
    return  layersToBuffred;
   }
  
  
        ]]>
    </fx:Script>
<fx:Declarations>

  <esri:Geoprocessor id="gp"  url="http://localhost:6080/arcgis/rest/services/Geotraitement/edatazip/GPServer/edatazip"/>

</fx:Declarations>
    <viewer:WidgetTemplate id="wTemplate"
                           width="244" height="209">
  <s:Label x="47" y="43" text="Séléction couche"/>
  <s:CheckBox id="pointsCheckBox" x="52" y="72"/>
  <s:Label x="86" y="72" width="91"/>
  <s:Button  x="87" y="174" label="Executer" click="executer()"/>
  <s:TextInput id="bufferDistance" x="123" y="114" width="60" paddingLeft="5" paddingRight="0"
      text="100"/>
  <s:Label x="48" y="123" text="Distance"/>
 
    </viewer:WidgetTemplate>
</viewer:BaseWidget>
Tags (2)
0 Kudos
0 Replies