Då så skall vi se om vi inte kan bli klara med inställningarna för etiketter i stilpanelen. I första delen var det grunder och stilhantering och i andra delen började vi kika på stilinställningarna. Nu är det så dags för ännu mera inställningar.

Bakgrund

Bakgrund är ett sätt att generera en yta att placera texten på. Det går ganska enkelt att få fram ett utseende som påminner om en skylt (bilden nedan). Formen på bakgrunden kan vara rektangel, kvadrat, ellips eller cirkel, men det går även att använda SVG bilder eller punktmarkörer. Här bryr jag mig bara om att använda rektangel, vilket genererar en bakgrund runt texten relativt tätt. Storleken sätts normalt som en buffert från detta startläge, men det går även att sätta storleken till en specifik storlek genom att välja ”Fixed” i stället för ”Buffer”.
I mitt exempel här har jag ökat på bufferten i x-led för att göra bakgrunden lite bredare och få mera luft till höger och vänster om texten. Enheten man använder kan vara milimeter, tum, pixlar, punkter eller kopplat till koordinatsystem och skala.

Om man använder krökta etiketter med linjer så kommer bakgrunden att anpassas bokstav för bokstav och det kan göra att just krökta etiketter kan vara lite krångligare att använda med bakgrund.

Bakgrunden roteras normalt med etiketten, eller med en fast vinkel. Det går också att förskjuta bakgrundens rotation i förhållande till etikettens rotation. En förskjutning på 10 grader kommer att rotera bakgrunden 35 grader, om etiketten är roterad 25 grader.
Offset betyder att bakgrunden förskjuts i förhållande till startläget i x- och y-led. Att tänka på här är att förskjutningen inte tar hänsyn till eventuell rotation.
Inställningar för radie gör det möjligt att runda av hörnen på en rektangulär bakgrund. Men det är lite mera än så då det är två värden som används. Om bara ett av dessa är ”0” så skapas ingen radie. Om man har lika värden i x och y så är det en rund radie, men om man har olika värden blir radien ”elliptisk”.

Opaciteten sätts generellt för hela bakgrunden, men det går att ange färgerna med separata alpha-värden, vilket i praktiken är opacitet för fyllning och kantlinje individuellt.
Utöver detta går det att ange blandningsläge, linjebredd och kantlinjens pennstil med ”round”, ”miter” och ”bevel”.
Skugga

Skugga kan appliceras på ett antal olika sätt. En etikett kan bestå av text, buffert och bakgrund och skuggan kan appliceras på valfri del av dessa. Skillnaden att applicera skuggan på texten eller bufferten blir påtaglig om man använder en lite tjockare buffert, men störst skillnad är det om man jämför att applicera skuggan på texten eller bakgrunden.

Till vänster i bilden ovan är skuggan under texten och till höger under bakgrunden. Vill man ha en liknande effekt under båda så får man använda realtidseffekten skugga för exempelvis bakgrunden och den normala skuggan enbart för texten.
Om man alltid vill att skuggan skall appliceras på den del av texten som är längst ner så finns det en inställning för det också, vilket är standard. Har man en buffert appliceras skuggan på den och om man dessutom har en bakgrund så är det den som skuggan appliceras på.
Att använda ”global” skugga innebär att det inte spelar någon roll om en etikett är roterad. Den ljuskälla som simuleras är den samma för alla etiketter. Om man inte har global skugga så följer ljuskällan etiketterna individuellt och då ”roterar” den med etikettens rotation, vilket jag tycker kan se ganska konstigt ut:

Skuggans ”suddighet” kan ställas in och tillsammans med skuggans opacitet så styr detta väldigt mycket av utseendet.

När det gäller valet att ”Blur only alpha pixels” så kan vi ta och bortse från den. Det är ingen som verkar veta vad denna gör och jag skulle inte bli förvånad om den försvinner i framtida versioner.
Vill man få till en effekt som påminner om att ljuskällan är lite närmare en enskild etikett kan man laborera lite med skalan. Om man har flera skuggade etiketter i samma kartbild så kan detta också ge ett lite konstigt intryck så granska resultatet lite kritiskt om du använder skala här.
Blandningsläget är normalt multiplicera, men om man vill kan man ändra det.
Ledlinjer
Detta är linjer som kopplar samman en flyttad etikett med det objekt som det hör till. Om man inte använder etikettverktygen och flyttar etiketter så kommer inga ledlinjer att ritas ut vilka inställningar man än gör här.

Man kan välja enkla linjer eller ”Manhattanlinjer”, vilket är linjer i vinklar där linjerna är helt vertikala och helt horisontella. De enkla linjerna som i bilden ovan är helt raka från etikett till objekt.
Enkel och enkel är i och för sig ett relativt begrepp för dessa linjer. Man disponerar alla QGIS stilmöjligheter för linjer när det gäller att skapa dessa. I bland är en enkel tunn linje det bästa, men det går som i bilden ovan att använda stilen ”Arrow” och göra ganska avancerade pilar om man vill det.
Det går att ange en minsta längd för pilar som skall ritas ut. Om en etikett inte flyttas tillräckligt mycket så blir det ingen linje. Man kan även ange ett offset från såväl objektet som textområdet.

Om man har en multipart geometri kan man välja att rita ut linjer till varje del av denna.
För linjer och polygoner så kan man även välja var linjen skall förankras i objektet. I bilden ovan har jag valt en ”punkt på utsidan”, men man kan välja olika punkter inuti också, och för linjer finns ytterligare alternativ.
Vilket leder oss in på…
Placering
Här är det stor skillnad mellan punkter, linjer och ytor, så vi börjar med punkter.

Standard är ”around point” och denna bygger i princip på samma placeringsalternativ som ”offset from point” där placeringen är indelad i ”kvadranter” (även om det inte är fyra olika platser). Övre vänstra har värdet ”0” och nedre högra har värdet ”8”. För standardvalet runt punkt så väljer QGIS själv ut lämpligaste kvadrant och det enda som du väljer är hur långt från denna punkt etiketten skall skrivas ut. När du själv väljer kvadrant så kan du specificera offset från den placeringen i såväl x- som y-led.
Om man absolut vill placera etiketten exakt mitt på punkten så är det Offset from point som man väljer.
Cartographic använder en lite mera avancerad algoritm för att välja lämplig placering och det finns lite flera val än kvadranterna från tidigare. Man väljer även här avstånd till punkten, men man kan även välja att ange avstånd från symbolens utsträckning. För ett punktlager med många olika typer av symboler så kan man då placera etiketter lika långt från såväl stora som små symboler.
För linjer finns det också tre grundmetoder att placera etiketter. Parallellt och Böjt är ganska lika med den skillnaden att texten antingen skrivs ut rakt eller följer linjens krökning.

Etiketterna kan placeras över eller under linjen, samt ovanpå den. Om man väljer flera alternativ så kommer QGIS att prioritera. Man kan även välja att rita ut till höger eller vänster om linjen relativt linjens utritningsriktning. Avstånd, eller offset, fungerar bara om man valt över eller under linjen. Om man vill så kan man ställa in hur tätt etiketter skall upprepas längs långa linjer. För korta linjer kan man även sätta en ”overrun” som gör att etiketter tillåts sticka ut lite utanför linjernas utsträckning.
Det som skiljer parallell och böjd etikett är inställningarna för hur krökt linje som är okej att skriva ut etiketten vid.
En Horisontell placering är betydligt enklare än parallell eller böjd. Vid linjen skrivs helt enkelt etiketten ut helt horisontellt. Repeat och overrun är de enda inställningarna i övrigt.

Polygoner har flest alternativ för placering av etiketter. Det beror på att polygoner kan ges alternativ som påminner om såväl punkter som linjer.
Offset from centroid och around centroid är i praktiken samma inställningar som för punkter med around point och offset from point.
Using perimeter och using perimeter (curved) är i stort samma som inställningarna för linjer. Placeringen längs ytterkanten gör det möjligt att placera etiketter på insidan eller utsidan av kantlinjen.
Det som är unikt för polygoner är Horizontal och Free. Dessa har dessutom inga egna inställningar, utan det är QGIS som försöker placera etiketterna så gott det går.

Genom att visa placeringskandidater för etiketterna i de automatiserade placeringsinställningarna (se del 1) så kan man se vilka olika placeringsalternativ som finns för de olika valen.
Är man nu inte helt nöjd med placeringsalternativen för etiketterna kopplat till lagrets geometrityp så kan man numera ändra på det också. Det går nämligen att skapa en geometrigenerator som bara påverkar hur etiketten kan placeras. Oavsett vilken geometri lagret har, så kan man generera en helt annan som etiketten kan placeras efter. Möjligheterna att få till en bra etikettplacering har därmed gått från utmärkt till löjligt bra.
Räcker sedan inte det kan man gå på helt datadefinierade etikettplaceringar:

Här sätter man även etikettens prioritet. I del 1 nämnde jag att man kan göra en del lager ”blockerande” för etiketter. Denna blockering ges en prioritet och om den prioriteten är högre än etikettens prioritet så ritas inte etiketten ut om den täcker objekten i det lagret. Även det omvända gäller. Om man har etiketter med högre prioritet än blockeringen så kommer etiketter att ritas ut även om det görs över dessa objekt.
Discourage labels from covering features är en ganska gammal funktion som funnits med länge. Jag är inte helt säker på hur denna skall användas och jag föredrar det som jag beskrev tidigare med blockerande objekt och prioriteter.
Rendering

Här ställer man in om etiketterna skall skrivas ut i ett specifikt skalintervall, eller om man använder etikettstorlekar i kartenheter, hur många pixlar stora dessa måste vara, eller får vara för att ritas ut.
Om man har överlappande etiketter så kan man med z-index styra vilket lagers etiketter som skall skrivas ut över andra. Ett högre index ritas ut över lager med ett lägre index. Eftersom detta är möjligt att styra datadefinierat så kan man även sätta utritningsordningen internt i ett lager. Etiketter för städer kan exempelvis alltid ritas ut över etiketter för byar.

För att detta skall spela någon roll så måste man även aktivera funktionen att skriva ut etiketter som ”kolliderar”. Annars så kommer QGIS att använda algoritmer baserat på de placeringsinställningar man gjort för att avgöra vilka etiketter som skall ritas ut.
Det går att styra utritning av etiketter datadefinierat också. Normalt visas etiketter, men om man inte vill att vissa etiketter skall visas så kan man göra ett uttryck för det. Man kan även göra ett uttryck för de etiketter som alltid skall visas, även om de då kolliderar med andra.
Beroende på typ av objekt och valda placeringsinställningar så kan man välja om etiketter skall kunna skrivas ut upp och ner. Om man väljer ”always” här så betyder det inte att etiketterna alltid visas upp och ner. Det beror på placeringsinställningarna, men om man väljer ”never” så kommer placeringsinställningarna inte att spela någon roll. Inga etiketter i lagret kommer att ritas ut upp och ner. Alternativet med rotation kommer att rita ut etiketter upp och ner endast om rotationen av etiketten innebär detta.

Om man har multipartgeometrier kan man här välja att alla delar av en sådan geometri skall ha etiketter. Annars är det bara en av dessa som får en etikett.
Unikt för linjelager är möjligheten att hantera sammanhängande linjer som en enda linje. Detta är praktiskt om man exempelvis har ett vägnät med många sammankopplade segment där man inte vill att varje segment skall ha en egen etikett.
Om man har en stor kartbild så kan det ta lite tid att rita ut etiketterna. Då går det att begränsa hur många etiketter i ett lager som skall renderas.
Det går även att begränsa hur små objekt som skall få etiketter utritade. Detta alternativ finns bara för linjer och ytor.
För ytor finns ytterligare ett användbart alternativ längs ner i denna flik. Nämligen alternativet att endast rita ut etiketter som helt ryms innanför polygonens gränser.
Puh!
Det får vara allt för den här gången…