Engine中如何强制所有label都显示?

Engine中如何设置label属性,强制所有label都显示?
已邀请:

刘峥 - ArcGIS多面手

赞同来自:

【解决办法】:
测试设置BasicOverposterLayerProperties无法强制所有label都显示,改用mapxlexengine后可以成功:


IAnnotateMap pAnnoMap = new MaplexAnnotateMapClass(); 
axMapControl1.Map.AnnotationEngine = pAnnoMap; 
IGeoFeatureLayer pGeoFeatLayer = axMapControl1.get_Layer(0) as IGeoFeatureLayer; 
IAnnotateLayerPropertiesCollection pAnnoProps = pGeoFeatLayer.AnnotationProperties; 
pAnnoProps.Clear(); 
ILabelEngineLayerProperties2 pLabelEngine2 = new MaplexLabelEngineLayerPropertiesClass(); 
pLabelEngine2.Expression = [FULL_NAME]; 

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); 
pGeoFeatLayer.DisplayAnnotation = true; 
axMapControl1.ActiveView.Refresh();

要回复问题请先登录注册