创建文本注记TextElement

1.创建一个字体

/// <summary>

/// 字体设置

/// </summary>

/// <param name="size">The size.</param>

/// <param name="fontname">The fontname.</param>

/// <returns>

/// IFontDisp

/// </returns>

public static stdole.IFontDisp GetIFontDisp(float size, string fontname)

{

string fontFamilyName = fontname;

FontStyle fontStyle = FontStyle.Regular;

Font font = new Font(fontFamilyName, size, fontStyle);

return OLE.GetIFontDispFromFont(font) as stdole.IFontDisp;

}

2.创建文本注记样式

/// <summary>

///文本注记样式

/// </summary>

/// <param name="geometry">标注点,一个点即可</param>

/// <param name="text">标注内容</param>

/// <returns>

/// IElement

/// </returns>

public static ITextSymbol GetTextElement(IGeometry geometry, string text)

{

ITextSymbol textSymbol = new TextSymbolClass();

textSymbol.Color = ColorCustom(0, 0, 0);

////不可以直接修改textSymbol.Font.Bold等属性,无效

stdole.IFontDisp font =  GetIFontDisp(9F, "宋体");

font .Bold = false;

font .Italic = false;

font .Strikethrough = false;

font .Underline = false;

textSymbol.Font = font;

textSymbol.HorizontalAlignment = esriTextHorizontalAlignment.esriTHALeft; ////水平

textSymbol.VerticalAlignment = esriTextVerticalAlignment.esriTVATop; ; ////垂直

return textSymbol ;

}

3.创建文本注记

ITextElement textElement = new TextElementClass();

textElement.ScaleText = true;

textElement.Symbol = GetTextElement();

textElement.Text = text;

IElement element = textElement as IElement;

element.Geometry = geometry;

时间: 2024-10-13 02:19:46

创建文本注记TextElement的相关文章

创建线注记LineElement

1.根据2点创建一条线 /// <summary> /// 创建线 /// </summary> /// <param name="pnt1">The PNT1.</param> /// <param name="pnt2">The PNT2.</param> public static void CreateLine( IPoint pnt1, IPoint pnt2) { IPolyline

ArcGis 创建Annotation注记要素类、添加注记要素 并加载到Activeview AO C#

AO中一般有两种方式存储图面注记元素,一种使用TextElement,它是文档级的元素,编辑后要通过文档(mxd)保存:另一种是使用Annotation要素类,它是一个独立的要素类(featureclass),需要存储到地理数据库中.使用Annotation featureclass 的方式更灵活.更强大,至于如何灵活,如何强大,待你用到便自知. 1.创建一个标准的Annotation要素类(StandardAnnotationClass) 1 public AnnotationMark(IFe

创建面注记PolygonElement

1.根据4点创建一个面 /// <summary> /// 根据4个点创建图形,点序要顺时针 /// </summary> /// <param name="pnt1">点1</param> /// <param name="pnt2">点2</param> /// <param name="pnt3">点3</param> /// <param

创建注记图层要素

创建完文本注记TextElement后,可以选择以屏幕注记的形式加到屏幕上,也可以通过下面的方式转为注记图层要素: IFeatureClass annocls = 获取注记图层 IDataset pDataset = annocls as IDataset; ITransactions pTransactions = pDataset.Workspace as ITransactions; pTransactions.StartTransaction(); IFDOGraphicsLayerFa

AE指定字段转成注记

转自原文 ae指定字段转成注记 ArcMap中有一个功能是Label Features,就是可以将图层内指定字段值显示以Label形式显示在主窗口上,在Label Features后,用右键点击图层,发现可以出现一个原来灰色的功能名,ConvertLabelsToAnnotation.这个功能在AE中提供,可是自己找不到设定字段值的位置,无可奈何,只有另辟蹊径. 就是先创建一个注记层,然后按照图层里指定字段的值来生成注记.就是一个一个Feature点转换.可能会比AE提供的接口效率低,没有办法,

CAD2GIS:arcengine注记添加

在做CAD注记转GIS注记,坎坷,百度了几乎所有可能的资料. 主要参照这里的方法(c++).我使用C#重写了,均测试通过. http://www.cnblogs.com/junyuz/archive/2011/09/01/2162625.html 重要提示:        必须创建好注记图层,设置好比例尺和坐标系.困在这里两天没通过. 方法一 通过IFDOGraphicsLayer添加Elements的方式实现 /// <summary> /// 添加到注记图层 /// </summar

ArcEngine标注和注记

转自原文 ArcEngine标注和注记 标注和注记是ArcEngine中提供的两种使用文字信息标注地图要素的方式.其中标注是作为图层的属性存在的,可以动态创建,注记作为地理要素被存储.需要注意的是Shp文件不支持注记.  绘制标注的方式有两种.让我们先看第一种: 1.使用TextElment绘制标注. 这种方法的原理就是把属性表中的某个属性创建TextElment对象,然后使用IGraphicsContainer 的AddElement方法添加标注.实例代码: //使用TextElment绘制标

WebGIS中自定义互联网地图局部注记的一种方案

1.    前言 实际项目中我们经常会遇到这样一种场景:地图底图可能是互联网地图(百度.高德.天地图)等等,同时我们自己又有某个区域单独的一套POI数据,我们需要将互联网地图中这个区域的原有POI数据进行遮罩然后只显示我们自己的POI数据. 针对这样的需求,我们首先想到的是能否我们只使用不包含注记的底图瓦片,然后再叠加上我们的POI数据.事实上,实际需求中还需要考虑一点,我们只有部分区域的POI数据,却没有其他区域的POI数据. 所以这个需求真正的核心是:除这个不规则多边形的指定区域外,地图均是

使用Htmlhelper,创建文本框TextBox

下面通过HtmlHelper帮助类,创建文本框. 首先新建一个实体类,做为下面的例子: using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace MVCRestartlearnning.Models { public class Student { /// <summary> /// 学号 /// </summary> public int Stude