/// <summary> /// Populates the graphics layer using the input feature layer /// </summary> /// <param name="featureLayer"></param> /// <returns></returns> private async Task PopulateFeatures(FeatureLayer featureLayer) { var whereClause = string.Empty; var query = new Esri.ArcGISRuntime.Data.QueryParameters() { }; var result = await featureLayer.FeatureTable.QueryFeaturesAsync(new QueryParameters() { WhereClause = "1=1" }).ConfigureAwait(false); var featureGraphics = new List <Graphic>(); result.ForEach(p => { var point = p.Geometry as MapPoint; if (point != null && !point.IsEmpty) { var attributes = new Dictionary <string, object>(p.Attributes); attributes["GUID"] = Guid.NewGuid(); attributes["Name"] = "Dispatch " + p.Attributes["FID"].ToString(); var graphic = new CustomGraphic(Convert.ToInt32(p.Attributes["FID"]), p.Geometry, attributes, new SimpleMarkerSymbol(SimpleMarkerSymbolStyle.Circle, Color.Red, 8)); FeatureGraphicsLayer.Graphics.Add(graphic); } }); }
private void OnView_Tapped(object sender, Esri.ArcGISRuntime.UI.GeoViewInputEventArgs e) { MapPoint geoPoint = getGeoPoint(e); geoPoint = (MapPoint)GeometryEngine.Project(geoPoint, SpatialReference.Create(3857)); Polygon buffer = (Polygon)GeometryEngine.Buffer(geoPoint, 1000.0); GraphicCollection graphics = (threeD ? bufferAndQuerySceneGraphics : bufferAndQueryMapGraphics).Graphics; graphics.Clear(); graphics.Add(new Graphic(buffer, BUFFER_SYMBOL)); graphics.Add(new Graphic(geoPoint, CLICK_SYMBOL)); Esri.ArcGISRuntime.Data.QueryParameters query = new Esri.ArcGISRuntime.Data.QueryParameters(); query.Geometry = buffer; LayerCollection operationalLayers; if (threeD) { operationalLayers = sceneView.Scene.OperationalLayers; } else { operationalLayers = mapView.Map.OperationalLayers; } foreach (Layer layer in operationalLayers) { ((FeatureLayer)layer).SelectFeaturesAsync(query, SelectionMode.New); } }
private async void OnView_Tapped(object sender, Esri.ArcGISRuntime.UI.GeoViewInputEventArgs e) { MapPoint geoPoint = getGeoPoint(e); geoPoint = (MapPoint)GeometryEngine.Project(geoPoint, SpatialReference.Create(3857)); if (QueryandBufferButton.Content == FindResource("LocationSelected")) { Polygon buffer = (Polygon)GeometryEngine.Buffer(geoPoint, 1000.0); GraphicCollection graphics = (threeD ? bufferAndQuerySceneGraphics : bufferAndQueryMapGraphics).Graphics; graphics.Clear(); graphics.Add(new Graphic(buffer, BUFFER_SYMBOL)); graphics.Add(new Graphic(geoPoint, CLICK_SYMBOL)); Esri.ArcGISRuntime.Data.QueryParameters query = new Esri.ArcGISRuntime.Data.QueryParameters(); query.Geometry = buffer; LayerCollection operationalLayers; if (threeD) { operationalLayers = sceneView.Scene.OperationalLayers; } else { operationalLayers = mapView.Map.OperationalLayers; } foreach (Layer layer in operationalLayers) { await((FeatureLayer)layer).SelectFeaturesAsync(query, SelectionMode.New); } } else if (RoutingButton.Content == FindResource("RoutingSelected")) { GraphicCollection graphics = (threeD ? sceneRouteGraphics : mapRouteGraphics).Graphics; if (originPoint == null) { originPoint = geoPoint; graphics.Clear(); graphics.Add(new Graphic(originPoint, ROUTE_ORIGIN_SYMBOL)); } else { graphics.Add(new Graphic(geoPoint, ROUTE_DESTINATION_SYMBOL)); if (routeParameters != null) { routeParameters.ReturnDirections = false; routeParameters.ReturnRoutes = true; routeParameters.ReturnStops = false; } else { RoutingButton_Click(null, null); } var stop1 = new Stop(originPoint); var stop2 = new Stop(geoPoint); var stopPoints = new List <Stop> { stop1, stop2 }; routeParameters.SetStops(stopPoints); var routeResult = await routeTask.SolveRouteAsync(routeParameters); // get the route from the results var route = routeResult.Routes[0]; // create a graphic (with a dashed line symbol) to represent the route var routeSymbol = new SimpleLineSymbol(SimpleLineSymbolStyle.Dash, Colors.Yellow, 5); var routeGraphic = new Graphic(route.RouteGeometry, routeSymbol); graphics.Add(routeGraphic); originPoint = null; } } }