MapServer i PostGIS
MapServer obsługuje wiele typów danych. Dane może czerpać z plików (np. shape) lub bezpośrednio z baz danych. Dziś zajmę się tym drugim przypadkiem. W związku z tym, iż MapServer jest narzędziem bezpłatnym, chciałabym pokazać jak dodać do niego dane zawarte w również bezpłatnym systemie baz danych – PostGIS.
Otwieramy stosowny plik *.map i definiujemy nową warstwę (pogrubione zostały elementy, które zmieniamy wedle potrzeby):
# Uwaga!
# W taki sposób zaznaczone są komentarze,
# ignorowane przez MapServer,
# a pomocne użytkownikom MapServera ;)
LAYER
# początek warswyNAME “nazwa_warstwy“
# nazwa warstwy; służy do identyfikacji warstwCONNECTIONTYPE postgis
# typ połączenia; zostawiamy bez zmianCONNECTION “user=uzytkownik_bazy password=haslo dbname=nazwa_bazy host=nazwa_hosta port=5432“
# dane potrzebne do nawiązania połączenia z bazą danych
# niezbędnym minimum do podania jest nazwa użytkownika i nazwa bazy danychTRANSPARENCY 70
# element dodatkowy, nieobowiązkowy
# określenie przezroczystości warstwySTATUS ON
# status może być on (warstwa jest włączona i pojawia się automatycznie po
# załadowaniu mapy) lub off (warstwa nie pojawia się automatycznie po
# załadowaniu mapy; dopiero użytkownik zaznacza, czy chce tą warstwę wyświetlić)DATA “nazwa_kolumny from nazwa_tabeli using unique gid using srid=4326“
# bardzo istotna linijka!
# podajemy nazwę kolumny, która zawiera informacje o obiektach przestrzennych
# w danej tabeli, np. the geom from koleje
# pozostałe elementy opcjonalneTYPE LINE
# typ danych – poligon, linia, punkt, itp…CLASSITEM ‘typ‘
# kolumna, która jest wyróżnikiem klas
# element nieobowiązkowy jeśli będziemy definiować tylko jedną klasęCLASS
# początek pierwszej klasy; może być ich więcej
# w przypadku pliku wektorowego – musi być choć jedna
# dla plików rastrowych – element nieobowiązkowyNAME ‘klasa1‘
# nazwa klasyEXPRESSION ‘typ1‘
# wyrażenie z kolumny podanej w CLASSITEMCOLOR 60 170 240
# kolor wypełnieniaEND
# koniec pierwszej klasyCLASS
# początek drugiej klasyNAME ‘klasa2‘
# nazwa klasyEXPRESSION ‘typ2‘
# wyrażenie z kolumny podanej w CLASSITEMCOLOR 220 55 100
# kolor wypełnieniaEND
# koniec drugiej klasyEND
# koniec warswy
Podany fragment kodu jest przykładem jednej z prostszych możliwości dodania do MapServera danych z bazy PostGIS. Wedle potrzeb można ten kod rozbudować w oparciu o bardziej szczegółowe zapytania do bazy danych.







