Exemplo n.º 1
0
 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++;
 }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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;
 }
Exemplo n.º 6
0
 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;
        }
Exemplo n.º 11
0
        /// <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"
                });
            }
        }
Exemplo n.º 12
0
 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;
        }