Normally when you add labels to your map in MapInfo Pro, all labels for the layer appear in the same way. They have the same color and the same size.
At least that's the case unless you start taking advantage of the more advanced elements around auto-sizing of labels etc. We'll leave that out of the game for now.I'll give you a quick example on how to do better with labels. Hopefully this can spark an discussion on other things users are doing to improve their labels in MapInfo Pro so that we all can learn something new.
In the map below, I have turned on Automatic Labels for the Countries of the World. You can quickly see that there is no order used when deciding which countries to label and which countries not to label.
Another way of adding labels to your map is by having multiple instances of the same layer in your map and for each control which objects will get labeled.
In our example, we have the layer Countries of the World 3 times and for each, we will specify specific records to be labeled.
The first layer will label all the countries with more than 100 million inhabitants. The second will use 20 million as the limit and the last will try to add labels for the countries with less than 20 million.
To determine the order of the layers, you need to know that MapInfo Pro will render the layers and labels from the bottom up. So the further down a layer is, the earlier it will get rendered. The same goes for labels. This means that you will need to have the important, or in our case bigger, countries furthest down.
To make it easier to see the different labels, I'll make the labels for countries with more than 100 million inhabitants size 12 and red, the countries with more than 20 million will get be size 12 and black and the rest will be asize 8 and black.
I'm using the IIf() function that we added to MapInfo Pro 17.0 to specify which records I want to be labeled. For the larger countries, I'm using this expression:
IIF(Pop_1994 > 100000000, Country, "")
The expression says: if the population is larger than 100 million, return the country name otherwise return an empty string.I'm using similar expressions for the other two layers:
IIF(Pop_1994 between 20000000 and 100000000, Country, "")
IIF(Pop_1994<20000000, Country, "")