Solved! Go to Solution.
public partial class MainPage : UserControl { GraphicsLayer _pointAndBufferGraphicsLayer; // GeometryService _geometryService; QueryTask _qTask; public MainPage() { InitializeComponent(); _pointAndBufferGraphicsLayer = map1.Layers["MyGraphicsLayer"] as GraphicsLayer; //// _geometryService = new GeometryService("http://tasks.arcgisonline.com/ArcGIS/rest/services/Geometry/GeometryServer"); _geometryService.BufferCompleted += GeometryService_BufferCompleted; _geometryService.Failed += GeometryService_Failed; _qTask = new QueryTask("http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Demographics/ESRI_Census_USA/MapServer/5"); _qTask.ExecuteCompleted += qTask_Completed; _qTask.Failed += qTask_Failed; } private void map1_Click(object sender, ESRI.ArcGIS.Client.Map.MouseEventArgs e) { Graphic g = new Graphic(); g.Geometry = e.MapPoint; g.Symbol = LayoutRoot.Resources["BlueMarkerSymbol"] as ESRI.ArcGIS.Client.Symbols.Symbol; _pointAndBufferGraphicsLayer.ClearGraphics(); _pointAndBufferGraphicsLayer.Graphics.Add(g); //// //// If buffer spatial reference is GCS and unit is linear, geometry service will do geodesic buffering ESRI.ArcGIS.Client.Tasks.BufferParameters bufferParams = new ESRI.ArcGIS.Client.Tasks.BufferParameters() { BufferSpatialReference = new SpatialReference(4326), OutSpatialReference = map1.SpatialReference, Unit = LinearUnit.StatuteMile, }; bufferParams.Distances.Add(200); bufferParams.Features.Add(g); _geometryService.BufferAsync(bufferParams); } //// void GeometryService_BufferCompleted(object sender, GraphicsEventArgs args) { Graphic bufferGraphic = new Graphic(); bufferGraphic.Geometry = args.Results[0].Geometry; bufferGraphic.Symbol = LayoutRoot.Resources["BufferSymbol"] as ESRI.ArcGIS.Client.Symbols.Symbol; bufferGraphic.SetZIndex(1); _pointAndBufferGraphicsLayer.Graphics.Add(bufferGraphic); //Add code here to build a Query and execute a QueryTask Query query = new Query(); query.ReturnGeometry = true; query.OutSpatialReference = map1.SpatialReference; query.Geometry = bufferGraphic.Geometry; query.OutFields.Add("*"); _qTask.ExecuteAsync(query); query.OutFields.Add("*"); } void qTask_Completed(object sender, QueryEventArgs args) { foreach (Graphic g in args.FeatureSet.Features) { g.Symbol = LayoutRoot.Resources["selectSymbol"] as ESRI.ArcGIS.Client.Symbols.Symbol; _pointAndBufferGraphicsLayer.Graphics.Add(g); } } private void qTask_Failed(object sender, TaskFailedEventArgs args) { MessageBox.Show("Query task failed: " + args.Error); } //// private void GeometryService_Failed(object sender, TaskFailedEventArgs args) { MessageBox.Show("Geometry service failed: " + args.Error); }