ThinkGeo.com    |     Documentation    |     Premium Support

TextStyle not show label

Hello, ThinkGeo Team! 

I want to draw some labels on the features. But I see that if the bounding box of my label is more than bounding box my feature, my label is not draw. Why? Can I specify that the labels were drawn ALWAYS regardless of the count of chars, fontSize or any other reasons?



My TextStyle:



using System.Collections.ObjectModel;
using ThinkGeo.MapSuite.Core;



namespace ClientUI
{
public class OwnTextStyle : TextStyle


{
private readonly Collection<string> _requiredColumnNames;</string>



public OwnTextStyle (string columnName, GeoFont geoFont, GeoSolidBrush geoSolidBrush, 
LabelDuplicateRule labelDuplicateRule = LabelDuplicateRule.UnlimitedDuplicateLabels)
: base(columnName, geoFont, geoSolidBrush)
{
DuplicateRule = labelDuplicateRule;
DrawingLevel = DrawingLevel.LabelLevel;
OverlappingRule = LabelOverlappingRule.AllowOverlapping;
_requiredColumnNames = new Collection<string>() {TextColumnName};</string>
}
protected override Collection<labelingcandidate> GetLabelingCandidateCore(Feature feature, GeoCanvas canvas)</labelingcandidate>
{

var labelingCandidates = base.GetLabelingCandidateCore(feature, canvas);


foreach (var candidate in labelingCandidates)
{
foreach (var labelInformation in candidate.LabelInformation)
{
labelInformation.PositionInScreenCoordinates.Y += 10;
labelInformation.PositionInScreenCoordinates.X += 10;
}
}
return labelingCandidates;
}
}
}



Sometimes I See the picture as image, but if I set the attribute value: o8ppo8ppo8pp, the label was not draw, because  base.GetLabelingCandidateCore(feature, canvas); return empty list. 



Can you help me? I want to draw labels with your DrawCore method on all features everytime in any zoom. I do not want to override the DrawCore method. Help me, please.



P.s. thinkGeo version 6.5



Thank you.










002_1.png (31.8 KB)

Hi Alex, 
  
 That because TextStyle assumes the label is too large for the polygon and ignore it. The fix is adjust FittingPolygonFactor property on the TextStyle to overrides the default value. 
  
 Thanks, 
 Jack

I figured out, thanks :)

And what about line object? Can I draw label on the LineShape if my label bigger then lenght of LineShape? For example to show text “i love rock’n’roll” on the small LineShape? How? Labels are not drawing:(

 Thank you!

Hi Alex, 
  
 Please adjust TextLineSegmentRatio for line shape. 
  
 Thanks 
 Jack

Thank you very much!

You are welcome, and any questions please feel free to let us know. 
  
 Thanks, 
 Johnny