AE实现Label Feature(转)
主要运用IAnnotateLayerPropertiesCollection ,IAnnotateLayerProperties, ILineLabelPosition,ILineLabelPlacementPriorities ,IBasicOverposterLayerProperties,ILabelEngineLayerProperties等接口。
private void AddlableTolayer(IGeoFeatureLayer pGeoFeatureLayer, string fieldname) { IFeatureClass pFeatureClass; pFeatureClass = pGeoFeatureLayer.FeatureClass; //矢量图层标注信息设置 IAnnotateLayerPropertiesCollection pAnnotateLayerPropertiesCollection; pAnnotateLayerPropertiesCollection = pGeoFeatureLayer.AnnotationProperties; pAnnotateLayerPropertiesCollection.Clear(); //定义一个矢量图层动态标注显示 IAnnotateLayerProperties pAnnotateLayerProperties; //定义控制线标注的相对位置 ILineLabelPosition pLineLabelPosition; //控制线标注的属性设置 ILineLabelPlacementPriorities pLineLabelPlacementPriorities; IBasicOverposterLayerProperties pBasicOverposterLayerProperties; ILabelEngineLayerProperties pLabelEngineLayerProperties; pLineLabelPosition = new LineLabelPositionClass(); pLineLabelPosition.Parallel = false; pLineLabelPosition.Perpendicular = true; pLineLabelPlacementPriorities = new LineLabelPlacementPrioritiesClass(); pBasicOverposterLayerProperties = new BasicOverposterLayerPropertiesClass(); pBasicOverposterLayerProperties.FeatureType = esriBasicOverposterFeatureType.esriOverposterPolyline; pBasicOverposterLayerProperties.LineLabelPlacementPriorities = pLineLabelPlacementPriorities; pBasicOverposterLayerProperties.LineLabelPosition = pLineLabelPosition; pLabelEngineLayerProperties = new LabelEngineLayerPropertiesClass(); pLabelEngineLayerProperties.BasicOverposterLayerProperties = pBasicOverposterLayerProperties; pLabelEngineLayerProperties.Expression = "["+fieldname +"]"; pAnnotateLayerProperties = pLabelEngineLayerProperties as IAnnotateLayerProperties; pAnnotateLayerPropertiesCollection.Add(pAnnotateLayerProperties); } private void labelfeature_Click(object sender, EventArgs e) { IGeoFeatureLayer geolayer=TOCRightLayer as IGeoFeatureLayer;//将TOCRightLayer 赋值,从MapControl中获取的图层 geolayer.DisplayAnnotation = labelfeature.Checked; AddlableTolayer(geolayer, "乡名称"); //关于要标注的属性字段可以弹出一个窗体来选择。 mainMapControl.Refresh(); }
更多GIS开发相关问题请加入 GIS开发学习QQ交流群 192251607 共同交流学习!

浙公网安备 33010602011771号