コード例 #1
0
        public void ItemClickedEvent(string ItemName, ref bool Handled)
        {
            if (ItemName == GlobalFunctions.c_RemoveVertexButton)
            {
                if (m_globals.CurrentMode == GlobalFunctions.Modes.RemoveVertex)
                {
                    // I'm already in this mode.  Clean up everything.
                    Cleanup();
                }
                else
                {
                    // Save cursor mode information
                    m_globals.SaveCusorMode();

                    // Set the cursor.
                    MapWindow.Interfaces.View v = m_globals.MapWin.View;
                    v.CursorMode       = MapWinGIS.tkCursorMode.cmNone;
                    v.MapCursor        = MapWinGIS.tkCursor.crsrUserDefined;
                    v.UserCursorHandle = m_cursor.Handle.ToInt32();

                    // Start taking events for MouseMove and MouseUp
                    MapMouseMoveDelegate = new MapWindow.Events.MapMouseMoveEvent(MapMouseMoveEvent);
                    m_globals.Events.AddHandler(MapMouseMoveDelegate);
                    MapMouseUpDelegate = new MapWindow.Events.MapMouseUpEvent(MapMouseUpEvent);
                    m_globals.Events.AddHandler(MapMouseUpDelegate);
                }
            }
            else
            {
                Cleanup();
            }
        }
コード例 #2
0
        private void MarkAllVertices()
        {
            try
            {
                MapWinGIS.Shape           shp = null;
                MapWinGIS.Shapefile       sf  = m_globals.CurrentLayer;
                MapWindow.Interfaces.View v   = m_globals.MapWin.View;

                //clear the drawings
                v.Draw.ClearDrawing(m_HDraw);
                m_HDraw = v.Draw.NewDrawing(MapWinGIS.tkDrawReferenceList.dlSpatiallyReferencedList);

                //display all the vertices for each shape
                for (int i = 0; i < v.SelectedShapes.NumSelected; i++)
                {
                    shp = sf.get_Shape(v.SelectedShapes[i].ShapeIndex);

                    for (int j = 0; j < shp.numPoints; j++)
                    {
                        MapWinGIS.Point shpPoint = shp.get_Point(j);
                        m_globals.MapWin.View.Draw.DrawPoint(shpPoint.x, shpPoint.y, m_globals.VertexSize, System.Drawing.Color.Red);
                    }
                }
            }
            catch (System.Exception ex)
            {
                m_globals.MapWin.ShowErrorDialog(ex);
            }
        }
コード例 #3
0
        private void MarkSelectedVertices(System.Collections.ArrayList lst)
        {
            MapWindow.Interfaces.View v = m_globals.MapWin.View;

            foreach (SnapData data in lst)
            {
                if (IsSelected(data.shpIndex))
                {
                    v.Draw.DrawPoint(data.point.x, data.point.y, m_globals.VertexSize, System.Drawing.Color.Blue);
                }
            }
        }
コード例 #4
0
        private bool IsSelected(int shpIndex)
        {
            MapWindow.Interfaces.View v = m_globals.MapWin.View;

            for (int i = 0; i < v.SelectedShapes.NumSelected; i++)
            {
                if (v.SelectedShapes[i].ShapeIndex == shpIndex)
                {
                    return(true);                    // shape is selected
                }
            }

            // default case (shape is not selected!)
            return(false);
        }
コード例 #5
0
        /// <summary>
        /// Constructor.
        /// The AddShapeForm is used when creating a new shape.
        /// The user can either click on the map to generate new points, lines or polygons, or input coordinates in the text boxes provided on the form.
        /// </summary>
        public AddShapeForm(GlobalFunctions g, ref SnapClass snapper)
        {
            //
            // Required for Windows Form Designer support
            //
            InitializeComponent();

            m_globals         = g;
            m_cursor          = new System.Windows.Forms.Cursor(this.GetType(), "InsertPoint.cur");
            view              = g.MapWin.View;
            m_oldCursorMode   = view.CursorMode;
            m_oldCursor       = view.MapCursor;
            m_oldCursorHandle = view.UserCursorHandle;
            view.CursorMode   = MapWinGIS.tkCursorMode.cmNone;
            view.MapCursor    = MapWinGIS.tkCursor.crsrWait;

            m_SFType = g.MapWin.Layers[g.MapWin.Layers.CurrentLayer].LayerType;
            m_Shape  = new ShapeClass();

            // Sign me up for these events!
            m_MapMouseMoveDelegate = new MapWindow.Events.MapMouseMoveEvent(MouseMoveEvent);
            g.Events.AddHandler(m_MapMouseMoveDelegate);
            m_MapMouseUpDelegate = new MapWindow.Events.MapMouseUpEvent(MouseUpEvent);
            g.Events.AddHandler(m_MapMouseUpDelegate);
            m_LayerSelectedDelegate = new MapWindow.Events.LayerSelectedEvent(LayerSelectedEvent);
            g.Events.AddHandler(m_LayerSelectedDelegate);

            MapWindow.Interfaces.eLayerType t = g.MapWin.Layers[g.MapWin.Layers.CurrentLayer].LayerType;

            m_sf = g.CurrentLayer;

            if ((m_snapper == null) && ((t == lt.LineShapefile) || (t == lt.PointShapefile) || (t == lt.PolygonShapefile)))
            {
                m_snapper = new SnapClass(m_globals.MapWin);
            }

            view.MapCursor        = MapWinGIS.tkCursor.crsrUserDefined;
            view.UserCursorHandle = m_cursor.Handle.ToInt32();

            m_PointSize = 6;
        }
コード例 #6
0
        private void RemoveVertices(System.Collections.ArrayList lst)
        {
            try
            {
                MapWindow.Interfaces.View v = m_globals.MapWin.View;

                foreach (SnapData data in lst)
                {
                    if (IsSelected(data.shpIndex))
                    {
                        MapWinGIS.Shapefile sf = m_globals.CurrentLayer;
                        sf.StartEditingShapes(true, null);

                        MapWinGIS.Shape shp = sf.get_Shape(data.shpIndex);
                        shp.DeletePoint(data.pointIndex);
                    }
                }
            }
            catch (System.Exception ex)
            {
                m_globals.MapWin.ShowErrorDialog(ex);
            }
        }