C#制作鹰眼的详细全过程(带注释)实例代码

 更新时间:2013年03月16日 22:42:46   作者:  
C#制作鹰眼的详细全过程(带注释)实例代码,需要的朋友可以参考一下

axMapControl1是主控件,axMapControl2是鹰眼控件

要看清楚事件响应

 

1.鹰眼地图资源载入

复制代码 代码如下:

privatevoid 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 );

        }


相关文章

  • C#微信公众号开发之使用MessageHandler简化消息处理流程

    C#微信公众号开发之使用MessageHandler简化消息处理流程

    这篇文章介绍了C#微信公众号开发之使用MessageHandler简化消息处理流程,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • 学习C#静态函数及变量的一个精典例子与代码

    学习C#静态函数及变量的一个精典例子与代码

    学习C#静态函数及变量的一个精典例子与代码...
    2007-03-03
  • C#将字母或数字加密成字母的方法

    C#将字母或数字加密成字母的方法

    这篇文章主要介绍了C#将字母或数字加密成字母的方法,涉及C#操作字符串的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • C#递归算法之归并排序

    C#递归算法之归并排序

    这篇文章主要介绍了C#递归算法中的归并排序,需要的朋友可以参考下。
    2016-06-06
  • 详解c# 数组(Array)

    详解c# 数组(Array)

    这篇文章主要介绍了c# 数组的的相关资料,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • C#实现基于链表的内存记事本实例

    C#实现基于链表的内存记事本实例

    这篇文章主要介绍了C#实现基于链表的内存记事本,实例分析了C#基于链表实现的记事本功能,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • 如何用C#创建用户自定义异常浅析

    如何用C#创建用户自定义异常浅析

    虽然在 C# 语言中已经提供了很多异常处理类,但在实际编程中还是会遇到未涉及的一些异常处理,这篇文章主要给大家介绍了关于如何用C#创建用户自定义异常的相关资料,需要的朋友可以参考下
    2021-06-06
  • C#通过JObject解析json对象

    C#通过JObject解析json对象

    这篇文章介绍了C#通过JObject解析json对象的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • C# DateTime.Now.ToString() 用法示例讲解

    C# DateTime.Now.ToString() 用法示例讲解

    这篇文章主要介绍了C# DateTime.Now.ToString() 用法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-01-01
  • C# ComboBox下拉框实现搜索方式

    C# ComboBox下拉框实现搜索方式

    文章介绍了如何在加载窗口时实现一个功能,并在ComboBox下拉框中添加键盘事件以实现搜索功能,由于数据不方便公开,作者表示理解并希望得到大家的指教
    2024-12-12

最新评论