ArcGIS Engine添加指北针、图例

ArcGIS Engine中地图整饰要素属于MapSurround对象,包括比例尺、指北针、图例等,MapSurround对象由MapSurroundFrame对象管理。

指北针

添加指北针主要用到INorthArrow接口、IElement接口

        private void addNorthArrow(IEnvelope pEnvelope,INorthArrow pNorthArrow)
        {
            IMap pMap = axPageLayoutControl1.ActiveView.FocusMap;
            IMapFrame pMapFrame = (IMapFrame)axPageLayoutControl1.ActiveView.GraphicsContainer.FindFrame(pMap);
            IMapSurroundFrame pMapSurroundFrame = new MapSurroundFrameClass();
            pMapSurroundFrame.MapFrame = pMapFrame;

            pMapSurroundFrame.MapSurround = (IMapSurround)pNorthArrow;

            IElement pElement = (IElement)pMapSurroundFrame;
            pElement.Geometry = pEnvelope;

            axPageLayoutControl1.ActiveView.GraphicsContainer.AddElement(pElement, 0);
            axPageLayoutControl1.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGraphics, null, null);
        }

图例

添加图例主要用到ILegend接口、ILegendItem接口、ILegend类、IElement接口

            ILegend pLegend = new Legend();
            for(int i = 0; i < axPageLayoutControl1.ActiveView.FocusMap.LayerCount; i++)
            {
                ILegendItem pLegendItem = new HorizontalLegendItemClass();
                pLegendItem.Layer = axPageLayoutControl1.ActiveView.FocusMap.Layer[i];
                pLegend.AddItem(pLegendItem);
            }

            //将图例添加到显示
            IMap pMap = axPageLayoutControl1.ActiveView.FocusMap;
            IMapFrame pMapFrame = (IMapFrame)axPageLayoutControl1.ActiveView.GraphicsContainer.FindFrame(pMap);
            IMapSurroundFrame pMapSurroundFrame = new MapSurroundFrameClass();
            pMapSurroundFrame.MapFrame = pMapFrame;

            pMapSurroundFrame.MapSurround = pLegend;
            IElement pElement = pMapSurroundFrame as IElement;
            pElement.Geometry = pEnv;

            axPageLayoutControl1.ActiveView.GraphicsContainer.AddElement(pElement, 0);
            axPageLayoutControl1.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGraphics, null, null);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值