Viktigt
Översättning är en gemenskapsinsats du kan gå med i. Den här sidan är för närvarande översatt till 100.00%.
2.4. Lektion: Symbologi
Ett lagers symbologi är dess visuella utseende på kartan. Den grundläggande styrkan med GIS jämfört med andra sätt att representera data med rumsliga aspekter är att du med GIS har en dynamisk visuell representation av de data du arbetar med.
Därför är kartans visuella utseende (som beror på symbologin i de enskilda lagren) mycket viktigt. Slutanvändaren av de kartor som du producerar måste enkelt kunna se vad kartan representerar. Lika viktigt är det att du kan utforska data när du arbetar med dem, och en bra symbologi är till stor hjälp.
Att ha rätt symbologi är med andra ord inte en lyx eller bara trevligt att ha. Det är faktiskt nödvändigt för att du ska kunna använda ett GIS på rätt sätt och producera kartor och information som människor kan använda.
Målet för den här lektionen: Att kunna skapa vilken symbologi du vill för vilket vektorlager som helst.
2.4.1. ★☆☆ Följ med: Skiftande färger
För att ändra ett skikts symbologi, öppna dess Layer Properties. Låt oss börja med att ändra färg på skiktet landuse
.
Högerklicka på skiktet
landuse
i skiktlistan.Välj menyalternativet Properties… i den meny som visas.
Observera
Som standard kan du också komma åt ett lagers egenskaper genom att dubbelklicka på lagret i listan Lager.
I fönstret Layer Properties väljer du fliken
Symbology:
Klicka på färgvalsknappen bredvid etiketten Color. En standarddialogruta för färg visas.
Välj en grå färg och klicka på OK.
Klicka på OK igen i fönstret Layer Properties, så ser du att färgändringen tillämpas på lagret.
2.4.2. ★☆☆ Prova själv:
Ändra färgen på vatten
-lagret till ljusblått. Försök att använda panelen Layer Styling istället för menyn Layer Properties.
Lösning
Kontrollera att färgerna ändras på det sätt som du förväntar dig att de ska ändras.
Det räcker med att markera
vatten
-lagret i legenden och sedan klicka på knappen:sup:
Open the Layer Styling panel
. Ändra färgen till en som passar vattenskiktet.

Om du bara vill arbeta med ett lager i taget och inte vill bli störd av de andra lagren kan du dölja ett lager genom att klicka i kryssrutan bredvid dess namn i lagerlistan. Om rutan är tom är lagret dolt.
2.4.3. ★☆☆ Följ med: Ändra symbolstruktur
Det här är bra så här långt, men det finns mer i ett lagers symbologi än bara dess färg. Härnäst vill vi eliminera linjerna mellan de olika markanvändningsområdena för att göra kartan mindre visuellt rörig.
Öppna fönstret Layer Properties för skiktet
landuse
.Under fliken
Symbology ser du samma typ av dialog som tidigare. Den här gången gör du dock mer än att bara snabbt ändra färg.
Expandera rullgardinsmenyn Fill i symbollagerträdet och välj alternativet Simple fill.
Klicka på rullgardinsmenyn Stroke style. För närvarande bör den visa en kort linje och orden Solid Line.
Ändra detta till No Line.
Klicka på OK.
Nu kommer lagret landuse
inte att ha några linjer mellan områdena.
2.4.4. ★☆☆ Prova själv:
Ändra
vatten
-skiktets symbologi igen så att det får en mörkare blå kontur.Ändra symbologin för skiktet
rivers
till en vettig representation av vattenvägar.
Kom ihåg: du kan använda knappen Öppna panelen Layer Styling och se alla ändringar direkt. I den panelen kan du också ångra enskilda ändringar medan du symboliserar ett lager.
Svar
Din karta bör nu se ut så här:

Om du är en användare på nybörjarnivå kan du stanna här.
Använd metoden ovan för att ändra färger och stilar för alla återstående lager.
Försök att använda naturliga färger för objekten. En väg ska till exempel inte vara röd eller blå, utan kan vara grå eller svart.
Experimentera också gärna med olika inställningar för Fill style och Stroke style för polygonerna.

2.4.5. ★★☆ Följ med: Skalbaserad synlighet
Ibland kommer du att upptäcka att ett lager inte är lämpligt för en viss skala. Ett dataset med alla kontinenter kan t.ex. ha låg detaljrikedom och inte vara särskilt exakt på gatunivå. När det händer vill du kunna dölja datasetet i olämpliga skalor.
I vårt fall kan vi bestämma oss för att dölja byggnaderna i små skalor. Den här kartan, till exempel…

…är inte särskilt användbart. Byggnaderna är svåra att urskilja i den skalan.
För att aktivera skalbaserad rendering:
Öppna dialogrutan Layer Properties för skiktet
buildings
.Aktivera skalbaserad rendering genom att klicka på kryssrutan märkt Scale dependent visibility:
Ändra Minimum-värdet till
1:10000
.Klicka på OK.
Testa effekterna av detta genom att zooma in och ut på din karta och notera när skiktet ”byggnader” försvinner och dyker upp igen.
2.4.6. ★★☆ Följ med: Lägga till symbolskikt
Nu när du vet hur du ändrar enkel symbologi för lager är nästa steg att skapa mer komplex symbologi. I QGIS kan du göra detta med hjälp av symbolskikt.
Gå tillbaka till skiktet
landuse
i panelen för symbolegenskaper (genom att klicka på Simple fill i symbolskiktsträdet).I det här exemplet har den aktuella symbolen ingen kontur (dvs. den använder kantstilen No Line).
Välj nivån Fill i trädet och klicka på knappen
Add symbol layer. Dialogrutan kommer att se ut ungefär så här, med ett nytt symbolskikt tillagt:
Det kan till exempel se lite annorlunda ut i färgen, men det kommer du att ändra ändå.
Nu finns det ett andra symbolskikt. Eftersom den är enfärgad kommer den naturligtvis att helt dölja den tidigare symbolen. Dessutom har den en Solid Line border style, vilket vi inte vill ha. Det är uppenbart att den här symbolen måste ändras.
Observera
Det är viktigt att inte blanda ihop ett kartlager och ett symbollager. Ett kartlager är en vektor (eller raster) som har laddats in i kartan. Ett symbolskikt är en del av den symbol som används för att representera ett kartskikt. I den här kursen kommer ett kartlager oftast att kallas för just ett lager, men ett symbollager kommer alltid att kallas för ett symbollager för att undvika förväxling.
Med det nya symbolskiktet Simple Fill valt:
Ställ in kantstil till No Line, som tidigare.
Ändra fyllningsstilen till något annat än Solid eller No brush. Till exempel
Klicka på OK.
Nu kan du se dina resultat och justera dem efter behov. Du kan till och med lägga till flera extra symbollager och skapa en slags textur för ditt lager på det sättet.

Det är kul! Men den har förmodligen för många färger för att kunna användas på en riktig karta…
2.4.7. ★★☆ Prova själv:
Kom ihåg att zooma in om det behövs och skapa en enkel men inte distraherande textur för lagret ”byggnader” med hjälp av metoderna ovan.
Svar
Anpassa ditt byggnads
-lager som du vill, men kom ihåg att det måste vara lätt att skilja olika lager åt på kartan.
Här är ett exempel:

2.4.8. ★★☆ Följ med: Beställning av symbolnivåer
När symbolskikten renderas, renderas de också i en sekvens, på samma sätt som de olika kartskikten renderas. Detta innebär att det i vissa fall kan ge oväntade resultat att ha många symbolskikt i en symbol.
Ge lagret
vägar
ett extra symbollager (använd den metod för att lägga till symbollager som visas ovan).Ge baslinjen en Stroke width på
1.5
och en svart färg.Ge det nya, översta lagret en tjocklek på
0,8
och en vit färg.
Du kommer att märka att detta händer:

Tja, vägar har nu en gata-liknande symbologi, men du ser att linjerna överlappar varandra vid varje korsning. Det är inte alls vad vi vill ha!
För att förhindra detta kan du sortera symbolnivåerna och på så sätt styra i vilken ordning de olika symbollagren ska återges.
Ändra ordningen på symbollagren:
Välj det översta Line-lagret i symbollagerträdet.
Klicka på
i fönstrets nedre högra hörn.Då öppnas en dialogruta som ser ut så här:
Markera
Aktivera symbolnivåer. Du kan sedan ställa in lagerordningen för varje symbol genom att ange motsvarande nivånummer. 0 är det nedersta lagret.
I vårt fall vill vi bara aktivera alternativet, så här:
Detta gör att den vita linjen hamnar ovanför den tjocka svarta linjen:
Klicka på OK två gånger för att återgå till kartan.
Kartan kommer nu att se ut så här:
När du är klar ska du komma ihåg att spara själva symbolen så att du inte förlorar ditt arbete om du ändrar symbolen igen i framtiden. Du kan spara din aktuella symbolstil genom att klicka på knappen Save Style… längst ner i dialogrutan Layer Properties. Vi kommer att använda formatet QGIS QML Style File.
Spara din stil i mappen solution/styles/better_roads.qml
. Du kan när som helst ladda en tidigare sparad stil genom att klicka på knappen Load Style…. Innan du ändrar en stil bör du tänka på att alla osparade stilar som du ersätter kommer att gå förlorade.
2.4.9. ★★☆ Prova själv:
Ändra utseendet på vägar
-skiktet igen.
Gör vägarna smala och gula, med en tunn, ljusgrå kontur och en tunn svart linje i mitten. Kom ihåg att du kan behöva ändra renderingsordningen för lagren i dialogrutan
.
Svar
För att skapa den önskade symbolen behöver du tre symbollager:

Det lägsta symbollagret är en bred, enfärgad grå linje. Ovanpå den finns en något tunnare gul heldragen linje och slutligen ytterligare en tunnare svart heldragen linje.
Om dina symbollager ser ut som ovan men du inte får det resultat du vill ha:
Kontrollera att dina symbolnivåer ser ut ungefär så här:
Nu bör din karta se ut så här:
2.4.10. ★★★★ Prova själv:
Symbolnivåer fungerar även för klassificerade lager (dvs. lager som har flera symboler). Eftersom vi inte har behandlat klassificering ännu kommer du att arbeta med några rudimentära förklassificerade data.
Skapa ett nytt projekt och lägg bara till datasetet
roads
.Tillämpa stilfilen
advanced_levels_demo.qml
som finns iexercise_data/styles
på lagret. Detta kan göras via längst ner i Layer Properties-dialogrutan.Zooma in till området Swellendam.
Använd symbolskikt och se till att skiktens konturer flyter in i varandra enligt bilden nedan:
Svar
Anpassa dina symbolnivåer till dessa värden:

Experimentera med olika värden för att få olika resultat.
Öppna din originalkarta igen innan du fortsätter med nästa övning.
2.4.11. ★★☆ Följ med: Typer av symbolskikt
Förutom att ställa in fyllningsfärger och använda fördefinierade mönster kan du använda helt olika symbollagertyper. Den enda typ vi har använt hittills är Simple Fill. De mer avancerade symbollagertyperna gör att du kan anpassa dina symboler ännu mer.
Varje typ av vektor (punkt, linje och polygon) har sin egen uppsättning av symbollagertyper. Först ska vi titta på de typer som finns för punkter.
Typer av lager för punktsymboler
Avmarkera alla lager utom
places
.Ändra symbolegenskaperna för skiktet
platser
:Du kan komma åt de olika symbollagertyperna genom att välja lagret Enkel markör i symbollagerträdet och sedan klicka på rullgardinsmenyn Symbollagertyp:
Undersök de olika alternativ som står till buds och välj en symbol med en styling som du tycker är lämplig.
Om du är osäker, använd en rund Simple marker med vit kant och ljusgrön fyllning, med en Size på
3.00
och en Stroke width på0.5
.
Linjesymbol Lagertyper
För att se de olika alternativ som finns tillgängliga för raddata:
Ändra Symbol layer type för
roads
-skiktets översta symbolskikt till Marker line:Välj skiktet Enkel markör i symbolskiktsträdet. Ändra symbolens egenskaper så att de stämmer överens med denna dialog:
Välj skiktet Marker line och ändra intervallet till
1.00
:Kontrollera att symbolnivåerna är korrekta (via dialogrutan :menuselection:`Avancerat –> Symbolnivåer som vi använde tidigare) innan du använder stilen.
När du har använt stilen kan du titta på resultatet på kartan. Som du kan se ändrar symbolerna riktning i takt med vägen, men de böjer sig inte alltid i takt med den. Detta är användbart för vissa ändamål, men inte för andra. Om du föredrar det kan du ändra tillbaka symbollagret i fråga till hur det var tidigare.
Typer av lager för polygonsymboler
För att se de olika alternativ som finns tillgängliga för polygondata:
Ändra Symbol layer type för
water
-skiktet, som tidigare för de andra skikten.Undersök vad de olika alternativen på listan kan göra.
Välj en av dem som du tycker är lämplig.
Om du är osäker, använd Point pattern fill med följande alternativ:
Lägg till ett nytt symbollager med en normal Simple fill.
Gör den i samma ljusblå färg med en mörkare blå kant.
Flytta det under punktmönstersymbolskiktet med Move down-knappen:
Som ett resultat har du en texturerad symbol för vattenlagret, med den extra fördelen att du kan ändra storlek, form och avstånd för de enskilda prickarna som utgör texturen.
2.4.12. ★★☆ Prova själv:
Lägg på en grön transparent fyllningsfärg på lagret protected_areas
och ändra konturen så att den ser ut så här:

Svar
Här är exempel på symbolstrukturen:


2.4.13. ★★★★ Följ med: Geometri generator symbologi
Du kan använda symbologin Geometry generator med alla lagertyper (punkter, linjer och polygoner). Den resulterande symbolen beror direkt på lagertypen.
I korthet innebär symbologin Geometry generator att du kan köra vissa rumsliga operationer inom själva symbologin. Du kan t.ex. köra en rumslig operation med verklig centroid på ett polygonlager utan att skapa ett punktlager.
Dessutom har du alla stylingalternativ för att ändra utseendet på den resulterande symbolen.
Låt oss ge det ett försök!
Välj skiktet
vatten
.Klicka på Simple fill och ändra Symbol layer type till Geometry generator.
Innan vi börjar skriva den rumsliga frågan måste vi välja geometrityp i utdata. I det här exemplet kommer vi att skapa centroider för varje funktion, så ändra Geometry Type till Point / Multipoint.
Låt oss nu skriva frågan i frågepanelen:
centroid($geometry)
När du klickar på OK ser du att
vatten
-skiktet återges som ett punktskikt! Vi har just kört en rumslig operation inom själva skiktsymbologin, är det inte fantastiskt?
Med Geometry Generator-symbologin kan du verkligen gå över gränsen för normal symbologi.
★★★★ Prova själv:
Geometri-generator är bara en annan symbolnivå. Försök att lägga till en annan Simple fill under den Geometry generator.
Ändra även utseendet på den enkla markören i symbologin Geometry generator.
Det slutliga resultatet bör se ut så här:

Svar
Klicka på knappen
för att lägga till ytterligare en symbolnivå.
Flytta den nya symbolen längst ner i listan genom att klicka på knappen |pilen nedåt|.
Välj en bra färg för att fylla vattenpolygonerna.
Klicka på Marker i Geometry generator symbologin och ändra cirkeln med en annan form som du vill.
Försök med andra alternativ för att få mer användbara resultat.
2.4.14. ★★★★ Följ med: Skapa en anpassad SVG-fyllning
Observera
För att göra den här övningen måste du ha det kostnadsfria vektorredigeringsprogrammet Inkscape installerat.
Starta programmet Inkscape. Du kommer att se följande gränssnitt:
Du bör känna igen dig om du har använt andra program för redigering av vektorbilder, t.ex. Corel.
Först ändrar vi canvas till en storlek som är lämplig för en liten textur.
Klicka på menyalternativet Document Properties.
. Detta ger dig dialogrutanÄndra Units till px.
Ändra Width och Height till
100
.Stäng dialogrutan när du är klar.
Klicka på menyalternativet
för att se den sida du arbetar med.Välj verktyget Circle:
Klicka och dra på sidan för att rita en ellips. För att få ellipsen att förvandlas till en cirkel, håll in Ctrl-knappen medan du ritar den.
Högerklicka på cirkeln som du just skapade och öppna dess Fill and Stroke-alternativ. Du kan ändra dess rendering, till exempel:
Ändra färgen på Fill till en något blek gråblå,
Tilldela kanten en mörkare färg på fliken Stroke paint,
Och minska kanttjockleken under fliken Stroke style.
Rita en linje med hjälp av Pencil-verktyget:
Klicka en gång för att starta linjen. Håll in Ctrl för att få den att snäppa i steg om 15 grader.
Flytta pekaren horisontellt och placera en punkt med ett enkelt klick.
Klicka och snäpp till linjens toppunkt och dra en vertikal linje, som avslutas med ett enkelt klick.
Anslut nu de två ändpunkterna.
Ändra färg och bredd på triangelsymbolen så att den matchar cirkelns streck och flytta runt den efter behov, så att du får en symbol som den här:
Om du är nöjd med den symbol du får, spara den som
landuse_symbol
i den katalog som kursen ligger i, underexercise_data/symbols
, som SVG-fil.
Om QGIS
Öppna Layer Properties för skiktet
landuse
.På fliken
Symbology ändrar du symbolstrukturen genom att ändra Symbol Layer Type till SVG Fill som visas nedan.
Klicka på knappen … och sedan på Select File… för att välja din SVG-bild.
Den har lagts till i symbolträdet och du kan nu anpassa dess olika egenskaper (färger, vinkel, effekter, enheter …).
När du har validerat dialogrutan bör objekten i skiktet landuse
nu täckas av en uppsättning symboler som visar en textur som den på följande karta. Om texturerna inte är synliga kan du behöva zooma in kartbilden eller ange en större Texture width i skiktets egenskaper.

2.4.15. ★★☆ Följ med: Maskering
Med maskeringsfunktionen kan du maskera ett symbolskikt med ett annat symbolskikt eller en etikett.
I följande övning vill vi konfigurera rendering så att polygonetiketter maskerar den svarta delen av linjelagret.
Ladda
selective_masking.qgs
från dataset i katalogexercise_data/masking
.Öppna fönstret Layer Properties för skiktet
polys
.Under fliken
Labels ser du att
Single Labels redan har definierats.
Från fliken Labels, välj
Mask (och inte Masker i den allmänna kategorilistan)
Aktivera etikettmask genom att markera alternativet |ej markerat| Enable mask
Ett meddelande talar om att den nu definierade etikettmaskformen senare kan väljas som maskkälla för att maskera andra symbolskikt. Låt oss göra det.
Klicka på OK
Öppna fönstret Layer Properties för skiktet
lines
.Klicka på kryssrutan svart linje del av linjer från maskerade symbollager
Ett meddelande varnar dig för att du måste välja både maskerings- och maskerade symbolskikt för att kunna spara maskeringskonfigurationen. Återigen, låt oss göra det.
Klicka på kryssrutan
polys
Label mask`Meddelandet försvinner och du kan nu spara din konfiguration på ett säkert sätt.
Klicka på OK
Du kan nu se att etiketterna maskerar den svarta delen av linjerna och bara lämnar den gula delen.

2.4.16. ★★☆ Följ med: Maskering med hjälp av punktsymboler
Vi vill nu maskera den svarta delen av linjerna genom att endast använda svarta plan som representerar points
-lagret (dvs. B52
och Jet
punktkategorier). För synlighetens skull kan du stänga av synligheten för skiktet polys
.
Öppna fönstret Layer Properties för skiktet
points
.Under fliken
Symbology ser du att en
Categorized-renderer har definierats med 3 olika symboler beroende på fältvärdet
Class
.Dubbelklicka på flygplansikonen
B52
, i kolumnen :guilabel:`SymbolKlicka på knappen
Lägg till symbolskikt och välj
Mask
Symbolskiktstyp`En ny hierarki
Mask
(symbollager) >Marker
(symbol) >Simple Marker
(symbollager) visas under rotsymbolenMarker
.Låt oss nu definiera en mask som är identisk med vår planmarkör men lite större.
Välj det nyskapade symbollagret
Simple Marker
och ändra dess :guilabel:Symbollagertyp
tillSVG-markör
Ställ in SVG-filvägen så att den är densamma som den redan befintliga SVG-markören och storleken ska vara större (24 millimeter är ett ganska bra val för detta användningsfall).
Maskfärg spelar ingen roll här, endast formen används vid maskering. Symbolskiktets ordning är också irrelevant i den situationen.
Du borde få något liknande:
Upprepa samma åtgärder för symbolen
Jet
.Klicka på OK
Öppna fönstret Layer Properties för skiktet
lines
.-
Den svarta linjen i kryssrutan för linjer från maskerade symbolskikt är redan markerad från vår tidigare konfiguration.
Avmarkera kryssrutan Label mask
polys
och markera bådeB52
ochJet
Mask symbol layerKlicka på OK
Du ser nu att de svarta planen maskerar den svarta delen av linjerna, så att endast den gula delen syns.

2.4.17. Sammanfattningsvis
Genom att ändra symbologin för de olika lagren har en samling vektorfiler förvandlats till en läsbar karta. Du kan inte bara se vad som händer, den är till och med snygg att titta på!
2.4.18. Ytterligare läsning
exempel på vackra kartor <https://gis.stackexchange.com/questions/3083/seeking-examples-of-beautiful-maps>`_
2.4.19. Vad händer härnäst?
Att ändra symboler för hela lager är användbart, men informationen i varje lager är ännu inte tillgänglig för någon som läser dessa kartor. Vad kallas gatorna? Vilka administrativa regioner tillhör vissa områden? Vilka är gårdarnas relativa ytor? All denna information är fortfarande dold. I nästa lektion förklaras hur du kan representera dessa data på din karta.
Observera
Kom du ihåg att spara din karta nyligen?