Tools, Tips & Tricks: Slimme labels

30 juli 2015

Labeling, iedereen kent het en iedereen gebruikt het. Het is een handige manier om informatie op de kaart te tonen die niet kan gesymboliseerd kan worden. ArcMap heeft veel opties om de plaats van de label naar wens aan te passen, maar wat als ik ook de tekst wil veranderen? Ik wil eenheden achter mijn getal, tekstgrootte op basis van een veld, verschillende kleuren tekst, tekst korter maken, tekst langer maken, “wanneer dit, dan dat” gebruiken (if-else statement), en ga zo maar door. Kortom, ik wil slimme labels! Hoe? Maak een Label Expresssion.

door Judith Kats, engineer

Wat is het?

In een Label Expression geef je aan met welke tekst een object gelabeld moet worden en hoe de tekst eruit moet zien. Door middel van een expressie (VBScript, Python en JScript) kun je de tekst van de label aanpassen, zonder je data aan te passen. Een Label Expression kun je zo simpel en ingewikkeld maken als je zelf wilt.

In de voorbeelden is gebruik gemaakt van VBScript.

Waarom is het handig?

Label Expression is een geweldige manier om informatie te tonen die niet (direct) in je data zit. Een groot voordeel is dat je de data niet hoeft aan te passen om mooie en leesbare labels te creëren. De mogelijkheden van een labelexpressie zijn enorm waardoor het bijna altijd mogelijk is om de labels te creëren die jij graag wilt hebben.

Hoe werkt het?

In de eigenschappen van de kaartlaag, onder het tabblad Labels, zit de knop Expression, deze opent het Label Expression-venster. In dit venster maak je de expressie aan.

Begin met het maken van eenvoudige expressies. De basis van een expressie is minimaal één veld in de attribuuttabel, bijvoorbeeld buurtcode van de Buurtkaart van het CBS. Een getal alleen zegt niet zoveel, dus plaatsen we de tekst “Buurtcode: “ & ervoor. Het &-teken plakt de twee delen van de expressie aan elkaar. Op deze wijze kun je teksten en velden samenvoegen tot één label.

"Buurtcode: " & [BU_CODE]

Om de opmaak van de teksten aan te passen, maken we gebruik van Text Formatting Tags. Met deze tags kun je verschillende opmaken toepassen in één label. Tags die je kunt gebruiken zijn onder meer vet <BOL>, font <FNT> en kleur <CLR>. Zet het gedeelte van de label tussen de begin- en eind-tag om het format toe te passen. Bijvoorbeeld: “<BOL> “ & [tekst] & “</BOL>”. Vergeet niet om het &-teken ertussen te plaatsen.

"Buurtcode: " & "<BOL>" & [BU_CODE] & "</BOL>"

"Buurtcode: " & "<CLR red='255'><BOL>" & [BU_CODE] & "</BOL></CLR>"

Wanneer je wilt dat de label verder gaat op een nieuwe regel, gebruik je de tekst “vbnewline”. Vergeet ook hier weer niet om het &-teken ertussen te plaatsen.

"<CLR magenta = '100'>" & "Aantal vrouwen: " & [AANT_VROUW] & "</CLR>" & vbnewline & "<CLR blue='255' >" & "Aantal mannen: " & [AANT_MAN] & "</CLR>" & vbnewline & "<BOL>" & "Aantal inwoners: " & [AANT_INW] & "</BOL>"

Vervolgens gaan we nog een stap verder door gebruik te maken van de Advanced-optie. Hiermee kun je functies toevoegen om je labels nog meer naar wens aan te passen. Met een if-else statement kun je de objecten in dezelfde kaartlaag met verschillende teksten labellen.

Bijvoorbeeld: indien er meer vrouwen in een buurt wonen dan mannen, label met ‘Vrouw’, indien meer mannen dan vrouwen, label met ‘Man’ en zijn er evenveel vrouwen en mannen, label met ‘Man & Vrouw’.

Function FindLabel ( [AANT_INW] ,[AANT_VROUW], [AANT_MAN] )

if [AANT_VROUW] > [AANT_MAN] then label = "Vrouw"
if [AANT_VROUW] < [AANT_MAN] then label = "Man"
if [AANT_VROUW] = [AANT_MAN] then label = "Man & Vrouw"
FindLabel = label
End Function

In het begin van de FindLabel-functie geef je aan welke velden je gaat gebruiken tijdens de functie. In dit voorbeeld zijn dat Aantal inwoners, Aantal vrouwen en Aantal mannen. Vervolgens geef je de statements, dus ‘als dit, dan dat’. En als laatste onderdeel worden de objecten daadwerkelijk gelabeld (FindLabel = label).

De Advanced-optie biedt veel mogelijkheden maar kan daardoor ook een grote uitdaging zijn. Start daarom simpel en bouw je expressie langzaam op.

Extra tip

Maak gebruik van de Reference scale (onder Dataframe Properties, General) om de grootte van de label mee te laten schalen met de kaart.

Label Expressions kunnen met alle licentieniveaus van ArcGIS for Desktop worden aangemaakt.

Meer weten?

Lees meer over Label Expressions

Het is ook mogelijk om een training te volgen, ga naar het complete opleidingsaanbod

Weet u nog een tip voor een tool, die handig is om te delen? E-mail naar jkats@esri.nl.

Meer Tools, Tips & Tricks 

De rubriek Tools, Tips & Tricks is een terugkerende rubriek in de Esri GIS Nieuwsbrief en het vervolg op Tims Tools & Tricks. Eerder verschenen: