ThinkGeo.com    |     Documentation    |     Premium Support

Mask size on DefaultTextStyle

 Hello,


 


I am using a mask for a DefaultTextStyle on a feature layer.  The mask displays as expected, but there is very little space between the edges of the text and the boarder of the mask.  Is there a way to increase the margin around the text, or the size of the mask, to make the text easier to read?


 


Thanks,


Dib



Hi Dib, 
  
 The DefaultTextStyle has a property named “MaskMargin” which can handle this. Please try the following codes: 
  
             majorCitiesShapeLayer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle = TextStyles.City1("AREANAME"); 
             majorCitiesShapeLayer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle.BestPlacement = true; 
             majorCitiesShapeLayer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle.Mask = AreaStyles.Country1; 
             majorCitiesShapeLayer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle.MaskMargin = 5; 
  
 if any other questions, please let us know. 
  
 Hope it helps 
  
 Johnny 


Looks good, thanks for the info.  Should have found that one on my own! Think I was looking under the .Mask items instead of the DefaultTextStyle item.



One more issue: 

I have an LayerOverlay that I am adding InMemoryFeatureLayers to.  Each for them in an arrow image that is loaded as a GeoImage, with the rotationAngle set.  Then I add some text behind the arrow via the DefaultTextStyle.   



Sometimes this works without a problem.  Other times, however, the text does not always show.  Panning the map, or zooming in and out cause the text to appear and disappear, but it doesn't happen in a consistent way.  I have noticed that it usually starts to happen after 3 of these  InMemoryFeatureLayers have been added.  Any ideas on what might be going on? 



 


Hi Dib,
 
It should be because you didn’t set “DefaultTextStyle.OverlappingRule=LabelOverlappingRule.AllowOverlapping;”, attach is our test code
And the following can show the difference.
 
WithOut “DefaultTextStyle.OverlappingRule=LabelOverlappingRule.AllowOverlapping;”
 
 
 
With “DefaultTextStyle.OverlappingRule=LabelOverlappingRule.AllowOverlapping;”

 
 
Hope it helps
 
Johnny
 

Johnny, 
  
 The overlapping rule was already set, so that wasn’t it.  I did solve it by putting the text in a separate layer, and setting .DuplicateRule = LabelDuplicateRule.UnlimitedDuplicateLabels for that layer.  That did the trick.

Hi Dib, 
  
 Great to hear you found a walkaround, and thanks for sharing it with us. If you have any more question, please feel free to ask. 
  
 Best Regards 
  
 Johnny