Czas na GIS

1. Instalacja PostgreSQL i PostGIS

Do instalacji modułu PostGIS mamy wiele możliwości:

Ja wybrałem wersje https://www.enterprisedb.com/downloads/postgres-postgresql-downloads, wersja ta zawiera Stack Builder (który pomaga doinstalować moduły do PostgreSQL)

Ściągamy zatem wersje Windows x86-64 i instalujemy.

Wybieramy lokalizacje instalacji, hasło dla administacyjnego usera postgres-a (zapamietajmy je) i port (jak nie mamy więcej instancji postrgresa to zostawmy default). Potem baza zaczyna sie instalować.

Po zakończeniu instalacji wybieramy aby uruchomiło nam Stack Buildera

Stack Builder poprosi nas o wybranie instalacji Postgres którą chcemy „modyfikować”, wybieramy naszą.

a potem doznaczamy co Stack Builder ma nam doinstalować (u nas PostGIS).

następnie wybieramy download directory (u mnie default user dir), to jest folder do którego zostaną ściągniete pliki instalacyjne.

Po naciśnięciu Next, czekamy (u mnie trwało to trochę zanim wogóle zaczęło się sciągać, proszę nie panikować).

Następnie musimy przeprowadzić instalacje ściągniętych modułów

Kolejno (I agree) o ile zgadzamy się z licencją …

Next (wybór komponentów) i Next (wybór lokalizacji instalacji, default w folderze Postgres-a) w kolejnych krokach, potem Close w ostatnim.

Teraz możemy wrócić do Stack Buildera i nacisnąć Finish

No i mamy juz działającego PostgreSQL z zainstalowanym modułem postGIS.

Wejdźmy teraz do pgAdmina (tutaj 4)

wybieramy naszą bazę i podajemy do niej hasło (u mnie jest więcej baz, nas interesuje aktualnie PostgreSQL 17)

Potem wybieramy żółte pole, to otworzy nam Query Tool , okienko gdzie będziemy sie porozumiewać z posgreSQL, wpisujemy

 CREATE EXTENSION postgis; 

i klikamy w strzałkę powyżej. (Execute Script). To instaluje nam w bazie funkcje postGIS.

Następnie możemy sprawdzić czy postGIS został poprawnie zainstalowany poprzez wpisanie i uruchomienie skryptu jak powyżej:

SELECT PostGIS_Full_Version();

Zwróci to nam Dane w Data Output poniżej.

Ok, utwórzmy teraz nowego usera „qgis” , który będzie mogł grzebać tylko w swoim scheme (obszarze, schemacie), ale też będzię mógł korzystać z dobrodziejstw postgis-a, Najcześciej tworzy się schematy z tą samą nazwą co user, więc stworzymy usera i schemat „qgis”, i nadamy mu uprawnienia.

Wykonujemy (Execute script [F5]) poniższe

-- tworzymy usera qgis i nadajemy mu haslo
CREATE USER qgis WITH PASSWORD 'qpass'; 
-- tworzymy miejsce pracy usera
CREATE SCHEMA AUTHORIZATION qgis; 
-- zezwalamy zeby nasz nowy user mogl sie logowac do bazy
GRANT CONNECT ON DATABASE postgres TO qgis; 
-- zezwalamy zeby nasz nowy user mogl korzystac z publicznej schema, 
-- tam sa min zainstalowane funkcje postgisa
GRANT USAGE ON SCHEMA public TO qgis; 
GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA public TO qgis;
GRANT ALL ON geometry_columns TO qgis;
GRANT ALL ON spatial_ref_sys TO qgis;

Teraz w teorii moglibyśmy się już zalogować z poziomu QGIS i sprawdzić czy serwer zezwala nam na połączenie.

Wpisujemy nasze dane logowania

  • Nazwa : dowolna nazwa rozpoznawalna dla nas, nie zalecam spacji
  • Usługa : nie definiowalismy danych usługi, pozostawiamy puste
  • Host : u nas localhost (baza lokalna)
  • Port : o ile podczas instalacji nie zmienilismy to port bedzie default 5432
  • Baza danych : postgres (defaultowa nazwa)

Potem klikamy Test Połączenia i podajemy naszego user/pass i klikamy OK

Teraz mozemy kliknac OK, połączenie zostało zdefinowane a QGIS już je dodał do listy.

Definowaniem tabel i warstw zajmiemy się w nastepnym wpisie.

Co dzisiaj zrobilismy:

  • Zainstalowalismy na Windows 11 lokalny serwer PostgreSQL
  • Zainstalowaliśmy i aktywowaliśmy moduł postGIS
  • Stworzylismy usera i scheme dla naszego usera
  • Nadaliśmy mu uprawnienia żeby mógł się łączyć i korzystać z dobrodziejstw postGIS
  • Skonfigurowaliśmy połączenie z postgreSQL w QGIS

Czego nie zrobiliśmy:

  • nic nie zrobiliśmy w kwestiach bezpieczenstwa, zakładam że będzie to lokalna testowa baza danych do nauki
  • zalecam tez wybranie innego niz 'qpass’ hasla 🙂

Komentarze

Dodaj komentarz

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