VSC# ArcGIS 二次开发--出图工具:添加图名、比例尺、指北针、图例,导出图片或文件、打印地图

这是我们GIS课程的结课作业,只能说,大心血

链接在最后,但是还是希望大家可以看看代码,可以留言相互交流学习。

 

目录

链接在最后,但是还是希望大家可以看看代码,可以留言相互交流学习。

添加图名

指北针

比例尺(类似指北针。从样式库里添加)

图例

指北针窗体

导出地图

打印地图

 


添加图名

public void AddTitle(IPageLayout pageLayout, String s)
        {
            //找到PageLayout
            IPageLayout pPageLayout = mainPageLayoutControl1.PageLayout;
            //找到元素容器
            IGraphicsContainer pGraphicsContainer = pPageLayout as IGraphicsContainer;
            //创建元素
            ITextElement pTextElement = new TextElementClass();
            pTextElement.Text = s;
            ITextSymbol pTextSymbol = new TextSymbolClass();//Text的符号样式
            pTextSymbol.Size = 30;
            pTextSymbol.Color = GetRGB(0, 0, 0);
            pTextElement.Symbol = pTextSymbol;
            //设置位置                        
            IElement pElement = pTextElement as IElement;
            pElement.Geometry = mainPageLayoutControl1.TrackRectangle();
            //将元素添加到容器中
            pGraphicsContainer.AddElement(pElement, 0);
            //刷新
            mainPageLayoutControl1.Refresh();
}

 

指北针

 IMapFrame pMapFrame = ((IActiveView)this.mainPageLayoutControl1.PageLayout).GraphicsContainer.FindFrame(this.mainPageLayoutControl1.ActiveView.FocusMap) as IMapFrame;
               IElement pElement = pMapFrame as IElement;
       
            UID pID = new UIDClass();
            pID.Value = "esriCarto.MarkerNorthArrow";

            IEnvelope pEnv = new EnvelopeClass();
            pEnv.PutCoords(16, 24, 22, 26);

            AddNorthArrow NForm = new AddNorthArrow(mainPageLayoutControl1.ActiveView, esriSymbologyStyleClass.esriStyleClassNorthArrows);//axPageLayoutControl1.ActiveView, esriSymbologyStyleClass.esriStyleClassNorthArrows
            NForm.ShowDialog();
            IStyleGalleryItem styleGalleryItem = NForm.m_styleGalleryItem;
            NForm.Dispose();
            if (styleGalleryItem == null) return;

            IMapSurround pMapSurround = this.CreateSurround(pID, pEnv, styleGalleryItem, pMapFrame, this.mainPageLayoutControl1.PageLayout);
            this.mainPageLayoutControl1.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGraphics, null, null);

比例尺(类似指北针。从样式库里添加)

 IMapFrame pMapFrame = ((IActiveView)this.mainPageLayoutControl1.PageLayout).GraphicsContainer.FindFrame(this.mainPageLayoutControl1.ActiveView.FocusMap) as IMapFrame;
            IElement pElement = pMapFrame as IElement;
            
            UID pID = new UIDClass();
            pID.Value = "esriCarto.ScaleLine";

            IEnvelope pEnv = new EnvelopeClass();
            pEnv.PutCoords(2, 3, 3, 5);

            AddScalebar SForm = new AddScalebar(mainPageLayoutControl1.ActiveView, esriSymbologyStyleClass.esriStyleClassScaleBars);
            SForm.ShowDialog();
            IStyleGalleryItem styleGalleryItem = SForm.m_styleGalleryItem;
            SForm.Dispose();
            if (styleGalleryItem == null) return;

            IMapSurround pMapSurround = this.CreateSurround(pID, pEnv, styleGalleryItem, pMapFrame, this.mainPageLayoutControl1.PageLayout);
            this.mainPageLayoutControl1.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGraphics, null, null);

图例

  • 23
    点赞
  • 139
    收藏
    觉得还不错? 一键收藏
  • 103
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 103
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值