private function buffergeometry(geometry:Geometry):void { var bufferParameters:BufferParameters = new BufferParameters(); // Note: As of version 2.0, the GeometryService input is geometries (instead of graphics). bufferParameters.geometries = [ geometry ]; bufferParameters.distances = [ Number(bufferDistance.text)]; // Note: As of version 2.0, the buffer constants have been moved to GeometryService. bufferParameters.bufferSpatialReference = new SpatialReference(26918); bufferParameters.unit = GeometryService.UNIT_STATUTE_MILE // this can be mile or feet with this new spatial reference, just substitute the unit for feet //or? //bufferParameters.unit = BufferParameters.UNIT_FOOT; //bufferParameters.bufferSpatialReference = new SpatialReference(102629); //from http://forums.esri.com/Thread.asp?c=158&f=2421&t=290857 bufferParameters.outSpatialReference = myMap.spatialReference; myGeometryService2.addEventListener(GeometryServiceEvent.BUFFER_COMPLETE, bufferCompleteHandler1); myGeometryService2.buffer(bufferParameters); function bufferCompleteHandler1(event:GeometryServiceEvent):void { for each (var polygon:Polygon in event.result) { var graphic:Graphic = new Graphic(polygon); graphic.symbol = fillSymbolcounty; graphic.autoMoveToTop = false; //keep graphics from moving to top myGraphicslayerbuffer.add(graphic); runQueryTaskbuffer(graphic.geometry); //????myMap.centerAt(polygon.extent.center); var graphicProvider:ArrayCollection = myGraphicslayerbuffer.graphicProvider as ArrayCollection; var graphicsExtent:Extent = GraphicUtil.getGraphicsExtent(graphicProvider.toArray()); if (graphicsExtent) { myMap.extent = graphicsExtent; // make sure the whole extent is visible if (!myMap.extent.contains(graphicsExtent)) { myMap.level--; } } } } } [Bindable] private var queryTaskbuffer:QueryTask = new QueryTask(); [Bindable] private var querybuffer:Query = new Query(); private function runQueryTaskbuffer(geometry:Geometry):void { queryTaskbuffer.url = "http://tfs-24279/ArcGIS/rest/services/ForestProducts/forest_products_concatenated3/MapServer/0"; queryTaskbuffer.showBusyCursor = true; queryTaskbuffer.useAMF = false; querybuffer.geometry = geometry; //geometry from the drawToolbar querybuffer.returnGeometry = true; //set to true because we want to place points on the map querybuffer.spatialRelationship = "esriSpatialRelIntersects"; querybuffer.outSpatialReference = myMap.spatialReference; querybuffer.outFields = ["County", "Address", "Phone1", "Homepage", "Email", "prim_bus", "other_bus", "maj_prod", "other_pro", "maj_spec", "other_spec", "Company"] //run the query task queryTaskbuffer.execute(querybuffer, new AsyncResponder( onResult, onFault)); function onResult(featureSet:FeatureSet, token:Object = null):void { if (featureSet.features.length == 0){ //If I use an alert, there are many alerts for just one click sometimes //var alert8:Alert = Alert.show("No matching records found. Please try again."); //alert8.setStyle("buttonStyleName", "roundedAlertButtons"); resizableDraggableTitleWindowbuffer.visible = false; resizableDraggableTitleWindowpolygon.visible = false; resizableDraggableTitleWindowintersectingpolygon.visible = false; resizableDraggableTitleWindow.visible = false; resizableDraggableTitleWindowcompanyincounty.visible = false; querydgbuffer.visible = false; info.text = "No matching records found. Please try again."; }else{ myGraphicslayer.clear() querydgbuffer.visible = true; resizableDraggableTitleWindowbuffer.visible = true; myGraphicslayerbuffer.visible = true; querydgbuffer.dataProvider = queryTaskbuffer.executeLastResult.attributes resizableDraggableTitleWindowpolygon.visible = false; resizableDraggableTitleWindowintersectingpolygon.visible = false; resizableDraggableTitleWindow.visible = false; resizableDraggableTitleWindowcompanyincounty.visible = false; for each(var graphic : Graphic in featureSet.features) { graphic.symbol = resultsSymbol; myGraphicslayerbuffer.add(graphic); graphic.addEventListener(MouseEvent.MOUSE_OVER, onMouseOverbuffer); graphic.addEventListener(MouseEvent.MOUSE_OUT, onMouseOutbuffer); if (graphic.attributes.Homepage !== " " || graphic.attributes.Email !==" ") { graphic.addEventListener(MouseEvent.CLICK, clickongraphic) if (graphic.attributes.Homepage !== " " && graphic.attributes.Email !==" ") { graphic.toolTip = "Click for Website or Email link" } if (graphic.attributes.Homepage == " " && graphic.attributes.Email !==" ") { graphic.toolTip = "Click for Email link" } if (graphic.attributes.Homepage !== " " && graphic.attributes.Email ==" ") { graphic.toolTip = "Click for Website link" } } } } if (featureSet.features.length > 1) { info.text = "There are " + featureSet.features.length + " matching records"; } if (featureSet.features.length == 1) { info.text = "There is " + featureSet.features.length + " matching record"; } } function onFault(info:Object, token:Object = null):void { Alert.show(info.toString(), "Query Problem in the Buffer Search"); } }
Solved! Go to Solution.
var clickGraphic:Graphic = new Graphic(geometry, clickPointSymbol) graphicsLayer.add(clickGraphic); <fx:Declarations> <esri:SimpleMarkerSymbol id="clickPointSymbol" style="x" color="0xFF0000" size="12"/> </fx:Declarations>
var clickGraphic:Graphic = new Graphic(geometry, clickPointSymbol) graphicsLayer.add(clickGraphic); <fx:Declarations> <esri:SimpleMarkerSymbol id="clickPointSymbol" style="x" color="0xFF0000" size="12"/> </fx:Declarations>
function bufferCompleteHandler1(event:GeometryServiceEvent):void { for each (var polygon:Polygon in event.result) { var graphic:Graphic = new Graphic(polygon); graphic.symbol = fillSymbolcounty; graphic.autoMoveToTop = false; //keep graphics from moving to top myGraphicslayerbuffer.clear(); var clickGraphic:Graphic = new Graphic(geometry, clickPointSymbol) myGraphicslayerbuffer.add(clickGraphic); myGraphicslayerbuffer.add(graphic); runQueryTaskbuffer(graphic.geometry); var graphicProvider:ArrayCollection = myGraphicslayerbuffer.graphicProvider as ArrayCollection; var graphicsExtent:Extent = GraphicUtil.getGraphicsExtent(graphicProvider.toArray()); if (graphicsExtent) { myMap.extent = graphicsExtent; // make sure the whole extent is visible if (!myMap.extent.contains(graphicsExtent)) { myMap.level--; } } } } }