zoukankan      html  css  js  c++  java
  • ArcGis实现画矩形(RectangleFeedBack)

    private void axMapControl1_OnMouseDown(object sender, IMapControlEvents2_OnMouseDownEvent e)
            {
                IPoint pPoint = new PointClass();
                pPoint.PutCoords(e.mapX, e.mapY);
                pFeedBack = new NewEnvelopeFeedbackClass();
                pFeedBack.Display = axMapControl1.ActiveView.ScreenDisplay;
                pFeedBack.Start(pPoint);
            }
            private void axMapControl1_OnMouseMove(object sender, IMapControlEvents2_OnMouseMoveEvent e)
            {
                IPoint pPoint = new PointClass();
                pPoint.PutCoords(e.mapX, e.mapY);
                pFeedBack.MoveTo(pPoint);
            }
            private void axMapControl1_OnMouseUp(object sender, IMapControlEvents2_OnMouseUpEvent e)
            {
                IGeometry pGeometry;
                pGeometry = pFeedBack.Stop();
                pFeedBack = null;
                IActiveView pActiveView = axMapControl1.ActiveView;
               
                AddRectangle(pGeometry, pActiveView);
            }
            private void AddRectangle(IGeometry pGeometry, IActiveView pActiveView)
            {
                ISimpleLineSymbol pSimpleLineSymbol = new SimpleLineSymbolClass();
                pSimpleLineSymbol.Color = GetRGBColor(255, 215, 0);
                pSimpleLineSymbol.Style = esriSimpleLineStyle.esriSLSDash;
                pSimpleLineSymbol.Width = 2;
              
                ISimpleFillSymbol pSimpleFillSymbol = new SimpleFillSymbolClass();
                pSimpleFillSymbol.Color = GetRGBColor(0, 80, 30);
                pSimpleFillSymbol.Outline = pSimpleLineSymbol;
                pSimpleFillSymbol.Style = esriSimpleFillStyle.esriSFSSolid;
                IElement pElement;
                pElement = new RectangleElementClass();
                pElement.Geometry = pGeometry;//同画圆不同,这里直接引用的pGeometry
                IFillShapeElement pFillShapeElement;
                pFillShapeElement = pElement as IFillShapeElement;
                pFillShapeElement.Symbol = pSimpleFillSymbol;
                IGraphicsContainer pGraphicsContainer = axMapControl1.ActiveView as IGraphicsContainer;
                pGraphicsContainer.AddElement((IElement)pFillShapeElement, 0);
                axMapControl1.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGraphics, null, null);
            }
            private IRgbColor GetRGBColor(int red, int green, int blue)
            {
                IRgbColor rGBColor = new RgbColorClass();
                rGBColor.Red = red;
                rGBColor.Green = green;
                rGBColor.Blue = blue;
                return rGBColor;
            }
  • 相关阅读:
    Oracle学习 第25天 Oracle版的Profiler
    Oracle学习 第24天 .net EF连Oracle
    项目中各子系统之间数据交互的方法总结与心得
    Python学习 第7天 爬虫-1 构思
    Oracle学习 第23天 Oracle视图、表、SqlServer、excel、csv的互导
    Python学习 第6天 类、模块、包
    Python学习 第5天 函数
    Javascript/Jquery实现日期前一天后一天
    Javascript/Jquery遇到字符串自动NaN的问题
    Eclipse打包jar
  • 原文地址:https://www.cnblogs.com/gisoracle/p/4818520.html
Copyright © 2011-2022 走看看