Czas na GIS

QGIS Atlas na przykładzie kościołów w Krakowie

Dzisiaj przedstawię Państwu możliwość wykorzystania narzędzia do automatyzacji wydruków o nazwie Atlas wbudowanego do QGIS-owego menadżera wydruków. Atlas to narzędzie, dzięki któremu możemy wykonać wielostronicowy pdf z mapami lub wygenerowac kilka map seryjnych w jpg/tiff etc.

Na potrzeby dzisiejszego wpisu przygotowałem paczkę danych do pobrania <tutaj>. Zawiera ona projekt qgis i 2 warstwy w shp. Otwórzmy projekt:

Widzimy tu 3 zdefiniowane warstwy:

Kościoły kraków – jest to warstwa pobrana z bazy BDOT10k. Sposób pobierania danych z Geoportalu nie jest intuicyjny i zasługuje na osobny wpis, niby prosto prawy klawisz myszy, ale za każdym razem przysparza to jakichś problemów. Przygotowanie tego SHP polegało na ściągnięciu paczki shp z obiektami, i wyciągnięciu, oraz opisaniu braków danych na niektórych obiektach.

Drugi shp to granicą m. Krakowa pobrana z danych Państwowych (granice gmin). Nie jestem w stanie aktualnie określić z jakiego zasobu to pochodzi, natomiast demonstracyjny zasób posiadający te dane to https://mapy.geoportal.gov.pl/wss/service/PZGIK/PRG/WMS/AdministrativeBoundaries.

Trzecia warstawa to OpenStreenMap żeby był jakiś w miarę ładny podkład.

Warstwę kościoły zdefinowałem żeby „świeciła” obrysem kościoła, co powinno dać przyjemny wygląd przy seryjnym wydruku.

Zabierzmy się więc za konfiguracje. Najpierw trochę teorii, Atlas to narzędzie gdzie definiujemy warstwę wiodącą tj taką której features (pojedyncze obiekty warstwy/tabeli) będą tworzyć odrębne mapy wg ustalonego schematu.

Stwórzmy zatem nowy Układ wydruku. w tej wersji QGIS nie zostało to poprawnie przetłumaczone. Ja go nazwałem A4, lubię wiedzieć jaki rozmiar danego layout jest wybrany już w nazwie, łatwiej potem wybierać, drukować.

Po otwarciu nowego układu wydruku klikamy prawym klawiszem myszy na białej widocznej części strony i wybieramy Właściwości Strony, a potem ustawiamy we właściwościach po prawej stronie okna rozmiar i układ strony. Tutaj zmienimy na pionowo, Wydaje się, że będzie to lepsze w przypadku małych poglądowych mapek,

Przy użyciu narzędzia dodaj Mapę dodałem mapę 200x200mm

Teraz klikamy ikonę Ustawienia Atlasu, otworzą nam się właściwości Atlasu. Warstwa opracowanie to kościoły_kraków, nazwa strony to INFO_DODAT (są tam opisane wszystkie obiekty które chcemy wygenerować).

Przechodzimy teraz na właściwości mapy i wybieramy kolejno: Kontrolowane przez Atlas, aby mapa była kontrolowana przez narzędzie i predefinowane skale. Dzięki temu qgis sam dobierze nam najbardziej odpowiednią skalę mapy z już predefiniowanych. Za chwilę pokażę gdzie takie skale można zdefinować.

Ustawienia QGIS, wyszukujemy słowo: skale (na samym dole ustawień).

Wróćmy do układu wydruku, włączamy Podgląd Atlasu. Teraz możemy przełączać pomiędzy poszczególnymi mapami.

Po przyglądnięciu się temu dokładniej predefinowana skala okazała się w tym przypadku za mała i ustaliłem stałą skalę na 1:1000, bo nie było widać ulic okolicznych, a jak to ma być mapka dla turystów to muszą się przecież jakoś odnaleźć. Mogłem też usunąć 1:500 z predefiniowach skali map.

Dodajmy teraz jeszcze opis dla każdej z map, w dodatkowym wpisie zademontruje jak dodać

Najpierw dodajemy etykietę:

Klikamy wstaw/edytuj wyrażenie i otworzy nam sie formatka edycyjna:

przy użyciu funkcji attribute pobieramy z aktualnej @atlas_feature pole INFO_DODAT czyli w tym przypadku nazwę kościoła. Wpisujemy : attribute(@atlas_feature,’INFO_DODAT’)

Zatwierdzamy OK, Dopasowałem jeszcze czcionkę do 30, i dodałem ramkę i wygląda to wynikowo tak :

Dodajmy jeszcze QRCode do google maps, użyjemy do tego plugina QR Barcode Layout Item

Dodajemy Barcode item :

I przy użyciu insert expression dodajemy:

’https://www.google.com/maps/place/’||round(y(transform(centroid(@atlas_geometry),’EPSG:2180′,’EPSG:4326′)),6)|| ’,’ ||round(x(transform(centroid(@atlas_geometry),’EPSG:2180′,’EPSG:4326′)),6)

Po koleji, pierwsza linia to początek linka, potem mamy dla drugiej i trzeciej linii podobne działania

  • bierzemy @atlas_geometry czyli bieżącą geometrie atlasu, która jest poligonem
  • zmieniamy ją na punkt poprzez funkcję centroid(geometry)
  • transformujemy ja poprzez funkcje transform z układu 2180 do 4326 (czyli z ukladu Poland_CS92 na WGS84)
  • wyciagamy po koleji dla kolejnych linii y i x funkcją y(geometry) i x(geometry)
  • zaokrąglamy to do 6 miejsc po przecinku
  • pomiędzy liniami dodajemy , (przecinek)

Wynikowo nasz link powinien wygladac w stylu :

https://www.google.com/maps/place/50.0960886,20.1805308

Dodajmy jeszcze 1 pole zliczające strony naszego atlasu

Wstawione wyrażenie to : @atlas_featurenumber || ’ / ’ || @atlas_totalfeatures

czyli: aktualna feature / wszystkie features

Do zakończenia brakuje nam jeszcze skali, róży wiatrów i atrybucji OSM (wymaganej prawnie)

I wspomniana wyżej atrybucja osm

No i eksportujemy atlas jako pdf.

W formatce przyjmujemy do wiadomosci ze wms nie zawsze działają i Wybieramy Zachowaj, a następnie czekamy na wygenerowanie 140 stronicowego pdf.

Projekt z wynikowym skonfigurowanym layout dla Atlasu wliczony w paczce danych wejsciowych.

Jak zawsze zapraszam do kontaktu/dyskusji.

Komentarze

Dodaj komentarz

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