Here are the important facts about how these labels were created.
![]() |
| Click to enlarge (labels inside of tables) |
- I created a custom true type font using some try and buy software. The capital letter "A" is the only letter that I defined. In this case, it is a 5 row x4 column grid with the top row spanning the four columns. This becomes the background table that the labels sit in.
- I used AAL to create a simple label expression using the font above but importantly chose the option to use label classes. The label expression for this class is just the letter "A" and is in the default class.
- I created a second label class (I just called in Layer2) with no SQL expression so that it always draws, and I created an AAL label expression for this too : "123-456 | ABCD | EFGH | IJKL | MNOP" where the | character is a line-break. Now in reality, the data could of course be derived using something more complex than a simple string (e.g. use the Relationship labeler).
- You need to tweak some properties in Maplex so that labels always appear and that they are drawn 50% of the way along the line. Having them draw 50% provides guaranteed placement (a "best" placement might result in the labels from one class going to a different spot than the second class, and remember, they have to line up). If you are labeling points, this is easier...just choose a positioning strategy in Maplex that provides guaranteed placement.
- You will likely need to tweak the label symbol for the data within the cells (e.g. "123-456 | ABCD | EFGH | IJKL | MNOP"). I used a courier new font so that I had consistent spacing. I also had to specify an X and Y offset, modify the character spacing and modify the "leading" which is essentially the line-spacing. Remember also to set the label offset for this class to 50% of the way along the line.
- It is important to have / respect a reference scale for this layer. That way the labels will scale appropriately when you zoom in and out.
- Last thing that I can think of now is an important setting on the Conflict Resolution tab. Make sure to choose the option to "Never Remove Labels (overlap)". In this scenario, we actually want our labels from different classes to overlap.
![]() |
| Because the table is a character in a font, you can easily set its color! |



No comments:
Post a Comment