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