Ważne

Tłumaczenie jest wysiłkiem społeczności QGISa przyłącz się. Ta strona jest obecnie przetłumaczona w 100.00%.

4.2. Lekcja: Tworzenie dynamicznego układu wydruku

Udało nam się stworzyć podstawowy układ wydruku mapy. Teraz możemy pójść o krok dalej i stworzyć układ, który dostosowuje się dynamicznie do naszego zasięgu mapy i właściwości strony, tj. kiedy przykładowo zmienisz jej rozmiar. Data stworzenia mapy również zaktualizuje się automatycznie.

4.2.1. ★★☆ Podążaj za instrukcjami: Tworzenie dynamicznego widoku mapy

  1. Załaduj dane w formacie ESRI Shapefile: protected_areas.shp, places.shp, rivers.shp oraz water.shp do widoku mapy oraz nadaj im taki właściwości, jakie są według Ciebie odpowiednie.

  2. Kiedy wszystkie warstwy zostaną dopasowane do Twoich upodobań, naciśnij newLayout Nowy wydruk w pasku narzędzi Projekt lub wybierz opcję Projekt ► newLayout Nowy wydruk. Zostaniesz poproszony/a o nazwanie nowego układu wydruku.

  3. Chcemy stworzyć układ składający się z nagłówka oraz mapy przedstawiającej obszar dookoła Swellendam w RPA. Marginesy powinny mieć 7,5 mm, a nagłówek mieć 36 mm wysokości.

  4. Dodaj mapę do układu i nazwij ją główna mapa. W panelu Układ wydruku zjedź na sam dół, do opcji Zmienne, gdzie powinny być dostępne zmienne podpisane jako Układ wydruku - wykorzystamy je do stworzenia naszego dynamicznego układu. Pierwsza zmienna będzie opisywać margines. Naciśnij symbologyAdd i nazwij nową zmienną sw_layout_margin. Jako wartość wpisz 7.5. Naciśnij symbologyAdd znowu, by dodać nową zmienną sw_layout_height_header, tym razem z wartością 36.

  5. Teraz możemy dopasować pozycję i układ mapy automatycznie za pomocą zmiennych. Zaznacz wcześniej dodaną mapę, a następnie przejdź do panelu Właściwości elementu. Zjedź na dół, aż zobaczysz sekcję Położenie i rozmiar. Rozwiń ją za pomocą strzałki po lewej stronie. Naciśnij dataDefineExpressionOn Nadpisywanie oparte na danych obok wartości X, a następnie w menu kontekstowym, w pozycji Zmienna wybierz sw_layout_margin.

  6. Naciśnij dataDefineExpressionOn Nadpisywanie oparte na danych obok wartości dla Y, wybierz opcję Edytuj.. i wpisz następujące wyrażenie:

    to_real(@sw_layout_margin) + to_real(@sw_layout_height_header)
    
  7. Możesz opisać rozmiar mapy za pomocą zmiennych dla wartości Szerokość i Wysokość. Naciśnij dataDefineExpressionOn Nadpisywanie oparte na danych obok wartości Szerokość i ponownie wybierz opcję Edytuj …. Wpisz następujące wyrażenie:

    @layout_pagewidth - @sw_layout_margin * 2
    

    Naciśnij dataDefineExpressionOn Nadpisywanie oparte na danych obok wartości Wysokość i wybierz opcję Edytuj …. Wpisz następujące wyrażenie:

    @layout_pageheight -  @sw_layout_height_header -  @sw_layout_margin * 2
    
  8. Stworzymy również siatkę zawierającą współrzędne głównego widoku mapy. W panelu Właściwości elementu mapy odnajdź sekcję Siatki. Dodaj nową siatkę za pomocą przycisku symbologyAdd. Następnie naciśnij Modyfikuj siatkę… i ustaw Interwał dla wartości X i Y oraz Przesunięcie w zależności od skali Twojej mapy. W naszym przypadku Typ siatki ustawiony na Krzyż sprawdzi się najlepiej.

4.2.2. ★★☆ Podążaj za instrukcjami: Tworzenie dynamicznego nagłówka

  1. Dodaj prostokąt, w którym zawrzemy nasz nagłówek, za pomocą przycisku addBasicShape Kształt. W panelu Obiekty nadaj mu nazwę naglowek.

  2. Jeszcze raz włącz właściwości elementu dla nowo dodanego prostokąta i otwórz sekcję Położenie i rozmiar. Korzystając z przycisku dataDefineExpressionOn Nadpisywanie oparte na danych, wybierz opcję Zmienna i wybierz sw_layout_margin zarówno dla X, jak i Y. Wartość Szerokość zdefiniujemy następującym wyrażeniem:

    @layout_pagewidth - @sw_layout_margin * 2
    

    Zaś Height zdefiniujemy zmienną sw_layout_height_header.

  3. Dodamy jedną poziomą i dwie pionowe linie, które podzielą nasz nagłówek na oddzielne sekcje za pomocą narzędzia addNodesShape Obiekt węzłowy. Stwórz jedną poziomą i dwie pionowe linie i nazwij je pionowa linia, pozioma linia 1 i pozioma linia 2.

    1. Dla linii poziomej:

      1. Ustaw wartość X na zmienną sw_layout_margin

      2. Dla wartości Y wpisz następujące wyrażenie:

        @sw_layout_margin + 8
        
      3. Dla wartości Szerokość wpisz następujące wyrażenie:

        @layout_pagewidth -  @sw_layout_margin * 3 - 53.5
        
    2. Dla pierwszej pionowej linii:

      1. Dla wartości X wpisz następujące wyrażenie:

        @layout_pagewidth - @sw_layout_margin * 2 - 53.5
        
      2. Ustaw wartość Y na zmienną sw_layout_margin

      3. Jej wysokość musi być taka sama jak wysokość nagłówka, więc ustaw wartość Wysokość na zmienną sw_layout_height_header.

    3. Druga linia pionowa będzie po lewej stronie względem pierwszej.

      1. Dla wartości X wpisz następujące wyrażenie:

        @layout_pagewidth - @sw_layout_margin * 2 - 83.5
        
      2. Ustaw wartość Y na zmienną sw_layout_margin

      3. Jej wysokość będzie taka sama, jak w przypadku poprzedniej linii, więc ustaw wartość Wysokość na zmienną sw_layout_height_header.

    Poniższa grafika przedstawia efekt końcowy naszych działań na dynamicznym układzie wydruku. Wypełnimy przestrzenie pomiędzy liniami w nagłówku pozostałymi elementami.

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

4.2.3. ★★☆ Podążaj za instrukcjami: Tworzenie etykiet dla dynamicznego nagłówka

  1. Możesz automatycznie umieścić nazwę swojego projektu w QGIS. Tytuł ustawia się za pomocą Właściwości projektu. Dodaj etykietę za pomocą przycisku label Etykieta i nazwij ją tytuł projektu. W sekcji Główne właściwości w panelu Właściwości elementu wpisz następujące wyrażenie:

    [%@project_title%]
    

    Ustaw położenie tytułu.

    1. Dla X użyj wyrażenia:

      @sw_layout_margin + 3
      
    2. Dla Y użyj wyrażenia:

      @sw_layout_margin + 0.25
      
    3. Dla Szerokość użyj wyrażenia:

      @layout_pagewidth - @sw_layout_margin *2 - 90
      
    4. W Wysokość wpisz 11,25.

    W sekcji Wygląd ustaw rozmiar czcionki na 16 pkt.

  2. Druga etykieta będzie zawierała opis stworzonej przez Ciebie mapy. Dodaj ponownie etykietę i nazwij ją opis mapy. W polu Główne właściwości wpisz Opis mapy. W tym samym polu zawrzemy również następujące wyrażenie (zamień tekst printed on: na wydrukowano dla polskiej wersji):

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

    Użyliśmy tutaj dwóch funkcji z grupy Data i czas (now i format_date).

    Ustaw położenie tytułu.

    1. Dla X użyj wyrażenia:

      @sw_layout_margin + 3
      
    2. Dla Y użyj wyrażenia:

      @sw_layout_margin + 11.5
      
  3. Trzecia etykieta będzie zawierać informacje o Twojej organizacji. Najpierw musimy stworzyć dodatkowe zmienne w polu Zmienne w panelu Układ wydruku. Przejdź do tego panelu i dodaj cztery zmienne za pomocą przycisku symbologyAdd, a następnie nazwij je o_department, o_name , o_adress i o_postcode. Jako ich wartość wpisz odpowiednio dział, nazwę organizacji, adres i kod pocztowy. Skorzystamy z tych danych w polu Główne właściwości trzeciej etykiety.

    W polu Główne właściwości wpisz:

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

    Ustaw położenie tytułu.

    1. Dla X użyj wyrażenia:

      @layout_pagewidth - @sw_layout_margin - 49.5
      
    2. Dla Y użyj wyrażenia:

      @sw_layout_margin + 15.5
      
    3. Jako Szerokość wpisz 49,00

    4. Dla Wysokość użyj wyrażenia:

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

4.2.4. ★★☆ Podążaj za instrukcjami: Dodawanie obrazka do dynamicznego nagłówka

  1. Użyj przycisku addImage Obraz, by dodać obrazek powyżej etykiety z danymi organizacji. Nazwij go logo i ustal następujące położenie i rozmiar:

    1. Dla X użyj wyrażenia:

      @layout_pagewidth - @sw_layout_margin - 49.5
      
    2. Dla Y użyj wyrażenia:

      @sw_layout_margin + 3.5
      
    3. Jako Szerokość wpisz 39,292

    4. Jako Wysokość wpisz 9,583

    Aby zawrzeć logo swojej organizacji na układzie, musisz je zapisać w lokalizacji dostępnej z poziomu Twojego komputera, a następnie w panelu Właściwości elementu wybrać opcję obraz rastrowy i za pomocą przycisku wyszukać wskazaną wcześniej lokalizację.

  2. Na naszym układzie brakuje jeszcze strzałki północy. Dodamy ją za pomocą przycisku northArrow Strzałka północy. Użyjemy domyślnej strzałki. Ustaw jej położenie:

    1. Dla X użyj wyrażenia:

      @layout_pagewidth - @sw_layout_margin * 2 - 78
      
    2. Dla Y użyj wyrażenia:

      @sw_layout_margin + 9
      
    3. Jako Szerokość wpisz 21,027

    4. Jako Wysokość wpisz 21,157

4.2.5. ★★☆ Podążaj za instrukcjami: Dodawanie podziałki do dynamicznego nagłówka

  1. Aby dodać podziałkę, naciśnij przycisk scaleBar Podziałka i umieść ją w prostokącie nad strzałką północy. W polu Główne właściwości, w opcji Mapa wybierz główna mapa. Dzięki temu podziałka będzie dopasowywała się automatycznie w zależności od tego, jaki zakres widoku wybierzesz w widoku mapy. Ustaw Styl na Numeryczna. Oznacza to, że dodamy prostą skalę numeryczną, bez podziałki liniowej. Musimy jeszcze ustawić jej położenie i rozmiar.

    1. Dla X użyj wyrażenia:

      @layout_pagewidth - @sw_layout_margin * 2 - 78
      
    2. Dla Y użyj wyrażenia:

      @sw_layout_margin + 1
      
    3. Jako Szerokość wpisz 25

    4. Jako Wysokość wpisz 8

    5. Ustaw Punkt odniesienia w samym środku.

Gratulacje! Udało Ci się stworzyć pierwszy dynamiczny układ wydruku. Przyjrzyj się mu, czy wszystkie elementy wyglądają tak, jak tego chcesz. Układ ten dopasuje się automatycznie, kiedy zmienisz Właściwości elementu dla strony. Przykładowo, zmień teraz rozmiar strony z A4 na A3, naciśnij przycisk refresh Odśwież widok, a układ strony dopasuje się automatycznie.

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

4.2.6. Co dalej?

Na następnej stronie otrzymasz zadanie do wykonania. Pozwoli Ci ono na wykorzystanie poznanych umiejętności w praktyce.