<Grid.Resources> <esri:Editor x:Key="Editor" Map="{Binding ElementName=Map}" LayerIDs="Poligonos" GeometryServiceUrl="http://crbd02/ArcGIS/rest/services/Geometry/GeometryServer" /> </Grid.Resources>
<!-- Map Control --> <esri:Map x:Name="Map" Background="White" WrapAround="true" IsLogoVisible="False" Extent="-1442632.89843668,-274130.672780001,8713596.00123668,5756744.12838"> <i:Interaction.Triggers> <i:EventTrigger EventName="MouseEnter"> <ei:ChangePropertyAction TargetName="myMenuItems" PropertyName="Visibility"> <ei:ChangePropertyAction.Value> <Visibility>Collapsed</Visibility> </ei:ChangePropertyAction.Value> </ei:ChangePropertyAction> </i:EventTrigger> </i:Interaction.Triggers> <esri:FeatureLayer ID="Poligonos" Url="http://crbd02/ArcGIS/rest/services/DemosAPIs/Edicion_APIS/FeatureServer/0" AutoSave="False" x:Name="Poligonos" Mode="OnDemand" ValidateEdits="True" DisableClientCaching="True"/> </esri:Map>
Graphic gra = null; gra = VentanaDerroteroEnPanel.FinalizarDibujo(); PanelVentanaDerrotero.Visibility = System.Windows.Visibility.Collapsed; Editor editor = LayoutRoot.Resources["Editor"] as Editor; foreach (GraphicsLayer graphicsLayer in editor.GraphicsLayers) { if (graphicsLayer is FeatureLayer) { FeatureLayer featureLayer = graphicsLayer as FeatureLayer; if (featureLayer.ID == "Poligonos") { featureLayer.Graphics.Add(gra); featureLayer.SaveEdits(); featureLayer.Refresh(); } } }
private void ImportCollection(String name, MapPoint LL, MapPoint UR, SpatialReference srs) { ArcGISLocalFeatureLayer featureLayer = mapControl.Layers["theArcGISLocalFeatureLayer"] as ArcGISLocalFeatureLayer; //// Hook up some diagnostic event handler so we can see what is going wrong. featureLayer.BeginSaveEdits += (s1, beginEditEventArgs) => { /// this part is fine. Adds.Count shows 1. System.Diagnostics.Trace.WriteLine(String.Format("s1: {0}, number of Adds: {1}", s1, beginEditEventArgs.Adds.Count)); }; featureLayer.EndSaveEdits += (s2, endEditEventArgs) => { /// No joy here. We fail instead. System.Diagnostics.Trace.WriteLine(String.Format("featureLayer.Graphics.Count: {0}", featureLayer.Graphics.Count)); }; featureLayer.SaveEditsFailed += (s3, taskFailedEventArgs) => { //// We can tell the Save failed here ... "Unable to complete operation." ... But why? System.Diagnostics.Trace.WriteLine(String.Format("taskFailedEventArgs.Error.Message: {0}", taskFailedEventArgs.Error.Message)); }; List<Graphic> listPnt = _geometryTask.Project(new List<Graphic>() { new Graphic() { Geometry = LL } }, mapControl.SpatialReference) as List<Graphic>; listPnt = _geometryTask.Project(new List<Graphic>() { new Graphic() { Geometry = LL } }, mapControl.SpatialReference) as List<Graphic>; MapPoint wgs84Pnt = listPnt[0].Geometry as MapPoint; LL.X = wgs84Pnt.X; LL.Y = wgs84Pnt.Y; listPnt = _geometryTask.Project(new List<Graphic>() { new Graphic() { Geometry = UR } }, mapControl.SpatialReference) as List<Graphic>; wgs84Pnt = listPnt[0].Geometry as MapPoint; UR.X = wgs84Pnt.X; UR.Y = wgs84Pnt.Y; Graphic gra = new Graphic(); //// Create a new Graphic and add it to the layer ... this works to the extent that it renders properly on the map! gra.Geometry = new Envelope(LL, UR); gra.Geometry = new Envelope(LL, UR); gra.Symbol = featureLayer.Renderer.GetSymbol(gra); featureLayer.Graphics.Add(gra); }
ESRI.ArcGIS.Client.Geometry.Polygon poly = new ESRI.ArcGIS.Client.Geometry.Polygon(); ESRI.ArcGIS.Client.Geometry.PointCollection pts = new ESRI.ArcGIS.Client.Geometry.PointCollection(); Graphic gra = new Graphic(); //gra.Geometry = new Envelope(LL, UR); pts.Add(LL); pts.Add(new MapPoint(UR.X, LL.Y)); pts.Add(UR); pts.Add(new MapPoint(LL.X, UR.Y)); poly.SpatialReference = MyMap.SpatialReference; poly.Rings.Add(pts); gra.Geometry = poly; gra.Symbol = featureLayer.Renderer.GetSymbol(gra); featureLayer.Graphics.Add(gra);
private void FeatureLayer_MouseLeftButtonUp(object sender, GraphicMouseButtonEventArgs e) { FeatureLayer featureLayer = sender as FeatureLayer; foreach (Graphic g in featureLayer.Graphics) if (g.Selected) { g.UnSelect(); } e.Graphic.Select(); MyFeatureDataForm.FeatureLayer = featureLayer; MyFeatureDataForm.GraphicSource = e.Graphic; FeatureDataFormBorder.Visibility = Visibility.Visible; Graphic newg = new Graphic(); newg.Geometry = e.Graphic.Geometry; newg.Symbol = LayoutRoot.Resources["RedMarkerSymbol"] as MarkerSymbol; FeatureLayer ft = MyMap.Layers["events"] as FeatureLayer; ft.Graphics.Add(newg); if (ft.HasEdits) { ft.SaveEdits(); } else { MessageBox.Show("no Edits"); } //Editor edit = LayoutRoot.Resources["MyEditor"] as Editor; //foreach (GraphicsLayer graphicsLayer in edit.GraphicsLayers) //{ // if (graphicsLayer is FeatureLayer) // { // ft = graphicsLayer as FeatureLayer; // ft.Graphics.Add(newg); // } //} }