När man använder Lantmäteriets vektordata och vill skriva ut etiketter från deras punktlager med texter så kan man välja att använda fördefinierade positioner runt punkten för placering av etiketterna.
Detta stöds så klart av QGIS, men de värden som finns i punktlagret för detta är inte skapade med QGIS i åtanke, vilket gör att det blir lite förvirrande i början. Detta inlägg är mitt sätt att komma ihåg hur man gör för att på enklaste sätt placera etiketterna på den plats det är tänkt.

I beskrivningen för data så finns ovanstående förklaring kring insättningspunkter. Enkelt, eller? Det kan det vara, men det är en sak som definitivt gör det lite krångligare. Siffrorna 1 till 9 anger inte etikettens placering i förhållande till geometrin, utan geometrins placering i förhållande till etiketten. Position ”1” i bilden ovan innebär således inte att texten ritas ut nere till vänster, utan uppe till höger om punkten.
Varför är då detta förvirrande. Jo QGIS använder etikettens position i förhållande till geometrin för att ange position.

Uppe till höger i QGIS är placering ”2”. QGIS använder dessutom 0 till 8 i stället för 1 till 9.
Tabellen nedan beskriver värden från LM och vad motsvarande placeringssiffra i QGIS är:
| LM | QGIS |
| 1 | 2 |
| 2 | 1 |
| 3 | 0 |
| 4 | 5 |
| 5 | 4 |
| 6 | 3 |
| 7 | 8 |
| 8 | 7 |
| 9 | 6 |
Nu är det i praktiken bara ett enkelt uttryck som krävs för att det ska gå att använda attributvärdena i QGIS, men det kan ta ett litet tag att reda ut förhållandet om man inte har en tabell som ovan framför sig.

Det enklaste jag kommit på är att använda en ”array” (lista) som anropas med värdet i attributfältet. Listan börjar med index ”0” och därför minskas attributet ”textlage” med ”1”. Värdet ”1” blir ”0” och anropar det första värdet i listan, som är ”2”, vilket stämmer med exemplet tidigare. Listan är sedan den ordning på siffrorna i QGIS som motsvarar ordningen i LM attribut (jämför med tabellen ovan).
array(2,1,0,5,4,3,8,7,6)["textlage"-1]
Vill du kopiera koden till ett uttryck så kan du använda texten ovan.
