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

时间:2022-03-01 06:56:12 

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

        }

标签:鹰眼
0
投稿

猜你喜欢

  • 浅谈Gradle 常用配置总结

    2023-02-03 11:04:06
  • 浅析java中Integer传参方式的问题

    2023-10-27 03:35:43
  • 浅谈JAVA 内存流的实现

    2021-06-28 05:43:59
  • WPF自定义选择年月控件详解

    2021-09-05 23:48:34
  • 在C# WPF下自定义滚动条ScrollViewer样式的操作

    2022-09-17 16:55:28
  • C#获取计算机硬件与操作系统的相关信息

    2022-12-12 07:11:36
  • Android实现调用摄像头拍照并存储照片

    2023-05-02 10:48:20
  • 如何利用反射构建元数据查看器

    2021-05-27 00:11:05
  • Spring MVC4.1服务器端推送实现过程解析

    2021-07-24 14:53:16
  • C# Winfom 中ListBox的简单用法详解

    2023-03-14 20:38:47
  • 深入了解Java设计模式之策略模式

    2021-06-24 22:45:56
  • Netty分布式pipeline管道异常传播事件源码解析

    2021-08-15 16:12:02
  • java对指定目录下文件读写操作介绍

    2023-01-26 11:53:17
  • java 配置MyEclipse Maven环境具体实现步骤

    2021-07-31 04:12:23
  • SpringBoot异步任务使用方法详解

    2021-08-07 07:57:02
  • intellij idea14打包apk文件和查看sha1值

    2022-05-25 13:18:37
  • Android实现MVVM架构数据刷新详解流程

    2023-07-05 13:33:41
  • Java之BigDecimal的坑及解决

    2022-05-17 01:09:01
  • Netty分布式高性能工具类异线程下回收对象解析

    2023-07-09 21:02:43
  • c#日志记录帮助类分享

    2021-07-06 16:45:03
  • asp之家 软件编程 m.aspxhome.com