Instrukcja – jak stworzyć atlas zamiast wydruku mapy QGIS? 13


e-book "Mapy w QGIS 3.4" już w sprzedaży

Atlas jest bardzo przydatną funkcją, którą znajdziemy w kreatorze wydruków QGIS. Umożliwia stworzenie zestawu map z jednego szablonu, bez konieczności tworzenia wielu wydruków. Jest to szczególnie przydatne, gdy potrzebujemy przedstawić jakiś obszar “w częściach” lub też różne, oddalone od siebie tereny. Podstawą dla stworzenia atlasu jest warstwa wektorowa (Warstwa opracowania), która zawiera obiekty definiujące obszary, jakie mają znaleźć się na poszczególnych kartach atlasu.

Do poniższego przykładu wykorzystałam dane o lasach, dostępne na stronie: Bank Danych o Lasach (administrowanej przez Dyrekcję Generalną Lasów Państwowych), a efekt końcowy wygląda tak:

Ale po kolei…

Włączenie opcji tworzenia atlasu

Najpierw, po wczytaniu i stylizacji warstw, stworzyłam nowy wydruk, do którego dodałam mapę.

Okno wydruku mapy w QGIS

Niezbędne czynności aby stworzyć atlas:

  • w zakładce Atlas zaznaczyłam opcję Generuj atlas oraz wskazałam warstwę opracowania, czyli warstwę, w której znajdują się obiekty określające zasięg mapy na kolejnych kartach atlasu.
  • W zakładce właściwości mapy zaznaczyłam, że będzie ona kontrolowana przez atlas.

Jak ustawić warstwę opracowania w atlasie QGIS  Jak ustawić opcje atlasu QGIS - kontrola przez atlas

Jako warstwę opracowania wybrałam tę z nadleśnictwami. Każde z nich jest osobnym obiektem (poligonem), zatem w centrum kolejnych kart atlasu będą się znajdowały kolejne nadleśnictwa. Opcje dotyczące kadrowania znajdziemy we właściwościach mapy. Możemy ustawić określony margines wokół każdego z obiektów (jedną wartość dla wszystkich lub inną dla każdego z obiektów – opartą na wartościach wpisanych do tabeli atrybutów ) lub stałą bądź zdefiniowaną skalę.

Podgląd atlasu

Aby podejrzeć, jak będą wyglądały kolejne karty, należy włączyć podgląd atlasu (w menu Atlas lub na pasku). Za pomocą strzałek można teraz przejrzeć kolejne karty:

Jak włączyć podgląd atlasu w QGIS

 

Aby uzyskać efekt końcowy, wykorzystałam następujące opcje QGIS:

Wyświetlenie tylko tego poligonu, który jest przedstawiany na danej karcie z atlasu

Aby to zrobić, dla warstwy wektorowej nadlesnictwa.shp zastosowałam styl oparty na regułach i jako regułę wyświetlania warstwy użyłam wyrażenia :

$id = $atlasfeatureid
[EDIT: od wersji QGIS 3 zamiast $atlasfeatureidnależy wstawić zmienną @atlas_featureid]

Jak wyświetlić tylko główny poligon w atlasie QGIS

Dodatkowo, aby uzyskać efekt wybielenia obszaru wokół danego poligonu zduplikowałam warstwę z nadleśnictwami i ustawiłam białe, półprzezroczyste dopełnienie poligonów z zastosowaniem tej samej reguły, co wcześniej. Dzięki temu dopełnienie wyświetlane jest dla poligonu przedstawianego na danej karcie atlasu.

Jak wyświetlić tylko główny poligon w atlasie QGIS - dopełnienie poligonów

Podziałka i strzałka północy

Do mapy dodałam strzałkę północy z biblioteki symboli QGIS. Należy w tym celu dodać nowy obraz do wydruku, a następnie, we właściwościach obiektu, w sekcji Szukaj w katalogach, wskazać wybrany obraz svg. Aby mieć z czego wybierać, pobrałam wcześniej różne zestawy symboli, m.in. za pomocą wtyczki Resource sharing (możecie o tym przeczytać we wpisie: Zestawy symboli QGIS – skąd je wziąć?).

Jak dodać strzałkę północy na mapie

Następnie do mapy dodałam podziałkę. W przypadku atlasu mamy opcję dopasowania szerokości segmentu podziałki. QGIS sam dobiera jednostki w zależności od wielkości obiektu, określamy tylko zakres wielkości segmentu w milimetrach. Jest to bardzo przydatna funkcja, bo dzięki temu podziałki na kolejnych kartach atlasu mają podobną wielkość, choć skala map może być bardzo różna.

Jak dopasować podziałkę w atlasie QGIS

Automatyczny podpis na karcie atlasu i legenda

Aby na każdej z kart znalazła się nazwa prezentowanego na niej nadleśnictwa, wykorzystałam wyrażenie, które tworzy ciąg tekstu “sklejając” różne elementy. W tym przypadku złączyłam ciąg tekstu (Nadleśnictwo) z wartością pobraną z tabeli atrybutów warstwy, znajdującą się w kolumnie o nazwie “ins_name”. Wyrażenie to wygląda następująco:

concat('Nadleśnictwo ', "ins_name")

…a jego efekt widać poniżej:

Jak zrobić automatyczne podpisy w atlasie QGIS - funkcja concat

Mapa podglądu – lokalizacja prezentowanego obiektu

Ostatnim elementem, jaki dodałam, jest mapa podglądu, która pokazuje lokalizację mapy na wybranym obszarze (ja wyświetliłam granice Polski, ale równie dobrze może być to mniejszy obszar). Dodałam do wydruku nową mapę, a następnie w jej właściwościach dodałam (za pomocą plusa) nową mapę podglądu. Mapa podglądu wyświetla za pomocą prostokąta (którego styl możemy edytować) zasięg wskazanej mapy. Do legendy dodałam też symbol granicy państwa.

Jak zrobić mapę podglądu w QGIS

Eksport (drukowanie) atlasu

Atlas mamy już gotowy, Teraz wystarczy wyeksportować hurtowo wszystkie karty (będzie ich tyle, ile poligonów w warstwie opracowania). Możemy je zapisać jako obrazy, pliki svg lub pdf, albo od razu wydrukować. Opcje eksportu znajdziemy w menu Atlas. Jeśli użyjemy opcji eksportu z menu Wydruk, to otrzymamy wydruk tylko jednej, bieżącej karty z atlasu.


Jeśli ten wpis był dla Ciebie interesujący - pokaż go proszę komuś, kogo może zaciekawić, udostępnij w mediach społecznościowych:


Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

13 komentarzy do “Instrukcja – jak stworzyć atlas zamiast wydruku mapy QGIS?

  • Maciej Gembicki

    Na wstępie gratuluje wykonania poradnika, bardzo przejrzysty i dokładny. Mam tylko jedno pytanie. Czy wiesz jak sprawić , żeby poligon dopełniający przykrył tez etykiety?Jest na to jakiś sposób?

    • Alina Gerlée

      Dzięki! 🙂
      Jeśli chodzi o etykiety, to niestety nie ma obecnie możliwości umieszczenia ich pod jakąkolwiek warstwą. Można to zrobić jedynie eksportując mapę do formatu svg, a następnie zmieniając kolejność obiektów np. w programie Inkscape. Innym rozwiązaniem jest wyświetlanie tylko tych etykiet, które znajdują się w obrębie głównego poligonu atlasu. Można to zrobić za pomocą wyrażenia warunkowego, które wpisujemy w pole “Etykietuj z”, znajdujące się we właściwościach etykietowanej warstwy:
      CASE WHEN within($geometry, @atlas_geometry) THEN “kolumna-z-etykietą” END
      Zamiast ‘within’ można użyć też np. ‘intersects’.

    • Maciej Gembicki

      dzięki za odpowiedź metoda na pewno się przyda. Czy planujesz może zrobić poradnik z zastosowaniem wyrażeń w stylizacji warstw?

    • Alina Gerlée

      Ach, czego ja nie planuję! 😀
      A tak serio, to na pewno coś się pojawi na ten temat, ale nie wiem jeszcze kiedy 🙂

  • Rafał Kroker

    Bardzo fajna instrukcja, dziękuję :). Natrafiłem na mały problem z warstwą wybielającą obszar wokół danego polygonu – nie umiem nią wybielić etykiet. Da się tak w ogóle zrobić, żeby etykiety znalazły się pod polygonem?

    • Alina Gerlée Autor wpisu

      Cieszę się, że jest przydatna 🙂 Jeśli chodzi o etykiety to odpowiedź jest powyżej (nie było widać tych wcześniejszych komentarzy przez jakiś czas, ale chyba udało się to już naprawić).

    • Alina Gerlée Autor wpisu

      Przyszło mi do głowy jeszcze jedno rozwiązanie tego problemu – jeśli etykieta nie jest długa, a etykietowane elementy leżą na tyle daleko od siebie, że nie jest konieczne rozsuwanie i przesuwanie ich podpisów, to zamiast używać etykiet można wskazać odpowiednią kolumnę jako część symbolu (opartego na danych). Może napiszę krótki wpis na ten temat niebawem 🙂

  • Dawid

    Super poradnik. Dla mnie brakuje w tym poradniku jednej informacji (dla bardziej początkujących) – żeby druga mapa z podglądem wyglądała jak chcemy (z wyświetleniem innych warstw niż mapa główna) należy wcześniej zdefiniować motyw warstwy w panelu warstw. Sam szukałem tej informacji i dlatego myślę, że może być przydatna dla innych. Pozdrawiam.

    • Alina Gerlée Autor wpisu

      Można zastosować motywy, ale można też zablokować warstwy w oknie wydruku – efekt będzie podobny. Ja korzystam z obu tych opcji równie często. Pozdrawiam i cieszę się, że instrukcja jest przydatna 🙂

    • Alina Gerlée Autor wpisu

      Dziękuję za miłe słowa i cieszę się, że jest przydatny 🙂

  • Kamil

    czy jest możliwe powiązanie atlasu z exelem
    mamy w QGIS przygotowany atlas map po unikalnym numerze i zastanawiam się czy jest możliwość wydruku z poziomu Excela gdzie spis numerów map?

    • Alina Gerlée Autor wpisu

      Można wczytać plik Excela do QGIS, ale nie da się drukować map z QGIS z poziomu Excela. Jeśli czyta to pytanie jakiś programista to w razie czego proszę o korektę, ale wydaje mi się, że w związku z tym, że Excel jest zamkniętym oprogramowaniem takie integracje nie są możliwe.