Problemy z wydrukiem MPZP w WMS

Cześć,
to mój pierwszy wpis na forum, ale przejdę do rzeczy.
Robiąc projekt na studia potrzebuję zrobić wydruk mapy z QGIS zawierający MPZP.
MPZP posiadam w formacie WMS podgrany z geoportalu.
Podczas przeglądania mapy oraz podczas ustawiania widoku wydruku wszystko wydaje się okej, widać warstwę o której wydruk mi chodzi.

Forma wydruku A3, rozdzielczość 600 dpi

Natomiast po wygenerowaniu mapy, plik docelowy zawiera tylko niewielki fragment MPZP o który mi chodzi. Cała reszta mapy jest “pusta” i zawiera jedynie mapę podkładową OSM.


W prawym dolnym rogu widać fragment z kawałkiem MPZP o któym piszę.

Co robię źle? Dlaczego nie mogę wygenerować poprawnie mapy o którą mi chodzi?
Bardzo proszę o pomoc bo spędziłem na tym już kilka godzin.

To co opisujesz jest bardzo typowe przy wydrukach z usług WMS i XYZ/OSM), szczególnie przy A3 + 600 dpi.


TL;DR

WMS MPZP jest obrazkiem z serwera i przy A3 + 600 dpi QGIS musi poprosić o gigantyczny raster, a serwer (nie QGIS) zwykle to ucina lub ogranicza, więc dostajesz pustkę poza małym fragmentem — rozwiązanie: zejdź do 96-150 dpi albo użyj wektora / usługi pod druk.


Limity serwerów WMS

Serwery WMS bardzo często mają narzucone ograniczenia typu:

  • maksymalna szerokość/wysokość obrazu (np. 2048×2048 lub 4096×4096 px),
  • maksymalny rozmiar odpowiedzi,
  • limity „żeby nie zabić serwera” (ochrona przed zbyt dużymi zapytaniami, także przed atakami przeciążeniowymi).

QGIS zresztą domyślnie wyświetla ostrzeżenie przy eksporcie z kompozytora, że zapytania do WMS mogą być zbyt duże.

A A3 w 600 dpi to jest gigantyczna paczka danych. Serwer wtedy potrafi:

  • zwrócić tylko fragment,
  • zwrócić pusty obraz,
  • przyciąć wynik,
  • albo zwrócić błąd (czasem QGIS go „przełknie” i zostaje pustka).

To idealnie pasuje do objawu: OSM się renderuje (bo to inny mechanizm / kafle), a WMS MPZP znika prawie cały, zostaje tylko kawałek.

Co zrobić (najprościej)?

  • Spróbuj zejść do eksportu do 150 dpi, a jeśli dalej są dziury – 96 dpi.
    Z mojego doświadczenia ta gęstość w raczej wystarcza do czytelnych wydruków A3 (zwłaszcza na studia), a 600 dpi w A3 przy WMS to proszenie się o problemy.

Druga sprawa to tyciunie etykiety i symbolizacja WMS/OSM, czyli „rozdzielczość” vs „gęstość” (dpi)

Rozdzielczość to po prostu ile pikseli ma obraz (np. 4000×3000 px).
DPI/PPI (dots per inch) to jak gęsto te piksele mają być upakowane na wydruku – czyli ile „punktów” przypada na 1 cal papieru.

Czyli:

  • ten sam obraz (ta sama liczba pikseli) wydrukowany w 96 dpi będzie „większy” na papierze,
  • a w 600 dpi będzie „mniejszy”, bo piksele są upchnięte dużo gęściej.

Dlaczego to ma znaczenie w QGIS?

Monitory komputerowe standardowo działają mniej więcej jak 96 dpi (umownie). I takiej „gęstości” trzymają się typowe usługi kafelkowe i mapy podglądowe (OSM/XYZ), a bardzo często też WMS-y są „projektowane pod ekran”, nie pod druk w 600 dpi.

Gdy ustawiasz w kompozytorze eksport na 300 dpi albo 600 dpi:

  • wektorowe elementy (teksty, ikonki, linie z warstw wektorowych) są upakowane gęściej, ale QGIS mając dane wektorowe renderuje je gęściej, więc na wydruku wyglądają poprawnie.
  • ale WMS/OSM XYZ to raster (obrazek pobierany z serwera). QGIS musi poprosić serwer o obrazek o ogromnej liczbie pikseli, żeby to pasowało do A3 w 600 dpi, więc nie dość że danych jest więcej to są mniej czytelne, bo gęstsze.

Żeby uniknąć małych etykiet, masz 3 sensowne opcje:

  1. Najlepiej: użyj danych wektorowych (np. pobranych jako plik/warstwa) zamiast WMS – wtedy wydruk jest „drukowalny” i ostry niezależnie od dpi. Ale to by trzeba było pobrać dane OSM i je symbolizować, to raczej dużo roboty.
  2. Gotowe, kompatybilne z wysoka gęstością WMS: Użyj usług przystosowanych do druku (są takie podkłady, które mają lepsze wsparcie print, np. Omniscale ma wariant pod wydruki: Printing OpenStreetMap Data), choć pewnie trzeba za to coś $$$.
  3. Możesz zostać tez przy bezpłatnym i szybkim sposobie, czyli natywnym WMS/XYZ: zmniejsz dpi eksportu (np. okolice „ekranowych” 96 dpi, ewentualnie eksperymentuj wyżej do 150). Obraz będzie mniej „drukarsko” ostry, czasem widać piksele, ale w praktyce zwykle jest czytelny.

2 polubienia