using DelftTools.Utils.Aop; using SharpMap.Api.Delegates; using SharpMap.Api.Enums; namespace SharpMap.Api.Layers { public interface ILabelLayer : ILayer { /// /// Gets or sets labelling behavior on multipart geometries /// /// Default value is MultipartGeometryBehaviourEnum MultipartGeometryBehaviour { get; set; } /// /// Render whether smoothing (antialiasing) is applied to lines and curves and the edges of filled areas /// System.Drawing.Drawing2D.SmoothingMode SmoothingMode { get; set; } /// /// Specifies the quality of text rendering /// System.Drawing.Text.TextRenderingHint TextRenderingHint { get; set; } /// /// Gets or sets the rendering style of the label layer. /// ILabelStyle Style { get; set; } /// /// Gets or sets thematic settings for the layer. Set to null to ignore thematics /// ITheme Theme { get; set; } /// /// Data column or expression where label text is extracted from. /// /// /// This property is overriden by the . /// string LabelColumn { get; set; } /// /// Gets or sets the method for creating a custom label string based on a feature. /// /// /// If this method is not null, it will override the value. /// The label delegate must take a and return a string. /// /// Creating a label-text by combining attributes "ROADNAME" and "STATE" into one string, using /// an anonymous delegate: /// /// myLabelLayer.LabelStringDelegate = delegate(SharpMap.Data.FeatureDataRow fdr) /// { return fdr["ROADNAME"].ToString() + ", " + fdr["STATE"].ToString(); }; /// /// /// GetLabelMethod LabelStringDelegate { get; set; } /// /// Data column from where the label rotation is derived. /// If this is empty, rotation will be zero, or aligned to a linestring. /// Rotation are in degrees (positive = clockwise). /// string RotationColumn { get; set; } /// /// A value indication the priority of the label in cases of label-collision detection /// int Priority { get; set; } [Aggregation] ILayer Parent { get; set; } } }