zoukankan      html  css  js  c++  java
  • C#制作鹰眼全过程(带注释)

     

    axMapControl1是主控件,axMapControl2鹰眼控件

    要看清楚事件响应

    1.鹰眼地图资源载入

    private void axMapControl1_OnMapReplaced(object sender, IMapControlEvents2_OnMapReplacedEvent e)

            {

                //当主地图显示控件的地图更换时,鹰眼中的地图也跟随更换

                axMapControl2.LoadMxFile(axMapControl1.DocumentFilename);

                axMapControl2.Extent = axMapControl2.FullExtent;

            }

    2.绘制鹰眼矩形框

    private void axMapControl1_OnExtentUpdated(object sender, IMapControlEvents2_OnExtentUpdatedEvent e)

            {

                // 得到新范围

                IEnvelope pEnv = (IEnvelope)e.newEnvelope;

                IGraphicsContainer pGra = axMapControl2.Map as IGraphicsContainer;

                IActiveView pAv = pGra as IActiveView;

                //在绘制前,清除axMapControl2中的任何图形元素

                pGra.DeleteAllElements();

                IRectangleElement pRectangleEle = new RectangleElementClass();

                IElement pEle = pRectangleEle as IElement;

                pEle.Geometry = pEnv;

                //设置鹰眼图中的红线框

                IRgbColor pColor = new RgbColorClass();

                pColor.Red = 255;

                pColor.Green = 0;

                pColor.Blue = 0;

                pColor.Transparency = 255;

                //产生一个线符号对象

                ILineSymbol pOutline = new SimpleLineSymbolClass();

                pOutline.Width = 2;

                pOutline.Color = pColor;

                //设置颜色属性

                pColor = new RgbColorClass();

                pColor.Red = 255;

                pColor.Green = 0;

                pColor.Blue = 0;

                pColor.Transparency = 0;

                //设置填充符号的属性

                IFillSymbol pFillSymbol = new SimpleFillSymbolClass();

                pFillSymbol.Color = pColor;

                pFillSymbol.Outline = pOutline;

                IFillShapeElement pFillShapeEle = pEle as IFillShapeElement;

                pFillShapeEle.Symbol = pFillSymbol;

                pGra.AddElement((IElement)pFillShapeEle, 0);

                pAv.PartialRefresh(esriViewDrawPhase.esriViewGraphics, null, null);

            }
    3. 实现互动

       private void axMapControl2_OnMouseDown(object sender, IMapControlEvents2_OnMouseDownEvent e)

            {

                IPoint pPt=new PointClass ();

                pPt.PutCoords (e.mapX ,e.mapY );

                //改变主控件的视图范围

                axMapControl1 .CenterAt (pPt );

            }

    版权说明

      如果标题未标有<转载、转>等字则属于作者原创,欢迎转载,其版权归作者和博客园共有。
      作      者:温景良
      文章出处:http://wenjl520.cnblogs.com/  或  http://www.cnblogs.com/

  • 相关阅读:
    火狐浏览器推荐插件原创
    vue转义字符转换成普通字符
    vue中关于插槽的使用
    vue调取摄像头的方法(可以直接使用)
    vue调用andriod方法
    vue中格式化时间戳(可直接使用)
    vue关于$router的使用
    轻松了解Spring中的控制反转和依赖注入(二)
    更加优雅地配置Spring Securiy(使用Java配置和注解)
    更加优雅地搭建SSH框架(使用java配置)
  • 原文地址:https://www.cnblogs.com/wenjl520/p/1351957.html
Copyright © 2011-2022 走看看