C#制作鹰眼全过程(带注释)

C#制作鹰眼全过程(带注释)

 

axMapControl1是主控件

 

要看清楚事件响应

 

 

 

 

 

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

 

 

        }

 

 

 

 

 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值