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); }
Aangemelde leden kunnen berichten plaatsen, updates volgen en meer. Nieuw hier? Registreer een gratis account.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.