4.2. Lesson: Criando um Layout de Impressão Dinâmico

Agora que você aprendeu como criar um layout básico de mapa, vamos um passo adiante e criamos um layout de mapa que se adapta dinamicamente à extensão do nosso mapa e às propriedades da página, como por exemplo, quando você altera o tamanho da página. Ainda, a data de criação se adaptará dinamicamente.

4.2.1. moderate Follow Along: Criando a tela do mapa dinâmico

  1. Carregue os conjuntos de dados no formato ESRI Shapefile protected_areas.shp, places.shp, rivers.shp e water.shp na tela do mapa e adapte suas propriedades para o que for mais conveniente.

  2. Após tudo renderizado e simbolizado a seu gosto, clique no botão newLayout New Print Layout na barra de ferramentas Project ou escolha Project ► newLayout New Print Layout. Você será solicitado a escolher um título para o novo layout de impressão.

  3. Queremos criar um layout de mapa que consiste em um cabeçalho e um mapa da região perto de Swellendam, África do Sul. O layout deve ter uma margem de 7,5 mm e o cabeçalho deve ter 36 mm de altura.

  4. Crie um item de mapa chamado mapa principal na tela, vá para a seção Variables e encontre a parte Layout. Aqui definimos algumas variáveis ​​que você pode utilizar em todo o layout de impressão dinâmico. Vá para o painel Layout e desça até a seção Variables. A primeira variável definirá a margem. Pressione a tecla symbologyAdd e digite o nome sw_layout_margin. Defina o valor como 7.5. Pressione novamente a tecla symbologyAdd e digite o nome sw_layout_height_header. Defina o valor “36”.

  5. Agora você está pronto para criar a posição e o tamanho da tela do mapa automaticamente por meio das variáveis. Certifique-se de que seu item de mapa esteja selecionado, vá para o painel guilabel:Item Properties , desça e abra a seção Position and Size. Clique em Definir Expressão dados Ligado Data defined override para X e a partir da entrada Variables, escolha @sw_layout_margin.

  6. Clique em Definir Expressão dados Ligado Data defined override para Y, escolha Edit… e digite a fórmula:

    to_real(@sw_layout_margin) + to_real(@sw_layout_height_header)
    
  7. Você pode criar o tamanho do item do mapa usando as variáveis ​​para Width e Height. Clique em Definir Expressão dados Ligado Data defined override para Width e escolha Edit … novamente. Preencha a fórmula:

    @layout_pagewidth - @sw_layout_margin * 2
    

    Clique em Definir Expressão dados Ligado Data defined override para Height  e escolha Edit …. Preencha aqui a fórmula:

    @layout_pageheight -  @sw_layout_height_header -  @sw_layout_margin * 2
    
  8. Também criaremos uma grade contendo as coordenadas da extensão do mapa principal da tela. Vá novamente para Item Properties e selecione a seção Grids. Insira uma grade clicando no botão symbologyAdd. Clique em Modify grid … e defina Interval para guilabel:X, Y e Offset de acordo com a escala de mapa que você escolheu na tela principal do QGIS.

4.2.2. moderate Follow Along: Criando o cabeçalho dinâmico

  1. Insira um retângulo que conterá o cabeçalho com o botão addBasicShape Adicionar Forma. No painel Items, digite o nome cabeçalho.

  2. Novamente, vá para Item Properties e abra a seção Position and Size. Usando |dataDefineExpressionOn| :sup:`Data defined override, escolha a variável sw_layout_margin para X assim como para Y. Width deve ser definida pela expressão:

    @layout_pagewidth - @sw_layout_margin * 2
    

    e Height pela variável sw_layout_height_header.

  3. Vamos inserir uma linha horizontal e duas linhas verticais para dividir o cabeçalho em diferentes seções usando o addNodesShape Add Node Item. Crie uma linha horizontal e duas linhas verticais e as nomeie Horizontal line, Vertical line 1 Vertical line 2.

    1. Para a linha horizontal:

      1. Defina X para a variável sw_layout_margin

      2. Defina a expressão para Y como:

        @sw_layout_margin + 8
        
      3. Defina a expressão para Width como:

        @layout_pagewidth -  @sw_layout_margin * 3 - 53.5
        
    2. Para a primeira linha vertical:

      1. Defina a expressão para X como:

        @layout_pagewidth - @sw_layout_margin * 2 - 53.5
        
      2. Defina Y para a variável sw_layout_margin

      3. A altura deve ser a mesma do cabeçalho que criamos, então configure Height para a variável sw_layout_height_header.

    3. A segunda linha vertical é colocada à esquerda da primeira.

      1. Defina a expressão para X como:

        @layout_pagewidth - @sw_layout_margin * 2 - 83.5
        
      2. Defina Y para a variável sw_layout_margin

      3. A altura deve ser a mesma da outra linha vertical, então configure Height para a variável sw_layout_height_header.

    A figura abaixo mostra a estrutura do nosso layout dinâmico. Vamos preencher as áreas criadas pelas linhas com alguns elementos.

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

4.2.3. moderate Follow Along: Criando rótulos para o cabeçalho dinâmico

  1. O título do seu projeto QGIS pode ser incluído automaticamente. O título é definido em Project Properties. Insira uma etiqueta com o botão de etiqueta Add Label e digite o nome título do projeto (variável). Em Main Properties no painel Items Properties digite a expressão:

    [%@project_title%]
    

    Defina a posição do rótulo.

    1. Para X, use a expressão:

      @sw_layout_margin + 3
      
    2. Para Y, use a expressão:

      @sw_layout_margin + 0.25
      
    3. Para Width, use a expressão:

      @layout_pagewidth - @sw_layout_margin *2 - 90
      
    4. Digite 11.25 para Height

    Embaixo em Appearance defina o tamanho da fonte para 16 pt.

  2. A segunda etiqueta incluirá uma descrição do mapa que você criou. Novamente, insira uma etiqueta e a nomeie como descrição do mapa. Em Main Properties digite o texto descrição do mapa Em Main Properties também incluiremos:

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

    Aqui usamos duas funções Date and Time (now and format_date).

    Defina a posição do rótulo.

    1. Para X, use a expressão:

      @sw_layout_margin + 3
      
    2. Para Y, use a expressão:

      @sw_layout_margin + 11.5
      
  3. A terceira etiqueta incluirá informações sobre sua organização. Primeiro vamos criar algumas variáveis ​​no menu Variables do Item Properties. Vá para o menu Layout clique no botão symbologyAdd para cada vez e escreva os nomes o_department, o_name , o_adress and o_postcode. Na segunda linha, insira as informações sobre sua organização. Nós usaremos essas variáveis ​​na seção Main Properties.

    Em Main Properties insira:

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

    Defina a posição do rótulo.

    1. Para X, use a expressão:

      @layout_pagewidth - @sw_layout_margin - 49.5
      
    2. Para Y, use a expressão:

      @sw_layout_margin + 15.5
      
    3. Para Width, use 49.00

    4. Para Height, use a expressão:

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

4.2.4. moderate Follow Along: Adicionando imagens ao cabeçalho dinâmico

  1. Use o botão addImage Add Picture para colocar uma imagem acima da sua etiqueta organisation information. Depois de inserir o nome organisation logo defina a posição e o tamanho do logotipo:

    1. Para X, use a expressão:

      @layout_pagewidth - @sw_layout_margin - 49.5
      
    2. Para Y, use a expressão:

      @sw_layout_margin + 3.5
      
    3. Para Width, use 39.292

    4. Para Height, use 9.583

    Para incluir um logotipo de sua organização, você deve salvar seu logotipo em seu diretório pessoal e inserir o caminho em Main Properties ► Image Source.

  2. Nosso layout ainda precisa de uma seta de norte. Isso também será inserido usando northArrow Add North Arrow. Usaremos a seta norte padrão. Defina a posição:

    1. Para X, use a expressão:

      @layout_pagewidth - @sw_layout_margin * 2 - 78
      
    2. Para Y, use a expressão:

      @sw_layout_margin + 9
      
    3. Para Width, use 21.027

    4. Para Height, use 21.157

4.2.5. moderate Follow Along: Criando a barra de escala do cabeçalho dinâmico

  1. Para inserir uma barra de escala no cabeçalho clique em scaleBar Add Scale Bar e a posicione no retângulo acima da seta norte. Em Map, embaixo de Main Properties escolha seu main map(Map 1). Isso significa que a escala muda automaticamente de acordo com a extensão que você escolher na tela principal do QGIS. Escolha guilabel:Style Numeric. Isso significa que inserimos uma escala simples sem uma barra de escala. A escala ainda precisa de uma posição e tamanho.

    1. Para X, use a expressão:

      @layout_pagewidth - @sw_layout_margin * 2 - 78
      
    2. Para Y, use a expressão:

      @sw_layout_margin + 1
      
    3. Para Width, use 25

    4. Para Height, use 8

    5. Coloque o ponto de referência no centro.

Parabéns! Você criou seu primeiro layout de mapa dinâmico. Dê uma olhada no layout e verifique se tudo está do jeito que você quer! O layout do mapa dinâmico reage automaticamente quando você altera as page properties. Por exemplo, se você alterar o tamanho da página de DIN A4 para DIN A3, clique no botão refresh Refresh view e o design da página é adaptado.

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

4.2.6. What’s Next?

Na próxima página, você receberá uma tarefa para concluir. Isso permitirá que você pratique as técnicas que aprendeu até agora.