ArcGIS Engine Maplex Label(标注)使用一例

Maplex类型标注是AE标注的其中一种方式,现提供一简单使用例子

1 /// <summary>
2 /// MaplexEngine标注
3 /// </summary>
4 /// <param name="pGeoFeatLyr">标注图层</param>
5 /// <param name="pMap">地球人都知</param>
6 /// <param name="annoField">标记字段</param>
7   public void Annotation(IGeoFeatureLayer pGeoFeatLyr, IMap pMap, string annoField)
8 {
9 IAnnotateMap pAnnoMap;
10 pAnnoMap = new MaplexAnnotateMapClass();
11 pMap.AnnotationEngine = pAnnoMap;
12 IGeoFeatureLayer pGeoFeatLayer;
13 pGeoFeatLayer = pGeoFeatLyr;
14 IAnnotateLayerPropertiesCollection pAnnoProps;
15 pAnnoProps = pGeoFeatLyr.AnnotationProperties;
16 pAnnoProps.Clear();
17 ILabelEngineLayerProperties2 pLabelEngine2 = new MaplexLabelEngineLayerPropertiesClass();
18 pLabelEngine2.Expression = "[" + annoField + "]";
19
20 IMaplexOverposterLayerProperties pMaplexPro = new MaplexOverposterLayerPropertiesClass();
21 pMaplexPro.FeatureType = esriBasicOverposterFeatureType.esriOverposterPolygon;
22 pMaplexPro.PolygonPlacementMethod = esriMaplexPolygonPlacementMethod.esriMaplexHorizontalInPolygon;
23 pMaplexPro.CanPlaceLabelOutsidePolygon = false;
24 pMaplexPro.CanRemoveOverlappingLabel = false;
25 pMaplexPro.RepeatLabel = false;
26 pLabelEngine2.OverposterLayerProperties = pMaplexPro as IOverposterLayerProperties;
27 IMapOverposter pMapPos = axMapControl1.Map as IMapOverposter;
28 IOverposterProperties pOP = pMapPos.OverposterProperties;
29 IMaplexOverposterProperties pMaplexOP = pOP as IMaplexOverposterProperties;
30 pMaplexOP.LabelLargestPolygon = false;
31 pAnnoProps.Add(pLabelEngine2 as IAnnotateLayerProperties);
32 pGeoFeatLyr.DisplayAnnotation = true;
33 }
posted @ 2011-03-24 08:49  cannel  阅读(3766)  评论(0编辑  收藏  举报