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;
            }
  • 相关阅读:
    SQL Server 存储过程/触发器中调用COM组件的方法
    写入Stream
    Python 3.2 中adodbapi的问题
    Python中将系统输出显示在PyQt中
    动态创建 Lambda 表达式
    Entity Framework框架Code First Fluent API
    扩展IQueryable实现属性名称排序
    在Entity Framework中使用事务
    ASP.NET MVC:通过FileResult向浏览器发送文件
    ASP.NET MVC: 使用自定义 ModelBinder 过滤敏感信息
  • 原文地址:https://www.cnblogs.com/gisoracle/p/4818520.html
Copyright © 2011-2022 走看看