/// <summary>
/// 标注
/// </summary>
/// <param name="pGeoFeatLyr">标注图层</param>
/// <param name="pMap">地图对象</param>
/// <param name="annoFieldName">标注字段</param>
public static void Annotation(IGeoFeatureLayer pGeoFeatLyr, IMap pMap, string annoFieldName)
{
//如果Map没有用Maplex引擎,要先设置Map使用这个引擎
//IAnnotateMap pAnnotateMap;
//pAnnotateMap = new MaplexAnnotateMapClass();
//pMap.AnnotationEngine = pAnnotateMap;
IAnnotateMap pAnnoMap;
pAnnoMap = new MaplexAnnotateMapClass();
pMap.AnnotationEngine = pAnnoMap;
IGeoFeatureLayer pGeoFeatLayer;
pGeoFeatLayer = pGeoFeatLyr;
IAnnotateLayerPropertiesCollection pAnnoProps;
pAnnoProps = pGeoFeatLyr.AnnotationProperties;
pAnnoProps.Clear();
ILabelEngineLayerProperties2 pLabelEngine2 = new MaplexLabelEngineLayerPropertiesClass();
pLabelEngine2.Expression = "[" + annoFieldName + "]";
IMaplexOverposterLayerProperties pMaplexPro = new MaplexOverposterLayerPropertiesClass();
pMaplexPro.FeatureType = esriBasicOverposterFeatureType.esriOverposterPolygon;
pMaplexPro.PolygonPlacementMethod = esriMaplexPolygonPlacementMethod.esriMaplexHorizontalInPolygon;
pMaplexPro.CanPlaceLabelOutsidePolygon = false;
pMaplexPro.CanRemoveOverlappingLabel = false;
pMaplexPro.RepeatLabel = false;
pLabelEngine2.OverposterLayerProperties = pMaplexPro as IOverposterLayerProperties;
IMapOverposter pMapPos = pMap as IMapOverposter;
IOverposterProperties pOP = pMapPos.OverposterProperties;
IMaplexOverposterProperties pMaplexOP = pOP as IMaplexOverposterProperties;
pMaplexOP.LabelLargestPolygon = false;
pAnnoProps.Add(pLabelEngine2 as IAnnotateLayerProperties);
pGeoFeatLyr.DisplayAnnotation = true;
}
04-21
09-14
825
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)