QGIS News #5 Granty QGIS

W jednym z poprzednich artykułów z wspominaliśmy o rozpoczęciu drugiej edycji grantów QGIS. W skrócie polega to na tym, że programiści z całego świata mogą zgłaszać swoje propozycje związane z rozwojem projektu, następnie uprawnieni członkowie społeczności głosują na wybrane przez siebie pozycje i te o największej popularności zostaną sfinansowane ze środków fundacji. Z końcem kwietnia zostało zakończone głosowanie i ogłoszono listę projektów, które otrzymają dofinansowanie. Wyniki zostały opublikowane w formie publicznego arkusza kalkulacyjnego. W bieżącej edycji programu zostało zgłoszonych 13 projektów, z których ostatecznie zostanie zrealizowanych 6 najwyżej ocenionych o łącznej wartości 25,6 tys. €. Przyjrzyjmy się bliżej tym projektom wg otrzymanej punktacji. Jeśli wszystko przebiegnie bez dodatkowych komplikacji poniższe rozwiązania powinny być gotowe przed premierą QGIS 3.

Ujednolicenie kontrolek

Najwięcej punktów otrzymał projekt Nyall Dawson’a dotyczący ujednolicenia działania kilku kontrolek dostępnych w QGIS. W wielu miejscach aplikacji użytkownicy mogą ustawiać te same lub podobne parametry, jednak kontrolki służące temu różnią się od siebie wyglądem lub zachowaniem. Przykładem może być ustawienie kąta obrotu, który w zależności od miejsca może być ustalony w zakresie od -180 do 180 st. lub od 0 do 360 st. Również kierunek obrotu może się różnić dla tych samych wartości w różnych miejscach. Podobnie sytuacja ma się z ustawieniem przezroczystości, którą można modyfikować w zakresach od 0 do 100% lub od 0 do 255. Tego typu problemy można oczywiście dalej wyliczać. Stają się one szczególnie uciążliwe w przypadku ich ustawiania na podstawie wartości atrybutów poszczególnych obiektów warstwy. Dodatkowym poziomem skomplikowania tego projektu jest konieczność zachowania wstecznej kompatybilności z istniejącymi projektami .qgs, tak aby możliwe było ich otwieranie w QGIS 3. Ujednolicenie tego typu rozbieżności wpłynie pozytywnie na użytkowanie aplikacji.

Testy dla klas związanych z geometrią

Mówi się, że programiści dzielą się na tych, którzy piszą testy oprogramowania oraz tych, którzy będą je pisać. Testy mają kluczowe znaczenie w utrzymaniu stabilności całej aplikacji, szczególnie tak dużej i skomplikowanej jak QGIS. Od dłuższego czasu duży nacisk w projekcie kładziony jest na rozszerzenie bazy istniejących testów, sprawdzających czy poszczególne elementy działają poprawnie. Pisaliśmy o tym kilkukrotnie przy okazji kolejnych wydań programu. Ciągle jednak istnieją obszary, które nie są pokryte testami w zadowalającym stopniu. Jednym z takich miejsc są klasy odpowiedzialne za zarządzanie i wyświetlanie geometrii, czyli jeden z podstawowych elementów systemów informacji przestrzennej. W QGIS 2 został wprowadzony nowy silnik geometryczny, doszło wsparcie dla współrzędnych z/m, dodano również krzywe (arcs). Po tak dużych zmianach ten krytyczny aspekt aplikacji wymaga zaktualizowania i uszczegółowienia bazy testów. Z tego powodu projekt z tym związany zostanie sfinansowany w ramach dostępnej puli środków.

QGIS 3D

Na trzecim miejscu znalazło się wsparcie dla wyświetlania danych przestrzennych w widoku 3D. Co ciekawe jest to propozycja, która była najczęstszym pierwszym wyborem spośród dostępnych – aż 9 z 23 głosujących wskazało go na pierwszym miejscu. Do tej pory wsparcie dla 3D w QGIS jest znikome. Istnieje wtyczka Globe, która jednak nie działa w systemach Windows czy Qgis2threejs pozwalająca wyeksportować dane przestrzenne do strony HTML, na której są one renderowane w 3D. Istniejące rozwiązania są jednak mocno ograniczone i mają zastosowanie w specyficznych sytuacjach. W związku z przejściem w QGIS 3 na nową wersję biblioteki Qt5 możliwe jest wykorzystane istniejących w niej rozwiązań. Od wersji 5.5 zawiera ona moduł do obsługi widoków 3D, który charakteryzuje się dużym stopniem abstrakcji co ułatwia dostosowanie go do konkretnych zastosowań. Martin Dobias, autor zgłoszonego projektu, stawia sobie za cel jak najpełniejsze wykorzystanie możliwości tej biblioteki. Planowane jest m.in. dodanie widoku mapy 3D (z możliwą synchronizacją z mapą 2D), renderowanie danych 2D jako tekstur na modelach 3D oraz dodanie widoku 3D w kompozytorze wydruków. Warstwy wektorowe, które posiadają współrzędne XYZ również będą możliwe do wyświetlenia w przestrzeni. Co ciekawe projekt powinien poprawić również szybkość wyświetlania danych 2D w zwykłym oknie mapy dzięki wykorzystaniu do renderowania mocy obliczeniowej kart graficznych. Prototyp możliwości jakie daje moduł 3D z biblioteki Qt5 można pobrać z repozytorium autora projektu.

Dokumentacja Narzędzi Geoprocessingu

Narzędzia geoporcessingu udostępniają bogatą bazę algorytmów do wykorzystania przez użytkowników. Niestety większość z nich nie jest udokumentowana lub pomoc jest niewystarczająca. Jednocześnie sam proces utrzymania i wyświetlania aktualnej pomocy jest dosyć kłopotliwy. W celu zmiany tej sytuacji zostanie zrealizowany projekt, który wprowadzi do tego narzędzia odpowiednie zmiany. Przede wszystkim pomoc będzie dostępna na dwa sposoby. Krótka pomoc opisująca dany algorytm będzie wyświetlana po prawej stronie od jego parametrów, podobnie jak ma to miejsce teraz. Widok ten będzie można ukryć, jeśli go nie potrzebujemy. Pełniejsza dokumentacja dostępna będzie w osobnej zakładce i będzie ona wyświetlała aktualną pomoc dostępną online. Dodatkowo planowane jest pełne opisanie geoalgorytmów QGIS i GDAL/OGR, łącznie ponad 200 dostępnych pozycji.

Zwiększenie integracji z edycyjnymi możliwościami PostGIS

W QGIS 2.14 została wprowadzona eksperymentalna możliwość tworzenia grup transakcji dla warstw z bazy PostgreSQL/PostGIS. W normalnych warunkach jeśli z jednej bazy do QGIS są wczytane różne warstwy, które są powiązane np. wyzwalaczem (edycja jednej warstwy wpływa na inną) dane nie są automatycznie aktualizowane dla wszystkich warstw, a jedynie dla edytowanej. Włączenie wspomnianej opcji pozwala na szybkie odświeżenie wszystkich warstw w danej grupie w jednej transakcji, co znacząco przyśpiesza całą procedurę. Rozwiązanie w aktualnej wersji ma jednak ciągle pewne ograniczenia takie jak brak wsparcia dla cofania zmian czy jednoczesne włączanie trybu edycji we wszystkich warstwach danej grupy. Rozwiązanie tych i innych problemów jest celem kolejnego projektu, który będzie finansowany z grantu. Dodatkowo planowane jest w ramach prac dodanie bardziej przyjaznych komunikatów w przypadku wystąpienia błędów po stronie sterowników do różnych źródeł danych, w szczególności bazy PostgreSQL.

Aktualizacja skryptów do kompilacji QGIS na systemach MacOS

Ostatnim projektem, który zostanie sfinansowany jest aktualizacja skryptów narzędzi CMake do kompilacji QGIS dla systemów MacOS. Aktualnie proces ten oparty jest na skryptach stworzonych wiele lat temu. Każda ich modyfikacja, np. dodanie nowych zależności, jest problematyczna i może generować błędy. Od czasu ich powstania również CMake dodał nowe funkcjonalności ułatwiające proces kompilacji. Larry Shaffer, autor zgłoszenia, planuje całkowicie przepisać istniejące rozwiązania z wykorzystaniem istniejących rozwiązań. Ułatwi to również przeprowadzenie całego procesu przez każdego zainteresowanego własną kompilacją QGIS.