Jag har länge använt såväl WMS och WFS som Geodatabaser i mina GIS-lösningar och jag är ganska väl medveten om skillnaderna.
WMS sänder bilder av den färdigrenderade kartan eller lagret till klienten som i stort sett bara visar denna information på skärmen. Det går att ställa frågor via WMS, men det blir som en fråga till servern som skickar ett svar på den direkta frågan (GET FEATURE INFO) på ett icke standardiserat sätt, så svaret kan se olika ut beroende på serverns inställningar. Data kan levereras i en mängd olika bildformat, men vanligt är JPG och PNG.
WFS sänder data utan symbolstilar till klienten där all information mellanlagras, vilket gör det möjligt att hantera data på i princip samma sätt som om det vore lokala data eller data i en geodatabas. Det går även att ställa frågor till datamängden direkt i klienten. Genom att använda så kallade Transaktioner så går det även att redigera data via WFS-T. Nackdelen är att om det är stora datamängder så kan det ta tid att föra över alla data, inte minst om det är en begränsad bandbredd.
Geodatabaser som PostGIS/PostgreSQL hanterar data mycket mera transparent för klienterna och tiden för uppdatering på skärmen beror inte på hur stor den totala datamängden är, utan hur många objekt det är på skärmen. Denna hantering kräver att klient och server utbyter en hel del information kontinuerligt, vilket ställer en del krav på bandbredden.
Vad skall man då välja?
WMS, som används exempelvis i Google Maps, Eniro med flera är lämpligast när det gäller att visa färdiga kartlösningar för klienter över begränsade bandbredder. Det går att göra klienterna helt webbaserade och helt anpassade till specifika syften, vilket gör kartorna mycket lättillgängliga för många användare. Prestanda i systemet bestäms i hög grad av lösningen på serversidan.
WFS är mindre vanligt på webben, men är en förutsättning för att få tillgång till geometri och attribut på klientsidan, samt att genomföra redigeringar av data. Tjänsten är anpassad för Webben, men blir snabbt otymplig för stora dataset.
Geodatabas är den lämpligaste lösningen i kontrollerade miljöer med vana och utbildade användare som ställer stora krav på tillgänglighet och interaktion med geodata. Lokala nätverk eller snabba Internetuppkopplingar är en förutsättning för att det skall bli praktiskt att arbeta med Geodatabas.
Så! Vad skall man då välja? Håller man på med en väldigt väldefinierad och ur GIS perspektiv begränsad verksamhet så kanske det går att välja en lösning. Annars är det självklara valet en kombination av alla tjänster.
Lokalt och för mer avancerade geodataanvändare så är en direkt koppling till geodatabas att föredra. Detta kan givetvis ske i kombination med exempelvis en WMS tjänst som skulle kunna användas för bakgrundskartor som inte är i verksamhetens fokus eller faller in om ansvarsområdet.
Mobila klienter och tjänster via Internet tjänar mest på en WMS tjänst, och i undantagsfall så kan WFS användas då detta behövs för beräkningar, dataöverföring eller redigering.
Det som kan vara intressant är geoservrar som i större utsträckning kan utföra beräkningar på serversidan, så kallad WPS eller Web Processing Service. Då kan man exempelvis erbjuda ”buffert” analyser och siktfältsberäkningar baserade på val gjorda på klientsidan som sedan skickas som ett färdigrenderat WMS svar i bildform. ArcGIS Server har länge haft en avancerad sådan funktion, speciellt via sin enkla klient ArcGIS Explorer, dock inte enligt WPS standard. Geoserver som med de senaste versionerna har implementerat WPS 1.0 kommer på sikt att ge mycket spännande möjligheter.
Ok, detta är väl ganska väntade svar för de olika sätten att ansluta till geodata. Om man har kunskap och tid, samt om det finns förutsättningar för att det skall fungera, så kan en tillämpning av framför allt WMS och WPS vara att bygga tjänster med Open Layers. Vad detta är kan ni själva läsa om på OpenLayers.org och där finns även en massa häftiga exempel på vad som går att göra med ”lite” kod på en hemsida.
Jag tycker nog att man bör lyfta fram cachade wms-tjänster som ett alternativ, framför allt på mobila enheter. Även om man kan ta med sig en smartphone eller liknande ut i fält så lämnar täckningen och de hastigheter man kan få ner data med mkt att önska. Möjligheten att kombinera med en wfs-tjänst för exempelvis punktobjekt känns väldigt tilltalande. I synnerhet skulle jag vilja slå ett slag för Mapbox och deras lösning där de sparar ner cachen i en enkel sqlite-databas – MBTiles. Lätt som en plätt att ta med sig.