Viktigt

Översättning är en gemenskapsinsats du kan gå med i. Den här sidan är för närvarande översatt till 100.00%.

4.2. Lektion: Skapa en dynamisk utskriftslayout

Nu när du har lärt dig att skapa en grundläggande kartlayout går vi ett steg längre och skapar en kartlayout som anpassas dynamiskt till vår kartutbredning och till sidans egenskaper, t.ex. när du ändrar sidans storlek. Även datumet för skapandet kommer att anpassas dynamiskt.

4.2.1. ★★☆ Följ med: Skapa den dynamiska kartans canvas

  1. Ladda dataseten i ESRI Shapefile-format protected_areas.shp, places.shp, rivers.shp och water.shp till kartbilden och anpassa dess egenskaper efter dina egna önskemål.

  2. När allt är renderat och symboliserat som du vill, klicka på ikonen newLayout New Print Layout i verktygsfältet Project eller välj Project ► newLayout New Print Layout. Du kommer att bli ombedd att välja en titel för den nya utskriftslayouten.

  3. Vi vill skapa en kartlayout som består av ett sidhuvud och en karta över området kring Swellendam i Sydafrika. Layouten ska ha en marginal på 7,5 mm och sidhuvudet ska vara 36 mm högt.

  4. Skapa ett kartobjekt som heter main map på Canvas och gå till panelen Layout. Bläddra ner till avsnittet Variables och hitta delen Layout. Här ställer vi in några variabler som du kan använda över hela den dynamiska utskriftslayouten. Gå till panelen Layout och skrolla ner till avsnittet Variables. Den första variabeln kommer att definiera marginalen. Tryck på knappen symbologyAdd och skriv in namnet sw_layout_margin. Ställ in värdet till 7.5. Tryck på knappen symbologyAdd igen och skriv in namnet `sw_layout_height_header. Ställ in värdet på 36.

  5. Nu är du redo att skapa positionen och storleken på kartbilden automatiskt med hjälp av variablerna. Se till att ditt kartobjekt är markerat, gå till panelen Item Properties, bläddra ned till och öppna avsnittet Position and Size. Klicka på dataDefineExpressionOn :sup:Data defined override för X och välj @sw_layout_margin från Variables`.

  6. Klicka på dataDefineExpressionOn Data defined override för Y, välj Edit… och skriv in formeln:

    to_real(@sw_layout_margin) + to_real(@sw_layout_height_header)
    
  7. Du kan skapa storleken på kartobjektet genom att använda variablerna för Width och Height. Klicka på dataDefineExpressionOn :sup:Data defined override för Width och välj Edit … igen. Fyll i formeln:

    @layout_pagewidth - @sw_layout_margin * 2
    

    Klicka på dataDefineExpressionOn Data defined override för Height och välj Edit …. Här fyller du i formeln:

    @layout_pageheight -  @sw_layout_height_header -  @sw_layout_margin * 2
    
  8. Vi kommer också att skapa ett rutnät som innehåller koordinaterna för huvudkartans utbredning. Gå till Item Properties igen och välj avsnittet Gridds. Infoga ett rutnät genom att klicka på knappen symbologyAdd. Klicka på Modify grid … och ställ in Interval för X, Y och Offset enligt den kartskala som du valde i QGIS main canvas. Den Grid typ Cross är mycket väl lämpad för våra syften.

4.2.2. ★★☆ Följ med: Skapa ett dynamiskt sidhuvud

  1. Infoga en rektangel som ska innehålla rubriken med knappen addBasicShape Add Shape. I panelen Items anger du namnet header.

  2. Gå återigen till Item Properties och öppna avsnittet Position and Size. Använd dataDefineExpressionOn Data defined override och välj variabeln sw_layout_margin för X och för Y. Width skall definieras av uttrycket:

    @layout_pagewidth - @sw_layout_margin * 2
    

    och Height av variabeln `sw_layout_height_header.

  3. Vi kommer att infoga en horisontell linje och två vertikala linjer för att dela upp rubriken i olika sektioner med hjälp av addNodesShape :sup:Add Node Item. Skapa en horisontell linje och två vertikala linjer och namnge dem Horisontell linje, Vertikal linje 1 Vertikal linje 2.

    1. För den horisontella linjen:

      1. Ställ in X till variabeln sw_layout_margin

      2. Ställ in uttrycket för Y till:

        @sw_layout_margin + 8
        
      3. Ställ in uttrycket för Width till:

        @layout_pagewidth -  @sw_layout_margin * 3 - 53.5
        
    2. För den första vertikala linjen:

      1. Ställ in uttrycket för X till:

        @layout_pagewidth - @sw_layout_margin * 2 - 53.5
        
      2. Ställ in Y till variabeln sw_layout_margin

      3. Höjden måste vara densamma som den rubrik vi skapade, så sätt Height till variabeln `sw_layout_height_header.

    3. Den andra vertikala linjen är placerad till vänster om den första.

      1. Ställ in uttrycket för X till:

        @layout_pagewidth - @sw_layout_margin * 2 - 83.5
        
      2. Ställ in Y till variabeln sw_layout_margin

      3. Höjden ska vara densamma som för den andra vertikala linjen, så sätt Height till variabeln `sw_layout_height_header.

    Bilden nedan visar strukturen i vår dynamiska layout. Vi kommer att fylla de områden som skapas av linjerna med några element.

../../../_images/dynamic_layout_structure.png

4.2.3. ★★☆ Följ med: Skapa etiketter för det dynamiska sidhuvudet

  1. Titeln på ditt QGIS-projekt kan inkluderas automatiskt. Titeln ställs in i Projektegenskaper. Infoga en etikett med knappen label Add Label och ange namnet project title (variable). I Main Properties i Items Properties-panelen anger du uttrycket:

    [%@project_title%]
    

    Ställ in etikettens position.

    1. För X, använd uttrycket:

      @sw_layout_margin + 3
      
    2. För Y, använd uttrycket:

      @sw_layout_margin + 0.25
      
    3. För Width, använd uttrycket:

      @layout_pagewidth - @sw_layout_margin *2 - 90
      
    4. Ange 11.25 för Höjd

    Under Appearance ställ in Font size till 16 pt.

  2. Den andra etiketten innehåller en beskrivning av den karta du har skapat. Infoga återigen en etikett och döp den till kartbeskrivning. I Main Properties skriver du in texten map description. I Main Properties kommer vi också att inkludera:

    printed on: [%format_date(now(),'dd.MM.yyyy')%]
    

    Här använder vi två funktioner för datum och tid (now och format_date).

    Ställ in etikettens position.

    1. För X, använd uttrycket:

      @sw_layout_margin + 3
      
    2. För Y, använd uttrycket:

      @sw_layout_margin + 11.5
      
  3. Den tredje etiketten kommer att innehålla information om din organisation. Först ska vi skapa några variabler i menyn Variables i Item Properties. Gå till menyn Layout, klicka på knappen symbologyAdd varje gång och ange namnen o_department, o_name, o_adress och o_postnummer. På den andra raden anger du information om din organisation. Vi kommer att använda dessa variabler i avsnittet Main Properties.

    I Main Properties ange:

    [% @o_name %]
    [% @o_department %]
    [% @o_adress %]
    [% @o_postcode %]
    

    Ställ in etikettens position.

    1. För X, använd uttrycket:

      @layout_pagewidth - @sw_layout_margin - 49.5
      
    2. För Y, använd uttrycket:

      @sw_layout_margin + 15.5
      
    3. För Width, använd 49.00

    4. För Height använder du uttrycket:

      @sw_layout_height_header - 15.5
      
../../../_images/dynamic_layout_organisation.png

4.2.4. ★★☆ Följ med: Lägga till bilder i den dynamiska sidhuvudet

  1. Använd knappen addImage Add Picture för att placera en bild ovanför din etikett organisation information. När du har angett namnet organisationens logotyp definierar du logotypens position och storlek:

    1. För X, använd uttrycket:

      @layout_pagewidth - @sw_layout_margin - 49.5
      
    2. För Y, använd uttrycket:

      @sw_layout_margin + 3.5
      
    3. För Width, använd 39.292

    4. För Höjd, använd 9.583

    För att inkludera en logotyp från din organisation måste du spara logotypen i din hemkatalog och ange sökvägen under Main Properties ► Image Source.

  2. Vår layout behöver fortfarande en norrpil. Den kan också infogas med hjälp av northArrow Add North Arrow. Vi kommer att använda standardpilen för norr. Definiera positionen:

    1. För X, använd uttrycket:

      @layout_pagewidth - @sw_layout_margin * 2 - 78
      
    2. För Y, använd uttrycket:

      @sw_layout_margin + 9
      
    3. För Width, använd 21.027

    4. För Height, använd 21.157

4.2.5. ★★☆ Följ med: Skapa scalebaren i den dynamiska sidhuvudet

  1. För att infoga en skalbar i sidhuvudet klickar du på scaleBar Add Scale Bar och placerar den i rektangeln ovanför norrpilen. I Map under Main Properties väljer du din huvudkarta(Karta 1). Detta innebär att skalan ändras automatiskt i enlighet med den utsträckning du väljer i QGIS huvudkanvas. Välj Style Numeric. Detta innebär att vi infogar en enkel skala utan skalfält. Skalan behöver fortfarande en position och en storlek.

    1. För X, använd uttrycket:

      @layout_pagewidth - @sw_layout_margin * 2 - 78
      
    2. För Y, använd uttrycket:

      @sw_layout_margin + 1
      
    3. För Width, använd 25

    4. För Height, använd 8

    5. Placera Reference point i mitten.

Gratulerar, gratulerar, gratulerar! Du har skapat din första dynamiska kartlayout. Ta en titt på layouten och kontrollera att allt ser ut som du vill ha det! Den dynamiska kartlayouten reagerar automatiskt när du ändrar sidans egenskaper. Om du t.ex. ändrar sidstorleken från DIN A4 till DIN A3, klickar du på knappen refresh :sup:``Refresh view` och sidans design anpassas.

../../../_images/dynamic_layout.png

4.2.6. Vad händer härnäst?

På nästa sida får du en uppgift som du ska slutföra. Det ger dig möjlighet att öva på de tekniker du har lärt dig hittills.