コード例 #1
0
ファイル: FrmEditLine.cs プロジェクト: eglrp/TESTPROJECT-1
        //创建点状线
        private IMarkerLineSymbol CreateMarkerLineSymbol()
        {
            IMarkerLineSymbol pMarkerLS = new MarkerLineSymbol();

            //样式
            if (pMarkerSymbol != null)
            {
                pMarkerLS.MarkerSymbol = pMarkerSymbol;
            }

            ICartographicLineSymbol pCartographicLS = pMarkerLS as ICartographicLineSymbol;

            //颜色
            if (colorCartographicLine.SelectedColor != Color.Empty)
            {
                pCartographicLS.Color = ClsGDBDataCommon.ColorToIColor(colorCartographicLine.SelectedColor);
            }
            else
            {
                pCartographicLS.Color = ClsGDBDataCommon.ColorToIColor(Color.Black);
                colorCartographicLine.SelectedColor = Color.Black;
            }
            //宽度
            pCartographicLS.Width = double.Parse(widthCartographicLine.Text);

            //端点样式
            if (rbCatButt.Checked == true)
            {
                pCartographicLS.Cap = esriLineCapStyle.esriLCSButt;
            }
            else if (rbCatRoundC.Checked == true)
            {
                pCartographicLS.Cap = esriLineCapStyle.esriLCSRound;
            }
            else if (rbCatSquare.Checked == true)
            {
                pCartographicLS.Cap = esriLineCapStyle.esriLCSSquare;
            }

            //节点样式
            if (rbCatMitre.Checked == true)
            {
                pCartographicLS.Join = esriLineJoinStyle.esriLJSMitre;
            }
            else if (rbCatRoundJ.Checked == true)
            {
                pCartographicLS.Join = esriLineJoinStyle.esriLJSRound;
            }
            else if (rbCatBevel.Checked == true)
            {
                pCartographicLS.Join = esriLineJoinStyle.esriLJSBevel;
            }

            //端点箭头样式
            ILineDecorationElement pLineDecorationElement = new SimpleLineDecorationElement();

            return(pMarkerLS);
        }
コード例 #2
0
        /// <summary>
        /// 获得自定义多边形
        /// </summary>
        /// <param name="Button"></param>
        /// <param name="Shift"></param>
        /// <param name="X"></param>
        /// <param name="Y"></param>
        public override void OnMouseDown(int Button, int Shift, int X, int Y)
        {
            IMapControl4 mapControl = null;

            if (_hookHelper != null)
            {
                mapControl = (IMapControl4)_hookHelper.Hook;
                _polygon   = (IPolygon)mapControl.TrackPolygon();
            }
            if (_polygon != null)
            {
                if (_polygon.IsEmpty == false)
                {
                    IMap map = _hookHelper.FocusMap;
                    IGraphicsContainer graphicsContainer = (IGraphicsContainer)map;
                    IActiveView        activeView        = (IActiveView)map;
                    if (_element != null)
                    {
                        graphicsContainer.DeleteElement(_element);
                        activeView.Refresh();
                    }

                    IRgbColor color = new RgbColor();
                    color.Red   = 255;
                    color.Green = 255;
                    color.Blue  = 0;

                    IMarkerLineSymbol markerLineSymbol = new MarkerLineSymbol();
                    markerLineSymbol.Color = color;
                    markerLineSymbol.Width = 2;

                    ISimpleFillSymbol simpleFillSym = new SimpleFillSymbol();
                    simpleFillSym.Style   = esriSimpleFillStyle.esriSFSHollow;
                    simpleFillSym.Outline = markerLineSymbol;

                    IFillShapeElement polygonElement = new PolygonElementClass();
                    polygonElement.Symbol = simpleFillSym;

                    _element          = (IElement)polygonElement;
                    _element.Geometry = _polygon;

                    graphicsContainer.AddElement(_element, 0);
                    activeView.PartialRefresh(esriViewDrawPhase.esriViewGraphics, null, null);

                    //传值
                    if (_frmPolygonExtract.IsDisposed)
                    {
                        _frmPolygonExtract = new FrmPolygonExtract();
                    }
                    _frmPolygonExtract.Map        = _hookHelper.FocusMap;
                    _frmPolygonExtract.MapControl = (IMapControl4)_hookHelper.Hook;
                    _frmPolygonExtract.Geometry   = _polygon;
                    _frmPolygonExtract.Element    = _element;
                    _frmPolygonExtract.ShowDialog();
                }
                else
                {
                    MessageBoxEx.Show("画出的几何图象是空的!", "提示");
                }
            }
            else
            {
                return;
            }
            mapControl.CurrentTool = null;
            _element = null;
        }