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); } }
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.