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 多版本控制
    texedo 分布式事务
    OLAP 大表和小表并行hash join
    分页SQL模板
    全表扫描分页
    索引的结构图
    利用函数索引优化<>
    分页SQL取下一页
    SORT ORDER BY STOPKEY
    压缩跟踪(CT)代码具体学习_模块1(样本的採集和扩充)
  • 原文地址:https://www.cnblogs.com/gisoracle/p/4818520.html
Copyright © 2011-2022 走看看