void queryTask_ExecuteCompleted(object sender, QueryEventArgs e) { foreach (Graphic item in e.FeatureSet.Features) { Graphic queryGraphic = new Graphic(); ESRI.ArcGIS.Client.Geometry.MapPoint mapPnt = new MapPoint(item.Geometry.Extent.XMax, item.Geometry.Extent.YMax); queryGraphic.Geometry = ESRI.ArcGIS.Client.Bing.Transform.GeographicToWebMercator(mapPnt); queryGraphic.Geometry.SpatialReference = sReference; BufferParameters bufferParams = new BufferParameters() { BufferSpatialReference = new SpatialReference(102100), OutSpatialReference = MapaGM.SpatialReference, Unit = LinearUnit.Meter, }; bufferParams.Distances.Add(1000); bufferParams.Features.Add(queryGraphic); geometryService.BufferAsync(bufferParams); } }
void geometryService_BufferCompleted(object sender, GraphicsEventArgs e) { Graphic bufferGraphic = new Graphic(); bufferGraphic.Geometry = e.Results[0].Geometry; bufferGraphic.Symbol = LayoutRoot.Resources["BufferSymbol"] as Symbol; bufferGraphic.SetZIndex(1); pointAndBufferGraphicsLayer.Graphics.Add(bufferGraphic); }
You should be able to pass all the features returned from the QueryTask to the Buffer. The code below works for me
void QueryTask_ExecuteCompleted(object sender, QueryEventArgs e) { FeatureSet fs = e.FeatureSet; if (fs.Count() == 0) { MessageBox.Show("Sorry, no data matches your query. Please try again", "Query Error", MessageBoxButton.OK); } else { BufferParameters buffParam = new BufferParameters() { Unit = LinearUnit.Meter, BufferSpatialReference = _Map.SpatialReference, OutSpatialReference = _Map.SpatialReference }; buffParam.Distances.Add(500); buffParam.Features.AddRange(fs.Features); GeometryService geoService = new GeometryService("http://<servername>/ArcGIS/rest/services/Geometry/GeometryServer"); geoService.BufferCompleted += (send,args) => { GraphicsLayer gl = (GraphicsLayer)_Map.Layers[_GraphicsLayer]; gl.ClearGraphics(); gl.Renderer = LayoutRoot.Resources["SelectRendererPoly"] as IRenderer; //polygon renderer defined in XAML foreach (var g in args.Results) { gl.Graphics.Add(g); } gl.Refresh(); }; geoService.BufferAsync(buffParam); } }
Angemeldete Mitglieder können Beiträge verfassen, Updates folgen und mehr. Neu hier? Registriere ein kostenloses Konto.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.