Tidigare har jag gått igenom hur man sätter upp en GeoServer med OpenGEO Suite och även visat på en installation av detta på Ubuntu Server. Nu skall jag försöka visa hur du kan sätta upp en GIS tjänst med data från din egen PostGIS databas.
Börja med att logga in på geoservern och skapa ett nytt ”workspace”, jag döper mitt till ”TestSpace”. Jag har tidigare visat hur man får igång PostGIS på Ubuntu Server och hur man kopplar upp sig med pgAdmin3 och skapar databaser. Jag har redan skapat en databas som heter ”MinGeodata” så jag skall lägga till denna som ny ”Store” i GeoServer.
Klicka på ”Stores” och därefter på ”Add new Store”. Välj PostGIS och därefter ”TestSpace” som ”workspace”. Fyll i IP adressen till servern i stället för ”localhost” och ett coolt ”Data Source Name”, jag väljer ”MinGeodata” (super coolt). ”Database” blir ”MinGeodata” och username/password är ”opengeo”. Bli inte förvånad när det inte kommer upp några ”layers” på nästa skärm, allt är som det ska, om du gjort som jag så har du inte skapat någon data än.
Jag använder QGIS för att hantera min geodata direkt mot filer och databaser. Jag skall skapa ett testlager, men för att mina testobjekt skall hamna på en någorlunda korrekt plats i världen så läser jag in några Open Street Map lager först. Det går naturligt vis bra att ha andra referenser också, eller bara chansa lite om man är på det humöret.
Jag skapar ett ytlager (ytor.shp), ett linjelager (linjer.shp) och ett punktlager (punkter.shp). I dessa skapar jag en ny affärstomt med tomtyta, tomtgräns och infart.
Jag använder sedan funktionen ”Importera shapefiler till PostgereSQL” för att överföra mina shapefiler till PostGIS databasen.
Sedan är det dags att gå tillbaka till GeoServer. Klicka på ”Layers” och ”Add a new resource” och i mitt fall väljer jag sedan ”TestSpace:MinGeodata”. Nu skall om allt fungerat de tre lagerna dyka upp. För att visa dem med GeoServer så måste de dock publiceras.
När man klickar på ”publish” så dyker ett nytt fönster upp där det går att fylla i en massa olika fält. Jag går inte igenom alla här, jag vet faktiskt inte vad allt gör. Det viktiga är dock att man definierar det geodetiska datum som data är lagrat i. Jag har lagrat mina data oprojicerat i WGS84, vilket har koden EPSG:4326. Om man är osäker på hur man skriver så går det att klicka på ”Find” och välja godtyckligt för att sedan redigera det som står i rutan. Ett tryck på ”tab” ger en text som kvitto på att det är rätt kod. Det som återstår är ”bounding boxes”. Av erfarenhet när man jobbar med små datamängder så bör man utöka denna box till ett större område. Jag minskar ”min” rutorna och ökar ”max” rutorna med 0,1 grad för att säkert täcka in det lilla område jag är intresserad av.
Upprepa för alla lager som skall publiceras.
För att samla alla lager så skapar jag en ”layer group” vid namn ”TestGroup”. Tänk på att när du lägger till dina lager så skall de ligga i den ordning som du vill visa dem på skärmen senare.
Om man nu går till ”Layer Preview” och klickar på ”OpenLayers” vid ”TestGroup” så visas de data som skapats och publicerats.
Nästa steg blir att snygga till presentationen av shapefilen genom att visa fliken ”Publishing” för varje lager (”Layers”). Hur man gör detta får vänta till ett senare inlägg, men du kan ju alltid experimentera lite själv. Lycka till.
P.S. Prova med att öppna lagret i Google Earth… (högerklicka och spara länken ”Google Earth” under Layer Preview. Klistra in länken i Google Earth under ”Lägg till” / ”Nätverkslänk”).
[EDIT]
Det jag beskrivit ovan har fungerat jättebra, men när jag flyttade över till VirtualBox under Windows 7 så har jag stött på lite problem med PostgreSQL. Problemen visar sig genom att lager med data i PostGIS inte är tillgängliga i GeoServer (klicka på ”layers” och leta efter varningssymboler i kolumnen ”Enabled?”). Lösningen tills vidare är att när Ubuntu väl startat så gäller det att manuellt starta Postgres om den misslyckades att starta automatiskt, och därefter starta om GeoServern med:
sudo /etc/init.d/postgresql-8.4 start
sudo /etc/init.d/tomcat6 restart
Ett tips är att använda ”tab” mycket när man skriver kommandon. Då räcker det att skriva början på kommandot (exempelvis ”pos”) så fyller linux i resten rätt (exempelvis ”postgresql-8.4”). Om det finns mer än ett möjligt alternativ så fylls inget i, och trycker man då på ”tab” en gång till så får man upp alla möjliga alternativ. Om det inte visas några alternativ så finns det ingen katalog eller fil som börjar med det som skrivits in.