4.2. Lesson: Een dynamische afdruklay-out maken

Nu u hebt geleerd een lay-out voor een basiskaart te maken, gaan we een stap verder en maken een kaartlay-out die zich dynamisch aanpast aan ons kaartbereik en aan de eigenschappen van de pagina, bijv. als u de grootte van de pagina wijzigt. Ook de datum van maken zal zich dynamisch aanpassen.

4.2.1. moderate Follow Along: Het dynamische kaartvenster maken

  1. Laad de ESRI Shapefile-indeling gegevenssets protected_areas.shp, places.shp, rivers.shp en water.shp in het kaartvenster en pas de eigenschappen ervan aan naar uw eigen wensen.

  2. Nadat alles volgens uw wensen is gerenderd en gesymboliseerd, klik op het pictogram newLayout Nieuwe afdruklay-out in de werkbalk of kies Project ► Nieuwe afdruklay-out. U zult naar een nieuwe titel worden gevraagd voor de nieuwe afdruklay-out.

  3. We willen een kaartlay-out maken die bestaat uit een kop en een kaart van de regio nabij Swellendam, Zuid-Afrika. De lay-out zou een marge van 7,5 mm moeten hebben en de kop zou 36 mm hoog moeten zijn.

  4. Maak een kaartitem, genaamd hoofdkaart in het kaartvenster en ga naar het paneel Lay-out. Scroll naar beneden naar het gedeelte Variabelen en zoek het gedeelte Lay-out. Hier stellen we enkele variabelen in die u overal in de dynamische afdruklay-out kunt gebruiken. Ga naar het paneel Lay-out en scroll naar beneden naar het gedeelte Variabelen. De eerste variabele zal de marge definiëren. Druk op de knop symbologyAdd en typ de naam sw_layout_margin in. Stel de waarde in op 7.5. Druk opnieuw op de knop symbologyAdd en typ de naam sw_layout_height_header in. Stel de waarde in op 36.

  5. Nu bent u klaar om de positie en de grootte van het kaartvenster automatisch te maken door middel van de variabelen. Zorg er voor dat het kaartitem is geselecteerd, ga naar het paneel Item-eigenschappen en scroll naar beneden en open het gedeelte Positie en grootte. Klik op dataDefineExpressionOn Data-bepaalde override voor X en kies, uit het item Variabelen, @sw_layout_margin.

  6. Klik op dataDefineExpressionOn Data-bepaalde override voor Y, kies Bewerken… en typ de volgende formule in:

    to_real(@sw_layout_margin) + to_real(@sw_layout_height_header)
    
  7. U kunt de grootte van het kaartitem maken met de variabelen voor Breedte en Hoogte. Klik op dataDefineExpressionOn Data-bepaalde override voor Breedte en kies opnieuw Bewerken…. Vul de volgende formule in:

    @layout_pagewidth - @sw_layout_margin * 2
    

    Klik op dataDefineExpressionOn Data-bepaalde override voor Hoogte en kies Bewerken…. Typ hier in de formule:

    @layout_pageheight -  @sw_layout_height_header -  @sw_layout_margin * 2
    
  8. We zullen ook een raster maken dat de coördinaten van het bereik van het hoofd-kaartvenster bevat. Ga opnieuw naar Item-eigenschappen en kies het gedeelte Rasters. Voeg een raster in door te klikken op de knop symbologyAdd. Klik op Raster aanpassen… en stel de Interval voor X, Y en Verspringing in overeenkomstig de schaal voor de kaart die u koos in het hoofd-kaartvenster van QGIS. Het Type raster Kruis is zeer geschikt voor ons doel.

4.2.2. moderate Follow Along: De dynamische kop maken

  1. Voeg een rechthoek in die de kop zal bevatten met de knop addBasicShape Vorm toevoegen. Voer in het paneel Items de naam header in.

  2. Ga opnieuw naar de Item-eigenschappen en open het gedeelte Positie en grootte. Gebruik dataDefineExpressionOn Data-bepaalde override, kies de variabele sw_layout_margin voor X als ook voor Y. Breedte zal worden gedefinieerd door de expressie:

    @layout_pagewidth - @sw_layout_margin * 2
    

    en Hoogte door de variabele sw_layout_height_header.

  3. We zullen één horizontale lijn en twee verticale lijnen invoegen om de kop op te delen in verschillende gedeelten met behulp van het addNodesShape Item Knoop toevoegen. Maak een horizontale lijn en twee verticale lijnen en noem ze Horizontale lijn, Verticale lijn 1 Verticale lijn 2.

    1. Voor de horizontale lijn:

      1. Stel X in op de variabele sw_layout_margin

      2. Stel de expressie voor Y in op:

        @sw_layout_margin + 8
        
      3. Stel de expressie voor Breedte in op:

        @layout_pagewidth -  @sw_layout_margin * 3 - 53.5
        
    2. Voor de eerste verticale lijn:

      1. Stel de expressie voor X in op:

        @layout_pagewidth - @sw_layout_margin * 2 - 53.5
        
      2. Stel Y in op de variabele sw_layout_margin

      3. De hoogte moet hetzelfde zijn als de kop die we gemaakt hebben, dus stel Hoogte in op de variabele sw_layout_height_header.

    3. De tweede verticale lijn wordt links van de eerste geplaatst.

      1. Stel de expressie voor X in op:

        @layout_pagewidth - @sw_layout_margin * 2 - 83.5
        
      2. Stel Y in op de variabele sw_layout_margin

      3. De hoogte moet hetzelfde zijn als de andere verticale lijn, dus stel Hoogte in op de variabele sw_layout_height_header.

    De afbeelding hieronder geeft de structuur weer van onze dynamische lay-out. We zullen de gebieden, die door de lijnen worden gevormd, vullen met enkele elementen.

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

4.2.3. moderate Follow Along: Labels maken voor de dynamische kop

  1. De titel van uw project van QGIS kan automatisch worden ingevoegd. De titel is ingesteld in de Projecteigenschappen. Voeg een label in met de knop label Label toevoegen en voer de naam project title (variable) in. In de Algemene eigenschappen van het paneel Item-eigenschappen voer in de expressie:

    [%@project_title%]
    

    Stel de positie van het label in.

    1. Gebruik voor X de expressie:

      @sw_layout_margin + 3
      
    2. Gebruik voor Y de expressie:

      @sw_layout_margin + 0.25
      
    3. Gebruik voor Breedte de expressie:

      @layout_pagewidth - @sw_layout_margin *2 - 90
      
    4. Voer 11.25 in voor de Hoogte

    Stel, onder Uiterlijk, de grootte van het lettertype in op 16 pt.

  2. Het tweede label zal een beschrijving bevatten van de kaart die u gemaakt hebt. Voeg opnieuw een label in en noem die map description. Voer, in de Algemene eigenschappen, de tekst beschrijving kaart in. In de Algemene eigenschappen zullen we ook opnemen:

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

    Hier gebruikten we twee functies Datum en Tijd (now en format_date).

    Stel de positie van het label in.

    1. Gebruik voor X de expressie:

      @sw_layout_margin + 3
      
    2. Gebruik voor Y de expressie:

      @sw_layout_margin + 11.5
      
  3. Het derde label zal informatie bevatten over uw organisatie. Eerst zullen we enkele variabelen maken in het menu Variabelen van de Item-eigenschappen. Ga naar het menu Lay-out, klik elke keer op de knop symbologyAdd en voer de namen o_department, o_name , o_adress en o_postcode in. Voer op de tweede regel informatie in over uw organisatie. We zullen deze variabelen gebruiken in het gedeelte Algemene eigenschappen.

    Voer in Algemene eigenschappen in:

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

    Stel de positie van het label in.

    1. Gebruik voor X de expressie:

      @layout_pagewidth - @sw_layout_margin - 49.5
      
    2. Gebruik voor Y de expressie:

      @sw_layout_margin + 15.5
      
    3. Gebruik voor Breedte 49.00

    4. Gebruik voor Hoogte de expressie:

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

4.2.4. moderate Follow Along: Afbeeldingen toevoegen aan de dynamische kop

  1. Gebruik de knop addImage Afbeelding toevoegen om een afbeelding boven uw label organisatie informatie te plaatsen. Definieer, na het invoeren van de naam organisatie logo, de positie en grootte van het logo:

    1. Gebruik voor X de expressie:

      @layout_pagewidth - @sw_layout_margin - 49.5
      
    2. Gebruik voor Y de expressie:

      @sw_layout_margin + 3.5
      
    3. Gebruik voor Breedte 39.292

    4. Gebruik voor Hoogte 9.583

    U moet, om een logo van uw organisatie te hebben, uw logo opslaan in uw thuismap en het pad invoeren onder Algemene eigenschappen ► Bron afbeelding.

  2. Onze lay-out heeft nog steeds een noordpijl nodig. Deze zal ook worden ingevoegd met northArrow Noordpijl toevoegen. We zullen de standaard noordpijl gebruiken. Definieer de positie:

    1. Gebruik voor X de expressie:

      @layout_pagewidth - @sw_layout_margin * 2 - 78
      
    2. Gebruik voor Y de expressie:

      @sw_layout_margin + 9
      
    3. Gebruik voor Breedte 21.027

    4. Gebruik voor Hoogte 21.157

4.2.5. moderate Follow Along: De schaalbalk maken voor de dynamische kop

  1. Klik, om een schaalbalk in de kop in te voegen, op scaleBar Schaalbalk toevoegen en plaats die in de rechthoek boven de noordpijl. In Kaart onder de Algemene eigenschappen kies uw hoofdkaart (Kaart 1). Dit betekent dat de schaal automatisch wijzigt overeenkomstig het bereik dat u kiest in het hoofdvenster van QGIS. Kies de Stijl Numeriek. Dit betekent dat we een eenvoudige schaal invoegen, zonder een schaalbalk. De schaal heeft nog steeds een positie en grootte nodig.

    1. Gebruik voor X de expressie:

      @layout_pagewidth - @sw_layout_margin * 2 - 78
      
    2. Gebruik voor Y de expressie:

      @sw_layout_margin + 1
      
    3. Gebruik voor Breedte 25

    4. Gebruik voor Hoogte 8

    5. Plaats het Referentiepunt in het midden.

Gefeliciteerd! U hebt uw eerste dynamische kaartlay-out gemaakt. Kijk naar de lay-out en controleer of alles er uitziet zoals u wilt! De dynamische kaartlay-out reageert automatisch als u de pagina eigenschappen wijzigt. Als u bijvoorbeeld de grootte van de pagina wijzigt van DIN A4 naar DIN A3, klik dan op de knop refresh Scherm vernieuwen en het ontwerp van de pagina wordt aangepast.

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

4.2.6. What’s Next?

Op de volgende pagina zal u een opdracht worden gegeven om uit te voeren. Die zal u in staat stellen de technieken die u tot nu heeft geleerd in praktijk te brengen.