Det jag vill testa i denna artikel är hur man kan gå till väga när man vill bestämma stil på lager i en kartserver.
Jag kommer inte att använda QGIS Server, som gör detta alldeles utmärkt men där jag inte är övertygad om stabiliteten och tillförlitligheten i programvaran. Jag vet att exempelvis Kristianstad Kommun använder QGIS Server med diverse cache-tjänster framgångsrikt och att mjukvaran säkert kan göras fullt tillförlitlig, men här testar jag GeoServer.
Eftersom Boundless har paketerat mycket av det som krävs i en snygg installation, och dessutom har tillägg i QGIS för att just publicera data till GeoServer så blir det en standardiserad OpenGeo Suite installation som hamnar på en virituell Ubuntu Server i mitt experiment.
OS: Ubuntu 12.04.4 LTS Server (engelsk)
OpenGeo Suite: 4.1.1
Installation av OpenGeo Suite är enkel i terminalen och går att följa på http://suite.opengeo.org/opengeo-docs/installation/ubuntu/install.html.
sudo su - wget -qO- http://apt.opengeo.org/gpg.key | apt-key add - echo "deb http://apt.opengeo.org/suite/v4/ubuntu/ precise main" > /etc/apt/sources.list.d/opengeo.list apt-get update apt-get install opengeo
Om man vill använda PostGIS så måste även Postgresql konfigureras och det kan du läsa mer om här på bloggen samt i instruktionerna i länken tidigare.
Servern kommer man åt via webbläsaren på http://server-IP:8080/geoserver (hela OpenGeo Suite nås via http://server-IP:8080/dashboard).
Logga in med ”admin” och ”geoserver” som lösenord.
Nästa steg blir att ansluta med QGIS och se vad man kan hämta via insticksprogrammet OpenGeo Explorer.
Jag fick en varning om att jag använder en gammal version av GeoServer, men det skall nog gå bra i alla fall.
Nästa steg blir att lägga till ett lager från den befintliga servern.
När man expanderar GeoServer katalogen så möts man av en mängd olika ”underkataloger”. Workspace är där data ligger lagrat (typ), men vill man lägga till ett lager i QGIS så får man gå till GeoServer Layers. Det går att ”klick-dra” lager till QGIS kartan, eller som i bilden ovan markera lagret och sedan klicka på ”Add to current QGIS project”. Jag får dock inte med rätt stilinställningar om jag klick-drar så jag kommer att fortsätta att använda knappen.
Jag känner att här finns massor att utforska i övrigt, men nu var det stilar som var aktuellt. Om man expanderar ett lager så får man fram den stil som är vald för lagret och denna går att redigera med QGIS eller med SLD. Jag återkommer till SLD men först så tänker jag prova QGIS symbolhantering, som jag anser vara bland den bästa på marknaden.
Små ändringar som färg och stil på etiketter fungerar alldeles utmärkt och dessa ändringar slår igenom direkt på de tjänster som exempelvis publiceras via Open Layers (bilden ovan).
Sedan blir det värre.
Att lägga på en linjefyllning fungerar i QGIS, men det slår inte igenom till Open Layers (endast vissa typer av fyllningar fungerar). I bilden nedan så har jag använt linjefyllning och en bakgrund med gradientformfyllning.
Föga förvånande så fungerar inte gradienformfyllning heller i Open Layers. Det går inte heller att spara stilen på GeoServern.
Det enklaste att testa hur symbolen kommer att se ut är att ändra, spara genom att klicka ”OK” i lageregenskaperna och öppna stilen igen. OpenGeo Explorer gör nämligen om en hel del av stilarna innan den sparar den till GeoServern och dessa syns inte förrän man läser tillbaka dem från servern. Ändringar i stilar på servern slår heller inte igenom på klienten (i QGIS) utan att man lägger till lagret från servern igen.
Hittar man något som verkar OK så är det bäst att prova med OpenLayers eller en WMS-klient också, innan man slutligen publicerar sina förändringar.
Varför finns då dessa begränsningar? Svaret är ganska givet. GeoServer hanterar inte stilar i QGIS format!
GeoServer använder ett format kallat SLD som är en xml-standard från OGC, där det finns klara begränsningar jämfört med QGIS stilar, men det går ändå att göra väldigt mycket. Den intresserade kan läsa standardiseringsdokumenten från OGC för att utnyttja stilarna maximalt. Det går nämligen att editera SLD stilarna direkt om man så vill.
Det finns separata stilredigerare för SLD, exempelvis Atlas Styler. Denna utvecklas dock inte längre och om man vill använda den så gäller det att passa på att hämta hem den innan den försvinner från nätet.
Intryck
Jag tycker nog att OpenGeo Explorer erbjuder tillräckligt goda möjligheter att administrera en GeoServer direkt för att det skall räcka i de flesta tillämpningarna. Är det något väldigt specifikt man vill göra så går det att kontrollera om det stöds i SLD-standarden och göra det manuellt, men i andra fall så får man helt enkelt välja en annan lösning.
QGIS med QGIS-Server är spännande och ger en fantastisk möjlighet att skräddarsy sina webbtjänster men man får jobba lite mera själv för att sätta upp sin server. Med Boundless så installerar man däremot alla grunder på en Ubuntuserver med fem rader kod och med tillägget OpenGeo Explorer i QGIS blir administrationen förhållandevis enkel.
Att jag i mitt försök här på sidan över huvud taget inte har behövt jobba i webbgränssnittet på GeoServern, gör det ju inte sämre eller?
Nu väntar jag bara på att Boundless skall inkludera GeoNode i sin programsvit…