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 }

你可能感兴趣的:(ArcGis Engine)