Dlaczego warto zaprzyjaźnić się ze słoniem?

Kto w pionierskich czasach powszechnego dostępu do Internetu w Polsce próbował tworzyć własną stronę internetową (na przykład w kultowym edytorze Pajączek), pamięta zapewne, że każdą z podstron zapisywało się w oddzielnym pliku .html. Na prostej stronie nie stanowiło to specjalnego problemu, ale jak trzeba było dokonać aktualizacji większego serwisu i żadnego takiego pliku nie pominąć – było już gorzej. Ciężko również wyobrazić sobie, jak w takim systemie mogłyby funkcjonować rzeczy tak dziś oczywiste: system komentarzy czy forum.

Współcześnie sprawa ma się zupełnie inaczej: kod html jest generowany dynamicznie, według szablonu, z jednego źródła, któremu na imię baza danych.

Po co ten wstęp? Ponieważ dzisiejszy wpis ma dotyczyć właśnie korzyści z zapisu geodanych w bazie danych właśnie. Rozwiązanie to jest znane już dość długo, ale zaporowe ceny licencji czyniły je osiągalnym jedynie dla bardzo dużych (i bogatych) organizacji. Na szczęście za rogiem jest OSGeo z swoją bazą, zupełnie darmową i o dużych możliwościach: PostGIS. Jest to rozszerzenie dodające obsługę danych i zapytań przestrzennych do opensource’owego systemu zarządzania relacyjnymi bazami danych o nazwie PostgreSQL.

A w czym PostGIS może nam pomóc?

Po pierwsze, daje dostęp do potężnego języka zapytań SQL, rozszerzonego o zapytania przestrzenne. Poznanie odpowiedzi na pytania typu:

  • Jak nazywa się gmina o najmniejszej gęstości sieci dróg?
  • Ile jest kilometrów linii kolejowych o prędkości szlakowej do 40 km/h w województwie śląskim?
  • Ile hoteli 4-gwiazdkowych znajduje się nie dalej niż 5 km od lotniska i 6 km od rynku?
  • Jakie działki rolne klas V i VI lub nieużytki są oddalone co najmniej 500 m od zabudowy i 200 m od terenów leśnych?

będzie trywialne, pod warunkiem, że nauczymy się je tłumaczyć na Spatial SQL 😉

Bez zastosowania bazy danych, do udzielenia odpowiedzi trzeba by było stworzyć co najmniej jeden przejściowy shapefile. Który po rozwiązaniu zadania nie będzie przedstawiał żadnej wartości i którego trzeba będzie skasować, a są to 4 osobne pliki. Jeśli zapytanie będzie bardziej złożone, plików przybędzie. Tymczasem w PostGIS to zbędne – wszelkie buffer, intersect, union i inne tego typu możemy generować w locie za naciśnięciem klawisza. A jeśli zajdzie potrzeba ich zapisania – nic prostszego, wystarczy dodać instrukcję tworzenia nowej tabeli.

Po drugie – współpraca w zespole. Choćby banalna wektoryzacja. Każda z osób pracuje nad jedną i tą samą warstwą, widzi postępy innych na bieżąco, wszystko może dokonywać się przez sieć lokalną lub Internet. Zero przesyłania i sklejania szejpów. Oraz zmyślania, że miało się już bardzo dużo, ale pendrajwa pies zjadł 🙂

Po trzecie – publikacja w sieci. Wszelkie narzędzia do serwowania danych przestrzennych (MapServer, GeoServer, Mapnik i takie tam) najbardziej lubią się właśnie z PostGIS-em. Możliwe jest zdefiniowanie tylko wybranych danych jako warstwy – np. z tabeli zawierającej wszystkie POI stworzymy osobne warstwy hoteli, stacji benzynowych i bankomatów właśnie z pomocą zapytań SQL. Indeksy przestrzenne znacznie przyspieszą pracę. Wreszcie można uruchomić usługę WFS-T i umożliwić użytkownikom  edycję danych z poziomu przeglądarki, bez instalacji nawet najprostszego programu GIS.

A czego PostGIS nie da?

Trzeba tutaj zaznaczyć, że baza PostGIS różni się bardzo od geobazy znanej z ArcEditor/ArcInfo. W aktualnej wersji stabilnej (1.5) baza PostGIS służy do przechowywania wyłącznie danych wektorowych, bez topologii – identycznie jak shapefiles. Może być za to edytowana przez wielu użytkowników na raz przez sieć. Tymczasem z geobazą jest dokładnie odwrotnie: służy do integracji danych różnego typu i przechowywania topologii, może być jednak edytowana tylko przez jednego użytkownika jednocześnie. Te wady PostGIS zostaną w dużej części wyeliminowane po ostatecznym wydaniu wersji 2.0 – tam topologia i rastry są obsługiwane.

Poza tym,  PostGIS zapewnia możliwość pracy z danymi z poziomu bardzo różnych programów – ale tylko OpenSource. Bo gdyby ArcGIS miał możliwość korzystania z geobazy wielodostępnej za darmo, to kto by płacił (bardzo)ciężkie pieniądze za ArcGIS Server? W firmach, gdzie jest jedno stanowisko wyposażone w program ESRI i kilka innych z np. Quantum GIS – instalacja PostGIS się nie sprawdzi.

Więcej na temat PostGIS można poczytać na oficjalnej stronie projektu:

http://www.postgis.org/

Sporo materiałów znajduje się też na stronie Boston GIS: http://bostongis.com/?content_name=postgis_tut01#20