创建注记图层C# IFeatureWorkspaceAnno
http://blog.csdn.net/mydriverc/article/details/1675613
//IFeatureWorkspaceAnno Example //The following example show how to use the CreateAnnotationClass on IFeatureWorkspaceAnno
//to create a new feature-linked annotation class. In this function, the annotation class is
//feature-linked to the feature class that is supplied as an argument and is created in the
//same feature dataset as the feature class it is linked to. //The label expression is a simple expression of the values in the field called
//DESCRIPTION in the feature class it is linked to. A text symbol for the feature-linked
//annotation is red with a font of "Courier New". //e.g., nameOfFeatureClass = "States";
//on ArcSDE use ISqlSyntax::QualifyTableName for fully qualified table names.
public IFeatureClass IFeatureWorkspaceAnno_Example(IFeatureClass featureClass)
{
IDataset dataset = (IDataset)featureClass;
//cast for the feature workspace from the workspace
IFeatureWorkspace featureWorkspace = (IFeatureWorkspace)dataset.Workspace;
IFeatureWorkspaceAnno featureWorkspaceAnno = (IFeatureWorkspaceAnno)dataset.Workspace;
//set up the reference scale
ESRI.ArcGIS.Carto.IGraphicsLayerScale graphicLayerScale =
new ESRI.ArcGIS.Carto.GraphicsLayerScaleClass();
IGeoDataset geoDataset = (IGeoDataset)dataset;
graphicLayerScale.Units = ESRI.ArcGIS.esriSystem.esriUnits.esriFeet;
graphicLayerScale.ReferenceScale = 2000;
//set up symbol collection
ESRI.ArcGIS.Display.ISymbolCollection symbolCollection =
new ESRI.ArcGIS.Display.SymbolCollectionClass(); #region "MakeText"
ESRI.ArcGIS.Display.IFormattedTextSymbol myTextSymbol =
new ESRI.ArcGIS.Display.TextSymbolClass();
//set the font for myTextSymbol
stdole.IFontDisp myFont = new stdole.StdFontClass() as stdole.IFontDisp;
myFont.Name = "Courier New";
myFont.Size = 9;
myTextSymbol.Font = myFont;
//set the Color for myTextSymbol to be Dark Red
ESRI.ArcGIS.Display.IRgbColor rgbColor = new ESRI.ArcGIS.Display.RgbColorClass();
rgbColor.Red = 150;
rgbColor.Green = 0;
rgbColor.Blue = 0;
myTextSymbol.Color = (ESRI.ArcGIS.Display.IColor)rgbColor;
//Set other properties for myTextSymbol
myTextSymbol.Angle = 0;
myTextSymbol.RightToLeft = false;
myTextSymbol.VerticalAlignment = ESRI.ArcGIS.Display.esriTextVerticalAlignment.esriTVABaseline;
myTextSymbol.HorizontalAlignment = ESRI.ArcGIS.Display.esriTextHorizontalAlignment.esriTHAFull;
myTextSymbol.CharacterSpacing = 200;
myTextSymbol.Case = ESRI.ArcGIS.Display.esriTextCase.esriTCNormal;
#endregion symbolCollection.set_Symbol(0, (ESRI.ArcGIS.Display.ISymbol)myTextSymbol);
//set up the annotation labeling properties including the expression
ESRI.ArcGIS.Carto.IAnnotateLayerProperties annoProps = new
ESRI.ArcGIS.Carto.LabelEngineLayerPropertiesClass();
annoProps.FeatureLinked = true;
annoProps.AddUnplacedToGraphicsContainer = false;
annoProps.CreateUnplacedElements = true;
annoProps.DisplayAnnotation = true;
annoProps.UseOutput = true; ESRI.ArcGIS.Carto.ILabelEngineLayerProperties layerEngineLayerProps =
(ESRI.ArcGIS.Carto.ILabelEngineLayerProperties)annoProps;
ESRI.ArcGIS.Carto.IAnnotationExpressionEngine annoExpressionEngine =
new ESRI.ArcGIS.Carto.AnnotationVBScriptEngineClass();
layerEngineLayerProps.ExpressionParser = annoExpressionEngine;
layerEngineLayerProps.Expression = "[DESCRIPTION]";
layerEngineLayerProps.IsExpressionSimple = true;
layerEngineLayerProps.Offset = 0;
layerEngineLayerProps.SymbolID = 0;
layerEngineLayerProps.Symbol = myTextSymbol; ESRI.ArcGIS.Carto.IAnnotateLayerTransformationProperties annoLayerTransProp =
(ESRI.ArcGIS.Carto.IAnnotateLayerTransformationProperties)annoProps;
annoLayerTransProp.ReferenceScale = graphicLayerScale.ReferenceScale;
annoLayerTransProp.Units = graphicLayerScale.Units;
annoLayerTransProp.ScaleRatio = 1; ESRI.ArcGIS.Carto.IAnnotateLayerPropertiesCollection annoPropsColl =
new ESRI.ArcGIS.Carto.AnnotateLayerPropertiesCollectionClass();
annoPropsColl.Add(annoProps);
//use the AnnotationFeatureClassDescription to get the list of required
//fields and the default name of the shape field
IObjectClassDescription oCDesc = new ESRI.ArcGIS.Carto.AnnotationFeatureClassDescriptionClass();
IFeatureClassDescription fCDesc = (IFeatureClassDescription)oCDesc;
//create the new class
return featureWorkspaceAnno.CreateAnnotationClass("AnnoTest",
oCDesc.RequiredFields, oCDesc.InstanceCLSID, oCDesc.ClassExtensionCLSID,
fCDesc.ShapeFieldName, "", featureClass.FeatureDataset, featureClass,
annoPropsColl, graphicLayerScale, symbolCollection, true);
}
创建注记图层C# IFeatureWorkspaceAnno的更多相关文章
- 用IFeatureWorkspaceAnno.CreateAnnotationClass 创建注记图层时报“The application is not licensed to modify or create schema”的错误的解决方案。
用IFeatureWorkspaceAnno.CreateAnnotationClass 的方法创建注记图层的时候报"The application is not licensed to m ...
- 【ESRI论坛6周年征文】ArcEngine注记(Anno/ Label/Element等)处理专题 -入门篇
原发表于ESRI中国社区,转过来.我的社区帐号:jhlong http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=122097 ----------- ...
- ArcEngine标注和注记
转自原文 ArcEngine标注和注记 标注和注记是ArcEngine中提供的两种使用文字信息标注地图要素的方式.其中标注是作为图层的属性存在的,可以动态创建,注记作为地理要素被存储.需要注意的是Sh ...
- AE指定字段转成注记
转自原文 ae指定字段转成注记 ArcMap中有一个功能是Label Features,就是可以将图层内指定字段值显示以Label形式显示在主窗口上,在Label Features后,用右键点击图层, ...
- 【ArcEngine入门与提高】Element(元素)、Annotation(注记)旋转
因项目需要,需要做一个旋转注记的工具.因为注记这玩意用的比较少,网上资源也很少,所以做起来相当头疼.在经过一番研究之后,终于搞清楚注记的存储原理了,原来是和Element的类似,只不过注记是要把Ele ...
- WebGIS中自定义互联网地图局部注记的一种方案
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1. 前言 实际项目中我们经常会遇到这样一种场景:地图底图可能是互 ...
- ArcGis 创建Annotation注记要素类、添加注记要素 并加载到Activeview AO C#
AO中一般有两种方式存储图面注记元素,一种使用TextElement,它是文档级的元素,编辑后要通过文档(mxd)保存:另一种是使用Annotation要素类,它是一个独立的要素类(featurecl ...
- 创建文本注记TextElement
1.创建一个字体 /// <summary> /// 字体设置 /// </summary> /// <param name="size">Th ...
- 创建线注记LineElement
1.根据2点创建一条线 /// <summary> /// 创建线 /// </summary> /// <param name="pnt1"> ...
随机推荐
- 什么是php?php的优缺点有哪些?与其它编程语言的优缺点?
身为一个PHP开发者,有必要了解一下PHP的缺点,知道每种语言的优点和缺点,才能知道某种语言在什么场景下适合使用,在什么场景下不适合使用. 这个问题我曾经面试的时候遇到过,我之前没总结过,第一问大部分 ...
- linux下C++的多线程编程
1. 引言 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者.传统的Unix也支持线程的概念,但是在一个进程(proces ...
- Oracle中创建触发器示例及注意事项
1.oracle 中创建触发器示例 CREATE TABLE "CONCEPT"."FREQUENCYMODIFYLOG" ( "FREQUENCYI ...
- jquery map.js
(function ($) { HashMap = function () { var index = 0; var content = ''; var keyV = new Array(); var ...
- 大数据学习——hbase的shell客户端基本使用
1 基本shell命令 1 在hbase的 bin目录下进入命令行 ./hbase shell 2 查看有哪些表 list 3 创建一个表 create 't_user_info', {NAME = ...
- Matplotlib绘图属性(1)
[matplotlib颜色.形状.线型等详细配置方法] #1.颜色(三种方法)-color 八种内置颜色及其缩写: b:blue <蓝色> c:cyan <青色> g:gree ...
- pytorch中的math operation: torch.bmm()
torch.bmm(batch1, batch2, out=None) → Tensor Performs a batch matrix-matrix product of matrices stor ...
- 九度oj 题目1017:还是畅通工程
题目描述: 某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离.省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可 ...
- iOS学习笔记17-FMDB
上一节我已经介绍了SQLite的简单使用,不了解的可以提前去看一下iOS学习笔记16-数据库SQLite,这节我们来讲下FMDB. 一.FMDB介绍 FMDB是一种第三方的开源库,FMDB就是对SQL ...
- iOS学习笔记15-序列化、偏好设置和归档
一.本地持久化 所谓的持久化,就是将数据保存到硬盘中,使得在应用程序或机器重启后可以继续访问之前保存的数据.在iOS开发中,有很多数据持久化的方案,接下来我将尝试着介绍一下5种方案: plist文件( ...