private function activateIdentifyTool(type:String):void { var status:String = "Buffer"; if(type == 'point') { setMapAction(DrawTool.MAPPOINT, status, sms, drawEnd); } } private var bufferGraphic:Graphic; private function drawEnd(event:DrawEvent):void { clear(); var i:int = 0; var hg:HGroup; var ch:spark.components.CheckBox; var id:Number; selectedLyrArray = []; for(i =0; i < vb1.numChildren;i++) { hg = vb1.getElementAt(i) as HGroup; ch = hg.getElementAt(0) as spark.components.CheckBox; if (ch.selected == true) { id = Number(ch.id); selectedLyrArray.push(id); } } for(i =0; i < vb2.numChildren;i++) { hg = vb1.getElementAt(i) as HGroup; ch = hg.getElementAt(0) as spark.components.CheckBox; if (ch.selected == true) { id = Number(ch.id); selectedLyrArray.push(id); } } if (selectedLyrArray.length == 0) { Alert.show("No Layers Are Selected"); } else { var geom:Geometry = event.graphic.geometry; var g:Graphic = new Graphic(geom, sms); graphicsLayer.add(g); var bp:BufferParameters = new BufferParameters(); bp.geometries = [g.geometry]; bp.distances = [ns.value]; if (cboUnits.selectedIndex == 1) { bp.unit = GeometryService.UNIT_FOOT; } else { bp.unit = GeometryService.UNIT_STATUTE_MILE; } //bp.bufferSpatialReference = new SpatialReference(102100); geometryService.addEventListener(GeometryServiceEvent.BUFFER_COMPLETE, onBufferComplete); geometryService.buffer(bp); function onBufferComplete(event:GeometryServiceEvent):void { bufferGraphicsLayer.clear(); bufferGraphic = new Graphic; //In this version of esri the geometryService returns geometries instead of graphics. bufferGraphic.geometry = event.result[0] as Polygon; var sls:SimpleLineSymbol = new SimpleLineSymbol("dash",0xff0000,.8,2); var sfs:SimpleFillSymbol = new SimpleFillSymbol("solid",0xff0000,.2,sls); bufferGraphic.symbol = sfs; var attribs:Object = { distance: ns.value, unit: bp.unit } bufferGraphic.attributes = attribs; bufferGraphicsLayer.add(bufferGraphic); startIdentify(); } } } private function startIdentify():void { showMessage("Processing Results...",true); showStateResults(); selectionGraphicsAC = new ArrayCollection(); identifyArrayCollection = new ArrayCollection(); identifycounter = 0; identifyTask = new IdentifyTask(lyrList[selectedLyrArray[identifycounter]].@mapservice); identifyParams = new IdentifyParameters(); identifyParams.returnGeometry = true; identifyParams.tolerance = 1; identifyParams.width = map.width; identifyParams.height = map.height; identifyParams.mapExtent = map.extent; identifyParams.geometry = bufferGraphic.geometry; identifyParams.layerIds = [lyrList[selectedLyrArray[identifycounter]].@layerIndex]; identifyParams.layerOption = IdentifyParameters.LAYER_OPTION_ALL; identifyParams.spatialReference = map.spatialReference; identifyTask.execute(identifyParams, new AsyncResponder(identifyCompleteHandler,myFaultFunction)); } private function myFaultFunction(error:Object):void { Alert.show(String(error), "Identify Error"); } private function identifyCompleteHandler(results:Array):void { Alert.show("I am here in identifyCompleteHandler"); identifycounter++; processIdentifyResults(results, identifycounter-1); }
Solved! Go to Solution.