1. 程式人生 > >ArcGIS Engine Maplex Label(標註)使用一例(轉)

ArcGIS Engine Maplex Label(標註)使用一例(轉)

eat ESS relay moveover .cn spa collect tel not

/// <summary>
        /// MaplexEngine標註
        /// </summary>
        /// <param name="pGeoFeatLyr">標註圖層</param>
        /// <param name="pMap">地球人都知</param>
        /// <param name="annoField">標記字段</param>
         public void Annotation(IGeoFeatureLayer pGeoFeatLyr, IMap pMap, string
annoField) { 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 = "[" + annoField + "]"; 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 = axMapControl1.Map as IMapOverposter; IOverposterProperties pOP = pMapPos.OverposterProperties; IMaplexOverposterProperties pMaplexOP = pOP as IMaplexOverposterProperties; pMaplexOP.LabelLargestPolygon = false; pAnnoProps.Add(pLabelEngine2 as IAnnotateLayerProperties); pGeoFeatLyr.DisplayAnnotation = true; }

來自:https://www.cnblogs.com/cannel/archive/2011/03/24/1993383.html


IAnnotateMap pAnnoMap = new MaplexAnnotateMapClass();
m_hookHelper.FocusMap.AnnotationEngine = pAnnoMap;

使用Maplex

ArcGIS Engine Maplex Label(標註)使用一例(轉)