|
阅读:1288回复:0
图层标注(C#)
/// <summary><BR> /// (重载)图层标注<BR> /// </summary><BR> /// <param name="pFeaturelayer">标注图层</param><BR> /// <param name="sLableField">标注字段</param><BR> /// <param name="pRGB">颜色</param><BR> /// <param name="size">大小</param><BR> public static void FunLabelFeatureLayer(IFeatureLayer pFeaturelayer, string sLableField, IRgbColor pRGB, int size)<BR> {<BR> if (pFeaturelayer == null)<BR> return;<BR> IGeoFeatureLayer pGeoFeaturelayer = (IGeoFeatureLayer)pFeaturelayer;<BR> IAnnotateLayerPropertiesCollection pAnnoLayerPropsCollection;<BR> pAnnoLayerPropsCollection = pGeoFeaturelayer.AnnotationProperties;<BR> pAnnoLayerPropsCollection.Clear();<BR><BR> //stdole.IFontDisp pFont; //字体<BR> ITextSymbol pTextSymbol;<BR><BR> //pFont.Name = "新宋体";<BR> //pFont.Size = 9;<BR> if (pRGB == null)<BR> {<BR> pRGB = new RgbColorClass();<BR> pRGB.Red = 0;<BR> pRGB.Green = 0;<BR> pRGB.Blue = 0;<BR> }<BR><BR> pTextSymbol = new TextSymbolClass();<BR> pTextSymbol.Color = (IColor)pRGB;<BR> pTextSymbol.Size = size;<BR><BR> IBasicOverposterLayerProperties pBasicOverposterlayerProps = new BasicOverposterLayerPropertiesClass();<BR> switch (pFeaturelayer.FeatureClass.ShapeType)<BR> {<BR> case ESRI.ArcGIS.Geometry.esriGeometryType.esriGeometryPolygon:<BR> pBasicOverposterlayerProps.FeatureType = esriBasicOverposterFeatureType.esriOverposterPolygon;<BR> break;<BR> case ESRI.ArcGIS.Geometry.esriGeometryType.esriGeometryPoint:<BR> pBasicOverposterlayerProps.FeatureType = esriBasicOverposterFeatureType.esriOverposterPoint;<BR> break;<BR> case ESRI.ArcGIS.Geometry.esriGeometryType.esriGeometryPolyline:<BR> pBasicOverposterlayerProps.FeatureType = esriBasicOverposterFeatureType.esriOverposterPolyline;<BR> break;<BR> }<BR><BR> ILabelEngineLayerProperties pLabelEnginelayerProps = new LabelEngineLayerPropertiesClass();<BR> pLabelEnginelayerProps.Expression = "[" + sLableField + "]";<BR> pLabelEnginelayerProps.Symbol = pTextSymbol;<BR> pLabelEnginelayerProps.BasicOverposterLayerProperties = pBasicOverposterlayerProps;<BR><BR> pAnnoLayerPropsCollection.Add((IAnnotateLayerProperties)pLabelEnginelayerProps);<BR> pGeoFeaturelayer.DisplayAnnotation = true;<BR> //axMapControl1.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewBackground, null, null);<BR> }
|
|
|