Datadefinierade åsidosättningar är ganska unikt för QGIS och väldigt användbart. När man är van att använda dessa funktioner så gör man det hela tiden. Men om man är lite ovan så finns det en assistent som gör det enkelt att skapa de uttryck som krävs i bakgrunden, utan att någon kod behöver skrivas in.
Om du som jag normalt inte använder assistenten, så kan det ändå vara dags att kika på den, för den är fantastisk.
Om du inte vet vad datadefinierade åsidosättningar är så kommer här en snabb förklaring.
Alla symboler har mängder av inställningar för exempelvis storlek, färg, linjestil, typ av fyllning, grundsymbol, rotation, med mera. Allt för att man skall kunna skapa så anpassade symboler som möjligt för ett objekt eller en klass i ett dataset. Det datadefinierade åsidosättningar erbjuder är att alla (så gott som) dessa inställningar kan anpassas individuellt till enskilda objekt. Du kan på detta sätt inte enbart skapa en lagerstil med en uppdelning i klasser, utan en uppdelning i klasser för varje enskild inställning, utan att behöva skapa varje enskild permutation av möjliga symboler som enskilda klasser.
Vi tar ett exempel. Jag använder Länsstyrelsens data över skyddsvärda träd i Blekinge. Tabellen innehåller drygt 56’000 träd med flera användbara attribut.
När man börjar så har man en grundsymbol, som i det här fallet är en fylld punkt.
Låt oss börja med trädets omkrets (stammen) och låta denna styra storleken på symbolen. Jämte fälten för storlek finns knappen för åsidosättning. Om man håller muspekaren över denna så får man information om det förväntade värdet, vilket i det här fallet är ett decimaltal, som kan vara i form av heltal, decimaltal eller text.
När man klickar på knappen får man upp en meny med flera alternativ.
Här kan man direkt koppla ett tabellfält till värdet om det passar, eller skriva in ett uttryck manuellt. Men nu skall vi alltså titta på assistenten.
I assistenten väljer man ett tabellfält, eller så skriver man ett uttryck för att skapa ett värde som kan användas. Max och min värden uppdateras med knappen till höger om värdefälten. Som standard får man sedan en rak översättning av värden till symbolstorlek, men man kan även aktivera och redigera transformeringskurvor för att uppnå exakt den visuella representation man är ute efter. Och eftersom alla symbolredigeringar är ”live” så ser man direkt effekterna av ändringarna i kartan.
Nu finns inte så många numeriska fältvärden i tabellen, vilket är utgångsläget för många av symbolparametrarna, men det går att generera ett värde som kan användas med uttryck.
Här använder jag fältet VITALITET och ordnar dessa i en ordning som jag tycker verkar logisk i en lista. Sedan blir värdet varje objekts placering i den listan.
Här avser jag låta detta styra färgen på symbolen, vilket som standard är en färggradient, men då dessa kan skräddarsys precis som man vill så det går lika bra att skapa en ”diskret” färggradient med det antal klasser som jag vill ha.
Här har jag döpt färgerna till det som de skall representera, men det är mest för att tydliggöra det i den här artikeln. Du kommer inte att se dessa någon annanstans.
Beroende på vilken typ av inställning det är fråga om så ser assistenten lite olika ut, medan vissa fält inte har någon assistent och då får man som vanligt skapa åsidosättningen manuellt.
Ett litet tips så här mot slutet. Om du kommer att skapa en komplex symbol med många symbollager (som ovan med teckenmarkör och enkel markör) så skall du försöka skapa hela symbolen som grund först, innan du ger dig på och skapar variationer med åsidosättningar. Beroende på var du sedan lägger till åsidosättningarna så tillämpas de olika. Här har jag valt att lägga storleksändringen på grundmarkören, vilket ändrar storleken även på teckenmarkören, men jag hade lika gärna kunnat storleksförändra endast den enkla markören, eller båda med individuella värden. Om jag lagt till symbollager i efterhand, så får det ibland lite oväntade effekter när QGIS skall försöka tolka hur gjorda åsidosättningar skall tillämpas på nya lager.
Nu skall jag ”leka” vidare med det här punktlagret, mest för att se hur annorlunda symboler jag kan skapa med en enda grundsymbol.
Just det! Teckenförklaring… Då denna typ av symboler kan bli hur komplicerad som helst så finns det inget enkelt sätt att skapa en teckenförklaring. Det bästa och tydligaste blir att skapa en anpassad teckenförklaring manuellt i den layout som skall användas. Exportera lämpligt utsnitt till SVG och skapa en teckenförklaring i Inkscape, som sedan kan importeras i layouten.