zoukankan      html  css  js  c++  java
  • arcEngine经典代码添加气泡提示框(标注,文本,)

    arcEngine经典代码-添加气泡提示框(标注,文本,)

    分类: ArcGIS 1549人阅读 评论(4) 收藏 举报

      private void axMapControl1_OnMouseDown(object sender, IMapControlEvents2_OnMouseDownEvent e)
            {
            
                if (i >= 3)//测试目的
                    return;
                i++;

                ITextElement te = createTextElement(e.mapX,e.mapY,"魁x");
                axMapControl1.ActiveView.GraphicsContainer.AddElement(te as IElement, 1);
                axMapControl1.Refresh(esriViewDrawPhase.esriViewGraphics, null, null);

         
            }
            int i;

            public IBalloonCallout createBalloonCallout(double x, double y)
            {
                IRgbColor rgb = new RgbColorClass();
                {
                    rgb.Red = 255;
                    rgb.Green = 255;
                    rgb.Blue = 200;

                }
                ISimpleFillSymbol sfs = new SimpleFillSymbolClass();
                {
                    sfs.Color = rgb;
                    sfs.Style = esriSimpleFillStyle.esriSFSSolid;
                }

                IPoint p = new PointClass();
                {
                    p.PutCoords(x, y);
                }

                IBalloonCallout bc = new BalloonCalloutClass();
                {
                    bc.Style = esriBalloonCalloutStyle.esriBCSRoundedRectangle;
                    //
                    bc.Symbol = sfs;
                    //
                    bc.LeaderTolerance = 10;
                    //1

                    bc.AnchorPoint = p;
                }

                return bc;
            }

            public ITextElement createTextElement(double x, double y, string text)
            {
                IBalloonCallout bc = createBalloonCallout(x, y);
                
                IRgbColor rgb = new RgbColorClass();
                {
                    //rgb.Red = 255;
                    rgb.Green = 255;
                }
                ITextSymbol ts = new TextSymbolClass();
                {
                    ts.Color = rgb;
                }

                IFormattedTextSymbol fts = ts as IFormattedTextSymbol;
                {
                    fts.Background = bc as ITextBackground;
                }
                //fts.Size = 8;
                ts.Size = 8;

                IPoint point = new PointClass();
                {
                    double width = axMapControl1.Extent.Width / 13;
                    double height = axMapControl1.Extent.Height / 20;
                    point.PutCoords(x + width, y + height);
                }

                ITextElement te = new TextElementClass();
                //IMarkerElement me = new MarkerElementClass();
                {
                    te.Symbol = ts;
                    //ts.Text = text;
                    te.Text = text;
                }

                IElement e = te as IElement;
                {
                    e.Geometry = point;
                }
                return te;

            }
        }

    posted @ 2008-08-11 18:56 风过 无痕

  • 相关阅读:
    Android 图片文字单位 px、dp、sp区别
    替换Fragment 报错 The specified child already has a parent. You must call removeView() on the child's parent first.
    Android 程序怎么打log
    Android 启动项 Activity
    Actiivity 生命周期
    Oracle 监听/数据库 启动/关闭
    【HDU-2049】不容易系列之(4)——考新郎
    Linux内存子系统——Locking Pages(内存锁定)
    command三国杀开发日记20200915
    command三国杀开发日记20200914
  • 原文地址:https://www.cnblogs.com/xianyin05/p/3101051.html
Copyright © 2011-2022 走看看