Is there a way to show all of the labels for a particular layer without suppressing any of them? For instance, when I’m zoomed in closely, the labels look like this:
When I zoom out, I still need to show all three, but one of them is suppressed:
The only way I can show all of them is if I allow them to overlap, but then it looks like this:
Is there a way to make the labels all display without overlapping? Here are the current settings on the label style:
Generally OverlappingRule and DuplicateRule is enough, because our label need to be show in one part of line shape unless you set offset for them, that means when you zoom out to a high level and the three roads will be very short and in a small area, it’s hard to render all labels and make them not overlap.
But it looks your label haven’t been render in road on map from your 2nd and 3rd screen capture, I think that should be related with your other settings of ARGBTextStyle, could you please let us know more detail about that so we can reproduce it and help you?
Thanks for your detail code, I tried that and found we cannot make each label shows well if you zoom out to high, but we can make the label looks better when some part overlap by other labels.
Please modify your code like this:
argbTextStyle.OverlappingRule = LabelOverlappingRule.AllowOverlapping; // Set allow overlapping
this.Mask = new AreaStyle(new GeoPen(GeoColor.FromArgb(a, r, g, b), 2), new GeoSolidBrush(GeoColor.FromArgb(backgroundA, backgroundR, backgroundG, backgroundB))); this.Mask.DrawingLevel = ThinkGeo.MapSuite.Core.DrawingLevel.LabelLevel; // Add this line after assign value to Mask
Do you think that looks better now?
If you think the text cannot be watch well, I think you can try to just use different color as label and show legend for them.