年度变更建库软件5.0版本
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

66 lines
2.7 KiB

6 months ago
using ESRI.ArcGIS.Carto;
using ESRI.ArcGIS.Controls;
using ESRI.ArcGIS.Display;
using KGIS.Framework.Maps;
using KGIS.Framework.Utils;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Kingo.PluginServiceInterface.Helper
{
public class MarkLabelLayerForZYQ
{
//AxMapControl axMapControl1 = MapsManager.Instance.MapService.getAxMapControl();
public static void MarkLayer()
{
try
{
//AxMapControl axMapControl1 = MapsManager.Instance.MapService.getAxMapControl();
IFeatureLayer pFeatureLayer = MapsManager.Instance.MapService.GetFeatureLayerByName("ZYQ");
if (pFeatureLayer == null) return;
IGeoFeatureLayer pGeoLayer = pFeatureLayer as IGeoFeatureLayer;
IRgbColor pColor = new RgbColorClass() { Red = 85, Blue = 105, Green = 255 };
stdole.IFontDisp pFont = new stdole.StdFont()
{
Name = "宋体",
//Bold = true
} as stdole.IFontDisp;
ITextSymbol pTextSymbol = new TextSymbolClass()
{
Color = pColor,
Font = pFont,
Size = 8
};
IBasicOverposterLayerProperties pBasicOverLayerPro = new BasicOverposterLayerPropertiesClass();
pBasicOverLayerPro.FeatureType = esriBasicOverposterFeatureType.esriOverposterPolygon;
pBasicOverLayerPro.GenerateUnplacedLabels = true;
pBasicOverLayerPro.NumLabelsOption = esriBasicNumLabelsOption.esriOneLabelPerShape;
ILabelEngineLayerProperties pLableEngine = new LabelEngineLayerPropertiesClass()
{
Symbol = pTextSymbol,
IsExpressionSimple = true
};
IOverposterLayerProperties2 pOverLayerProper = pBasicOverLayerPro as IOverposterLayerProperties2;
pOverLayerProper.TagUnplaced = true;//设置该属性,目的是不被其他element遮挡
pLableEngine.BasicOverposterLayerProperties = pBasicOverLayerPro;
IAnnotateLayerProperties pAnnoPros = pLableEngine as IAnnotateLayerProperties;
pGeoLayer.AnnotationProperties.Add(pAnnoPros);
pGeoLayer.DisplayAnnotation = true;
//axMapControl1.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewBackground, null, axMapControl1.Extent);
}
catch (Exception ex)
{
LogAPI.Debug("设置标注时发生异常,异常信息如下:" + ex);
return;
}
}
}
}