ThinkGeo.com    |     Documentation    |     Premium Support

Is there an issue with Line labels?

I have a layer with three line features.   I can only get a label displayed on the first feature.   This is the case whether I am labelling an attribute that has the same value for all features, or a different value for each feature.   I have the TextStyle.DuplicateRule set to unlimited.


In the image below, the line labelled 10.00 is the first feature in my layer.   The other two lines will not label.


Is this a known issue with the 5.* stuff (from a July build)?   Or is it more likely programmer error?




Hi Ted, 
  
 We don’t have a known issue about the line label in V5 till now. So I think that should be code problem. 
  
 Have you set some other properties for example TextLineSegmentRatio? 
  
 Regards, 
  
 Don

What is that property.  There is nothing in the help file about it.   It defaulted to .9.   I tried it at 0, and got no labels at all.  I tried it at 1 and 100, and had no change.

Hi Ted,


Actually you might try some larger values for your TextLineSegmentRatio. In the following post we set this value to Double.MaxValue to have labels start displaying!gis.thinkgeo.com/Support/Dis...+Container


There might be other issues such as your .GridSize. If your grid size is very large then very few labels will be displayed as we only allow one label per grid segment. If you have a small grid size you should see many more labels.



What is GridSize?    What object has this property?

Hi Ted,  
  
 You can find GridSize as a member of the TextStyle Class.

Ted,


 Let me elaborate a little bit more from Ryan's answers on those two properties TextLineSegmentRatio and GridSize.


1) The property TextLineSegmentRatio is the ratio between the length of the label and the length of the line segment to allow the label to show. In our labeling logic, we look for the longest line segment to set the label. If, for example, you set the property to 1, this means that the label length can be the same length or less than the line segment to be displayed. If, the property is set to 2, this means that the label can be twice as long as the line segment, etc. So, if you set the TextLineSegmentRatio to the infinite, the label is always going to show regardless of the length of the line segment.


2) The GridSize property will divide the map by cell and in each cell only one label will be considered for showing. So, the bigger you set the value for this property, the smaller the grid size and the higher the density of labels.


Keep in mind that there are many other properties to control the behavior of labeling such as OverlappingRule. I suggest you check our Wiki page on TextStyle for more explanations on the different properties 184.73.226.83/wiki/ThinkGeo.MapSuite.Core.TextStyle



Thank you.  That is an incredibly helpful explanation.   I am sure it is not the TextLineSegmentRatio.   In my picture, you can clearly see that is not an issue.   I allow overlapping.   I allow unlimited duplicates.   I had no idea about the GridSize.  I’m not setting, but I will look and see what the default is and test it.     
  
 Thanks!

Ted,


 I want to also add that line labeling is a highly customizable feature of MapSuite (as for point and polygon labeling). I suggest you check out those two samples MultiLine Labeling and Multiple Labels sample codes. They give a good idea of how to extend the labeling behavior to suit one's exact needs.


wiki.thinkgeo.com/wiki/Map_Suite_De...e_Labeling


wiki.thinkgeo.com/wiki/Map_Suite_De...ple_Labels



Well… this is all a never mind. 
  
 Early this morning I updated to the 146 build, and I have lines labelled correctly with no code change.    I updated to get the recent catch for the invalid bitmap size, and was king of hoping that this might be fixed, too.   Ran in the back of my mind I had seen something about line labels some time back. 
  
 But, this has still be a very help thread.    Thank  you.

Ted, 
  
  I am glad your labels are behaving as expected now and we are glad we could point you out to the right directions to understand more about labeling in Map Suite.