public static void OnSimplifyCompleted(object sender, GraphicsEventArgs e) { if (_editGeometry != null && _editedGraphic != null && e.Results != null && e.Results.Count > 0 && e.Results[0] != null) { _editedGraphic.Geometry = e.Results[0].Geometry; } // cleanup _editedLayer = null; _editGeometry = null; }
private void EditGeometry_GeometryEdit(object sender, EditGeometry.GeometryEditEventArgs e) { if (ActionTextBox.Text != string.Empty) { ActionTextBox.Select(0, 0); ActionTextBox.SelectedText = string.Format("{0}:{1}{2}", actionCount, e.Action, Environment.NewLine); } else ActionTextBox.Text = string.Format("{0}:{1}", actionCount, e.Action); actionCount++; }
private static void EditGeometry(Graphic graphic, FeatureLayer layer) { _editGeometry = null; if (!CreateEditGeometry()) { return; } _editGeometry.GeometryEdit -= editGeometry_GeometryEdit; _editGeometry.GeometryEdit += editGeometry_GeometryEdit; _editedGraphic = graphic; _editedLayer = layer; _editGeometry.StartEdit(_editedGraphic); }
void AssociatedObject_Loaded(object sender, RoutedEventArgs e) { EditGeometry = new EditGeometry(); EditGeometry.IsEnabled = true; EditGeometry.VertexSymbol = (MarkerSymbol)Application.Current.FindResource("EditVertexMarkerSymbol"); EditGeometry.ScalePointSymbol = (SimpleMarkerSymbol)Application.Current.FindResource("MyScaleSymbol"); EditGeometry.ScaleBoxSymbol = (SimpleLineSymbol)Application.Current.FindResource("MyScaleBox"); EditGeometry.GeometryEdit += EditGeometry_GeometryEdit; EditGeometry.Map = AssociatedObject; _applied = true; SetUpMap(); GraphicsLayer graphicsLayer = AssociatedObject.Layers["Shapes"] as GraphicsLayer; graphicsLayer.MouseLeftButtonDown += graphicsLayer_MouseLeftButtonDown; graphicsLayer.MouseLeftButtonUp += graphicsLayer_MouseLeftButtonUp; AssociatedObject.TouchDown += AssociatedObject_TouchDown; AssociatedObject.MapGesture += AssociatedObject_MapGesture; AssociatedObject.MouseClick += AssociatedObject_MouseClick; }
private static bool CreateEditGeometry() { if (_editGeometry == null && View.Instance != null && View.Instance.Map != null) { SimpleMarkerSymbol vertexSymbol = new SimpleMarkerSymbol() { Color = new SolidColorBrush(Color.FromArgb(255, 225, 225, 225)), OutlineColor = new SolidColorBrush(Colors.Black), OutlineThickness = 1, Style = SimpleMarkerSymbol.SimpleMarkerStyle.Square, Size = 10 }; _editGeometry = new EditGeometry { Map = View.Instance.Map, IsEnabled = true, VertexSymbol = vertexSymbol }; return true; } return false; }
private static bool CreateEditGeometry() { if (_editGeometry == null && View.Instance != null && View.Instance.Map != null) { SimpleMarkerSymbol vertexSymbol = new SimpleMarkerSymbol() { Color = new SolidColorBrush(Color.FromArgb(255, 225, 225, 225)), OutlineColor = new SolidColorBrush(Colors.Black), OutlineThickness = 1, Style = SimpleMarkerSymbol.SimpleMarkerStyle.Square, Size = 10 }; _editGeometry = new EditGeometry { Map = View.Instance.Map, IsEnabled = true, VertexSymbol = vertexSymbol }; return(true); } return(false); }
public static void OnSimplifyCompleted(object sender, GraphicsEventArgs e) { if (_editGeometry != null && _editedGraphic != null && e.Results != null && e.Results.Count>0 && e.Results[0] != null) { _editedGraphic.Geometry = e.Results[0].Geometry; } // cleanup _editedLayer = null; _editGeometry = null; }
/// <summary> /// Event handler for EditGeometry action notifications /// </summary> static void editGeometry_GeometryEdit(object sender, EditGeometry.GeometryEditEventArgs e) { // Handle when the user clicks to complete the edit operation if (e.Action == Client.EditGeometry.Action.EditCompleted) { _editGeometry.GeometryEdit -= editGeometry_GeometryEdit; if (_editedGraphic != null) { if (_editedGraphic.Geometry.SpatialReference == null && View.Instance.Map != null && View.Instance.Map.SpatialReference != null) { // add the spatial reference so the Simplify opertion does not fail _editedGraphic.Geometry.SpatialReference = View.Instance.Map.SpatialReference; } ESRI.ArcGIS.Mapping.Controls.ArcGISOnline.GeometryService.SimplifyGraphicAsync(_editedGraphic, OnSimplifyCompleted); } } }
private static void EditGeometry(Graphic graphic, FeatureLayer layer) { _editGeometry = null; if (!CreateEditGeometry()) return; _editGeometry.GeometryEdit -= editGeometry_GeometryEdit; _editGeometry.GeometryEdit += editGeometry_GeometryEdit; _editedGraphic = graphic; _editedLayer = layer; _editGeometry.StartEdit(_editedGraphic); }
public EditToolsGeometry() { InitializeComponent(); editGeometry = this.LayoutRoot.Resources["MyEditGeometry"] as EditGeometry; }
/// <summary> /// Subscription method to handle the map initialisation /// </summary> /// <param name="mapData"></param> public void OnMapChanged(MapData mapData) { try { if (mapData != null) { this.IsMapLoaded = true; this.RaisePropertyChanged(() => this.IsMapLoaded); gisEditing.GetEditorTool().EditCompleted += Editor_EditCompleted; // Initialise editable layers this.SubTypeVisibility = Visibility.Collapsed; this.TemplateVisibility = Visibility.Collapsed; this.SymbolMarkers = new ObservableCollection<SymbolMarkerInfo>(); foreach (var item in gisEditing.GetEditLayers()) { this.EditLayers.Add(item); switch (item.LayerGeometryType) { case ESRI.ArcGIS.Client.Tasks.GeometryType.MultiPoint: if (gisEditing.GetMarkerInfo(item.LayerName).FirstOrDefault(l => l.ObjectFeatureType != null) != null) { foreach (var item2 in gisEditing.GetMarkerInfo(item.LayerName)) this.SymbolMarkers.Add(item2); this.SubTypeVisibility = Visibility.Visible; } break; case ESRI.ArcGIS.Client.Tasks.GeometryType.Point: if (gisEditing.GetMarkerInfo(item.LayerName).FirstOrDefault(l => l.ObjectFeatureType != null) != null) { foreach (var item2 in gisEditing.GetMarkerInfo(item.LayerName)) this.SymbolMarkers.Add(item2); this.SubTypeVisibility = Visibility.Visible; } break; case ESRI.ArcGIS.Client.Tasks.GeometryType.Polygon: if (gisEditing.GetMarkerInfo(item.LayerName).FirstOrDefault(l => l.ObjectFeatureType != null) != null) { foreach (var item2 in gisEditing.GetMarkerInfo(item.LayerName)) this.SymbolMarkers.Add(item2); this.SubTypeVisibility = Visibility.Visible; } else { this.EditTemplates = gisEditing.GetTemplates(item.LayerName); if (this.EditTemplates.Count > 0) { this.TemplateVisibility = Visibility.Visible; } } break; case ESRI.ArcGIS.Client.Tasks.GeometryType.Polyline: if (gisEditing.GetMarkerInfo(item.LayerName).FirstOrDefault(l => l.ObjectFeatureType != null) != null) { foreach (var item2 in gisEditing.GetMarkerInfo(item.LayerName)) this.SymbolMarkers.Add(item2); this.SubTypeVisibility = Visibility.Visible; } break; default: break; } } EditVerticesParameter = new EditorParameterCommand(); AddGeometryParameter = new EditorParameterCommand(); MovePointParameter = new EditorParameterCommand() { Action = "Move" }; DeleteGeometryParameter = new EditorParameterCommand(); SelectParameter = new EditorParameterCommand() { SelectionMode = DrawMode.Rectangle }; this.SelectLayerList = (this.EditLayers.Count > 1 ? Visibility.Visible : Visibility.Collapsed); RaisePropertyChanged(() => this.EditLayers); RaisePropertyChanged(() => this.EditTemplates); if (this.EditLayers.Count > 0) { currentEditLayer = this.EditLayers[0]; this.SelectedEditLayer = this.EditLayers[0]; } // Define edit parameters this.RaisePropertyChanged(() => this.EditVerticesParameter); this.RaisePropertyChanged(() => this.AddGeometryParameter); this.RaisePropertyChanged(() => this.MovePointParameter); this.RaisePropertyChanged(() => this.DeleteGeometryParameter); this.RaisePropertyChanged(() => this.SelectParameter); this.SymbolSelected = new DelegateCommand<object>( this.OnSymbolSelected, this.CanSymbolSelected); // Initialisation EditGeometry editGeometry = new EditGeometry(gisOperations.GetMap()); editGeometry.GeometryEdit += EditGeometryEdited; RefreshButtonStatus(); SetCustomCommands(); } } catch (System.Exception ex) { // Error handling ShowErrorMessagebox.Raise(new Notification { Content = String.Format("OnMapChanged-{0}[{1}]", ex.Message, ex.StackTrace), Title = "System error" }); } }
private void EditGeometryEdited(object sender, EditGeometry.GeometryEditEventArgs e) { // To handle post editing of a geometry }
public EditToolsGeometry() { InitializeComponent(); editGeometry = this.LayoutRoot.Resources["MyEditGeometry"] as EditGeometry; }