基于C#的AE二次开发之地图标注

我的开发环境为ArcGIS Engine 10.2与Visual studio2010。主地图名称为axMapControl1,创建一个菜单或按钮,创建一个点击事件,粘贴代码修改图层与标注字段即可实现。(注意相关事件的添加与动态链接库的引入)!
效果预览:
实现代码:

private void 标注要素ToolStripMenuItem_Click(object sender, EventArgs e)
{try{IMap pMap = axMapControl1.Map;//获得图层所有要素(在这里输入需要标注的矢量要素类,我这里默认第一个图层【高耦合】)IFeatureLayer pFeatureLayer = axMapControl1.get_Layer(0) as IFeatureLayer;IFeatureCursor pFeatCursor = pFeatureLayer.Search(null, true);IFeature pFeature = pFeatCursor.NextFeature();while (pFeature != null){IFields pFields = pFeature.Fields;//找出标注字段的索引号(在这里填写标注字段名,我这里填的是FID字段)int index = pFields.FindField("FID");//得到要素的EnvelopeIEnvelope pEnve = pFeature.Extent;IPoint pPoint = new ESRI.ArcGIS.Geometry.Point();pPoint.PutCoords(pEnve.XMin + pEnve.Width / 2, pEnve.YMin + pEnve.Height / 2);//新建字体对象stdole.IFontDisp pFont;pFont = new stdole.StdFont() as stdole.IFontDisp;//标注字型为微软雅黑,可自行调整pFont.Name = "微软雅黑";//产生一个文本符号ITextSymbol pTextSymbol = new TextSymbol();//设置文本符号的大小pTextSymbol.Size = 20;pTextSymbol.Font = pFont;//标注字体的颜色为红色IRgbColor pColor = new RgbColor() as IRgbColor;pColor.Red = 255;pColor.Green = 0;pColor.Blue = 0;pTextSymbol.Color = pColor;//产生一个文本对象ITextElement pTextElement = new TextElement() as ITextElement;pTextElement.Text = pFeature.get_Value(index).ToString();pTextElement.ScaleText = true;pTextElement.Symbol = pTextSymbol;IElement pElement = pTextElement as IElement;pElement.Geometry = pPoint;IActiveView pActiveView = pMap as IActiveView;IGraphicsContainer pGraphicsContainer = pMap as IGraphicsContainer;//添加元素pGraphicsContainer.AddElement(pElement, 0);pActiveView.PartialRefresh(esriViewDrawPhase.esriViewGraphics, null, null);pPoint = null;pElement = null;pFeature = pFeatCursor.NextFeature();}}catch (Exception ex){MessageBox.Show("标注字段不存在!");}}

基于C#的AE二次开发之地图标注相关推荐

  1. 基于C#的AE二次开发导出地图为JPG、TIF、PDF图片

    基于C#的AE二次开发导出地图为JPG.TIF.PDF图片 我的开发环境为ArcGIS Engine 10.2与Visual studio2010.创建一个菜单或按钮,创建一个点击事件,粘贴代码即可实 ...

  2. 基于C#的AE二次开发之图层右键菜单打开属性表及图层相关操作

    基于C#的AE二次开发之图层右键菜单打开属性表及图层相关操作 我的开发环境为ArcGIS Engine 10.2与Visual studio2010.主地图名称为axMapControl1,Toc目录 ...

  3. 基于C#的AE二次开发-地图渲染之分级设色符号化

    基于C#的AE二次开发-地图渲染之分级设色渲染符号化 我的开发环境为ArcGIS Engine 10.2与Visual studio2010.主地图名称为axMapControl1,Toc目录名为ax ...

  4. 基于C#的AE二次开发之主界面设计

    上篇文章介绍了AE的安装与配置,下面介绍在VS2012中AE的简单主界面设计方法. 一.项目创建 1.打开VS2012建立项目 在打开界面后,点击新建项目,在弹出的界面中选择Visual C#--Ar ...

  5. python在材料模拟中的应用_基于Python的ABAQUS二次开发及在板料快速冲压成形模拟中的应用...

    2009 doi :10 1 3969/ j 1 issn 1 1007 2 2012 1 2009 1 04 1 013 基于 Python 的 ABAQUS 二次开发及在板料快速 冲压成形模拟中的 ...

  6. sw二次开发 python_基于C#的SolidWorks二次开发.doc

    摘要: 气动电阻点焊钳已经被各大汽车制造厂商广泛运的用于汽车焊接工艺中.它以无污染.压力稳定.动作敏捷等优点逐步替代了国内常见的液压传动焊钳,改变了液压传动滞缓的现象,从而达到了焊接循环的要求.本次毕 ...

  7. 陈伯雄lisp_基于AutoLisp的AutoCAD二次开发自动生成系统图

    龙源期刊网 http://www.qikan.com.cn 基于 AutoLisp 的 AutoCAD 二次开发自动 生成系统图 作者:郎建山 金江 来源:<科技视界> 2013 年第 2 ...

  8. CAD自控lisp_基于AutoLisp的AutoCAD二次开发自动生成系统图

    基于 AutoLisp 的 AutoCAD 二次开发自动生成系统图 [摘 要]本文主要阐述了应用 autolisp 语言二次开发 autocad 自动生成系统图的实现方案. [关键词] autocad ...

  9. python对abaqus本构二次开发_基于Python的Abaqus二次开发实例讲解

    第 1 页 共 11 页 基于 Python 的 Abaqus 二次开发实例讲解 ( asian58 2013.6.26 ) 基于 Python 的 Abaqus 的二次开发便捷之处在于: 1 .所有 ...

最新文章

  1. .Net 转战 Android 4.4 日常笔记(4)--按钮事件和国际化
  2. 各种SmartPhone上的跨平台开源框架的总结
  3. if语句输入月份判断季节_C语言循环及条件语句
  4. vim 命令模式 筛选_10个步骤的筛选器模式
  5. Hive提取json字段信息
  6. dubbo yml配置_Dubbo常见配置说明
  7. vue项目引入三方字体
  8. 北大AI公开课笔记整理
  9. 你应当知道的人工智能发展历史
  10. 中柏平板bios对照表_BIOS详解及中英文对照表
  11. 剑芒罗曼史2解图片程序
  12. 软件测试好学吗 有哪些好的学习建议
  13. js中易错难点集合(1)
  14. 5.22 使用筛选功能快速过滤指定条件的数据 [原创Excel教程]
  15. LeetCode岛屿的最大面积
  16. VM安装win7系统一直失败,可能是镜像文件不对
  17. Hololens开发学习笔记——TrackedHandJoint关节点详解
  18. error LNK2001解决方法
  19. mysql 查询当前年份
  20. 【秋招之操作系统及计算机网络】

热门文章

  1. jquery图片提示效果
  2. 地区数据整理 echarts
  3. PHPExcel 属性操作
  4. shareSDK qq 微信分享
  5. 练习:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少
  6. spring property name=packagesToScan
  7. SQL Server导入.mdf文件及显示附加数据库时出错问题处理
  8. python大一期末考试成绩_期末考试成绩查询系统
  9. ssm+jsp计算机毕业设计基于web的服装设计系统的设计与实现hn9pb(程序+lw+源码+远程部署).
  10. html如何插入音乐,html怎么添加进去歌曲