IFeatureLayer pFeatureLayer = CommonLib.ArcObjects.Map.GetFeatureLayerByDatasetName(m_App.FocusMap, "SCDLTB");
IGeoFeatureLayer pGeoLayer = pFeatureLayer as IGeoFeatureLayer;
IAnnotateLayerPropertiesCollection pannotateCollection = pGeoLayer.AnnotationProperties;
pannotateCollection.Clear();
ITextSymbol pTextSymbol = GetSymbol();
IBasicOverposterLayerProperties4 pBasicOverposterLayerProperties = new BasicOverposterLayerPropertiesClass()
{
FeatureType = esriBasicOverposterFeatureType.esriOverposterPolygon,
NumLabelsOption = esriBasicNumLabelsOption.esriOneLabelPerShape //重要的是这句话加上
};
IAnnotationExpressionEngine expressionEngine = new AnnotationVBScriptEngineClass();
//创建标注对象
ILabelEngineLayerProperties pLableEngine = new LabelEngineLayerPropertiesClass()
{
Symbol = pTextSymbol,
BasicOverposterLayerProperties = pBasicOverposterLayerProperties as IBasicOverposterLayerProperties,
IsExpressionSimple = false,
ExpressionParser = expressionEngine,
Expression =
"Function FindLabel([DLMC],[CXZMC] )" + "\r\n" +
"Dim mcl" + "\r\n" +
"Dim cmcl" + "\r\n" +
"mcl = Len([DLMC])" + "\r\n" +
"cmcl = Len([CXZMC])" + "\r\n" +
"Dim strLeftSpace" + "\r\n" +
"Dim strRightSpace" + "\r\n" +
"strLeftSpace = \"\"" + "\r\n" +
"strRightSpace = \"\"" + "\r\n" +
"If mcl> cmcl Then" + "\r\n" +
"For i = 0 To(mcl - cmcl) / 2" + "\r\n" +
"strLeftSpace = strLeftSpace + chr(32)" + "\r\n" +
"strRightSpace = strRightSpace + chr(32)" + "\r\n" +
"Next" + "\r\n" +
"End If" + "\r\n" +
"FindLabel = \"<UND>\" & strLeftSpace & [DLMC] & strRightSpace & \"</UND>\"& chr(13) & chr(10) & [CXZMC]" + "\r\n" +
"End Function"
};
// 设置标注的参考比例尺
IAnnotateLayerTransformationProperties pAnnoLyrPros = pLableEngine as IAnnotateLayerTransformationProperties;
pAnnoLyrPros.ReferenceScale = 2500;
//设置标注可见的最大最小比例尺
IAnnotateLayerProperties pAnnoPros = pLableEngine as IAnnotateLayerProperties;
pAnnoPros.AnnotationMaximumScale = 0;
pAnnoPros.AnnotationMinimumScale = 15000;
//pAnnoPros.WhereClause属性 设置过滤条件
pannotateCollection.Add((IAnnotateLayerProperties)pLableEngine);
pGeoLayer.DisplayAnnotation = true;
ArcEngine 同名标注不显示问题解决思路
猜你喜欢
转载自blog.csdn.net/kongzhonliuxing/article/details/80067221
今日推荐
周排行