栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C# > C#教程

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

C#教程 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

        }

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/127573.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号