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;
            }
  • 相关阅读:
    Redis源码解析:07压缩列表
    Redis源码解析:06整数集合
    Redis源码解析:05跳跃表
    Laravel中的路由管理
    jquery登录的异步验证
    ThinkPHP3.2.3中,配置文件里配置项的读取
    ThinkPHP3.2.3中,查询语句中in的使用方法。
    Fatal error: Maximum function nesting level of '100' reached, aborting!
    无限级分类的收缩与展开功能
    mysql添加DATETIME类型字段导致Invalid default value错误的问题
  • 原文地址:https://www.cnblogs.com/gisoracle/p/4818520.html
Copyright © 2011-2022 走看看