Tag Archive | WMS

Skriv inte ut från WMS!

I detta inlägg tittar jag lite närmare på vilka problem man kan ställas inför om man använder WMS eller WMTS tjänster i sitt GIS program, och vill skriva ut på skrivare.

Läs mer…

Annonser

Geosupportsystem IT-plattform – Installationsguide del 4

I denna avslutande återblick på hur man kan använda öppen källkod för att bygga en IT-lösning för geosupport så tänkte jag komplettera OpenGeo Suite installationen med QGIS Server.

Planen var att på samma server som tidigare lägga till nödvändiga komponenter för att enkelt (-ish) skapa snyggare kartor än vad som är möjligt med Boundless lösningar. Detta är dock lite problematiskt eftersom OpenGeo Suite använder en version av GDAL, skapad av Boundless, som inte är kompatibel med den vanliga GDAL som används av QGIS. Lösningen är att installera QGIS Server på en egen server i stället. Däremot så skall man kunna använda GeoServer, GeoExplorer, QGIS plug-in med mera för att hantera och skapa webbtjänster via den tidigare servern.

Läs mer…

Data från Länsstyrelserna

Jag har tidigare visat hur man kopplar upp sig mot diverse WMS tjänster från Länsstyrelserna och i helgen har jag gjort ett återbesök för att se om det skett några förändringar, och det har det.

På adressen http://projektwebbar.lansstyrelsen.se/gis så finns det länkar till webbkartor, WMS och nedladdningsdata.

Tyvärr så är webbkartorna beroende av Microsoft Silverlight, vilket fungerar sådär bra med Linux.

WMS tjänsterna finns redovisade i en lång lista med PDF-dokument som innehåller länkar till de olika tjänsterna…

Screenshot from 2014-08-17 15:20:51

Jag vet inte om det är en slump, men jag lyckas faktiskt inte ansluta till en enda av de tjänster som jag provar… Hmmm.

Nåja, filerna då…

Screenshot from 2014-08-17 15:08:22

Att hämta hem filer fungerar fint (länk via bilden ovan). Här nedan har jag hämtat myrskyddsområden från 2007, men andra kanske är mer intresserade av var det är tänkt att slutförvara kärnbränsle.

Screenshot from 2014-08-17 15:36:19

En finess med QGIS, som jag nämnt tidigare, är att de zip-filer som man hämtar hem inte behöver packas upp för att visas i QGIS. Detta gör att det mindre lagringsekonomiska formatet shape helt plötsligt tar mycket mindre plats på diskarna.

Jag gillar verkligen att det går att hämta data och inte bara visa informationen via en tjänst, speciellt i det här fallet när vare sig webbkarta eller WMS fungerar för mig.

 

 

Varför räcker inte WMS?

Sommartider

Allt fler företag och organisationer inser betydelsen av webbkartor och samtidigt blir det bara enklare att inkludera dessa på webbsidor och portaler.

Den överväldigande majoriteten av dessa tjänster är WMS/WMTS vilket betyder ”Web Map Services” och ”Web Map Tile Services”. Oavsett vilket så är det för klienten i slutändan små bildfiler i ett rutnät som laddas hem för att täcka den yta som visas i webbkartan. En del av dessa WMS/WMTS har transparent bakgrund vilket gör att det går att använda flera lager på varandra och i många fall göra själva bilderna transparenta så att man ser bakgrunden genom dessa. Några tjänster erbjuder möjlighet att skicka en fråga till servern och få ett svar på vad för objekt med tillhörande attribut som finns på en viss position (fungerar ej med WMTS).

Denna typ av webbkartor blir ofta (långt ifrån alltid) ganska snygga och snabba att visa, speciellt WMTS som baseras på förrenderade bildrutor, men de går inte att använda till så mycket mera.

För att ta nästa steg i webbkartorna så måste fler dataleverantörer erbjuda data som ”data” och inte bild. Detta innebär exempelvis WFS (Web Feature Service), men det finns andra som kan vara mera lämpliga i vissa situationer.

Fördelen med dessa är att tredje part kan komma åt och vidareförädla dessa data och skapa nya tjänster.

Vi kan ta brottsstatistik som exempel, där polismyndigheten kontinuerligt rapporterar de larm och incidenter som de åker på. Detta görs i en väldigt ”ogeografisk” form, men där Per Thernström skapat ett API (inte WFS) som kan användas för att hämta dessa data som XML, vilket kan bearbetas med exempelvis javaskript och presenteras som punkter på en webbkarta.

Hade det nu funnits en WFS-tjänst med alla incidenter så skulle man kunna bygga mycket mera avancerade webbtjänster med kartor.

Det skulle exempelvis gå att ta fram vissa typer av incidenter, vid specifika tillfällen eller samlat över tiden och jämföra med positionen för skolor, systembolag, musikfestivaler, etc. Naturligtvis förutsatt att även dessa data finns tillgängliga som tjänster.

Varför skulle då polisen vilja skapa denna typ av tjänst? Förutom det självklara att det skulle hjälpa dem att klara upp och förebygga brott, vilket jag förutsätter att de redan gör i interna databaser (om inte är Polisen korkad).

Polisen kan naturligtvis också använda sig av andras publicerade tjänster kopplat till sin egen WFS tjänst (eller motsvarande) och exempelvis plocka fram bilder från flickr eller var närmaste sjukhus eller räddningstjänst ligger.

Sammantaget kan jag säga att WMS tjänster är ett steg på vägen, men om fler tillgängliggör sina data för tredje part, exempelvis som WFS, så kommer vi snart att få se betydligt fler användbara karttjänster på Internet framöver.

Kartor för krishantering

Skärmbild från 2014-04-12 23:44:21

MSB tillsammans med Lantmäteriet och Försvarsmakten börjat ta fram riktlinjer för hur man bör utforma en webbkarta för att stödja insatser vid olika former av krishantering.

Riktlinjerna går att ladda hem som PDF. Dokumentet är i huvudsak inriktat på kartografi och drar ett antal slutsatser inom detta område (bl.a.):

  • Man trycker på ”gemensamt färg- och symbolspråk” för dessa kartor.
  • ”Bakgrundskartan bör vara nedtonad, gärna i en gråskala med svagt blå hydrografi”
  • Lager med vägar kan behöva förstärkas då dessa ofta är viktiga.
  • Transparens är viktig för olika lager som skall ge information.
  • Ett begränsat antal signalfärger bör användas för att visualisera faror.
  • Det måste gå att tända och släcka olika lager individuellt.
  • Undvik konturer på ytor.
  • Viktiga objekt bör presenteras med en gemensam färg.

Det mesta av resonemanget och slutsatserna ovan är logiska och bra att ha dokumenterade, men dokumentet är fortfarande ganska tunt. Jag kan inte riktigt utläsa om projektet är avslutat och detta därmed är en slutrapport, i vilket fall man kan vara kritisk till innehållet, eller om det kommer en fortsättning med mer innehåll.

Det framgår dock att SIS kommer att arbeta med någon form av standard (TK570) för webbkartografi. När jag där tittar på deltagare för TK570 så består dessa i huvudsak av offentlig förvaltning och fyra företag varav tre är ”konsultföretag” (Gisassistans, Metria och SWECO) och ett är tillverkare av kartmotorer och kartservrar (Carmenta).

Nu är som sagt riktlinjerna skrivna framför allt med kartografi som inriktning, men jag tycker nog att man varit lite snål när man beskrivit möjligheter med teknik och tjänster. Webbklienter nämns knappt och det enda tjänstegränssnittet man pratar om är WMS. Det finns dessutom några i mitt tycke allt för snabbt dragna slutsatser som kanske bör tänkas igenom en gång till, men läs och tyck till själva.

 

Egen server för geodatatjänster – Del 4

I detta inlägg så kommer det att handla om grundläggande metoder för hur man kan skapa nya data och tjänster. Se detta som exempel och utarbeta en egen metod som passar dig och din verksamhet.

Metoder för publicering

Principen för geodatahanteringen blir att ”kärnanvändare” kopplar upp sig antingen direkt till PostGis, eller för den delen via GeoServer och WMS/WFS.

Kartor, eller lager som skall publiceras som tjänst, hanteras i ett eller flera QGIS-projekt som sparas på servern. Men dessa URL-er används inte utåt, utan i sin tur av GeoServer.

Lagerna, eller WMS-tjänsterna, från QGIS Server läggs till som egna ”store” i GeoServer och kan sedan användas i GeoExplorer för att enkelt skapa webbkartor.

PostGIS

I QGIS använder man OpenGeo Explorer för att koppla upp sig mot databasen på servern.

bok9

Markera ”public” i trädet under serveranslutningen och välj att skapa en ny tabell. Det går att göra i fönstret undertill, via knappen över trädstrukturen eller genom att högerklicka på ”public”.

bok10

I formuläret anger man ett namn för tabellen, ett antal attribut med namn och typ, samt information om geometrin. Om man inte lägger till en geometrikolumn så blir det en vanlig tabell utan geometri. Det går att välja flera typer av geometrier, inte minst punkter, linjer och polygoner. Man kan bestämma om positionerna skall vara i 2, 3 eller 4 (?) dimensioner. Det är bra att välja ett SRID så att man slipper gissa hela tiden, och exempelvis 4326 (WGS84) passar bra globalt, medan 3006 (SWEREF99TM) passar bra i Sverige. Något att tänka på vid valet är att en del analyser där avstånd ingår, utgår från lagrets referenssytem. Välj därför ett projicerat system, som SWEREF99TM, om beräkningar i meter skall göras. Skall dessutom kartorna publiceras i SWEREF99TM så bör man använda detta även för att lagra data.

QGIS

Lägg till de nya tabellerna genom att helt enkelt dra och släppa dessa i QGIS kartfönster. Skapa några punkter och använd ”stil” och ”etikett” för att skapa något lämpligt. Upprepa med en annan typ av geometri så att det finns minst två olika lager att experimentera med.

bok11

Spara projektet på servern i qgis-katalogen. Det kan hända att du behöver köra QGIS som ”root” för att det skall gå att spara på servern. Detta går att uppnå genom att starta QGIS ifrån terminalen med kommandot sudo qgis.

Starta ett nytt tomt projekt i QGIS och koppla upp mot QGIS Server.

bok12

URL:en http://192.168.1.42/cgi-bin/qgis_mapserv.fcgi?VERSION=1.3.0&map=/qgis/filnamn.qgs, där IP och filnamn anpassas till lokala förutsättningar, används för att peka ut OGC-tjänster från QGIS Server.

Prova att lägga till hela tjänsten (qgistest) för sig och lagerna var för sig (testdata, testdata_yta) och jämför skillnaderna. Vill du ha lager med transparent bakgrund så får du välja PNG som format.

bok13

Lägg märke till att symboler och texter för punktlager blir klippta där dessa annars skulle ritats ut utanför den geografiska ”box” som omsluter alla data exakt.

Öppna qgis-projektet från servern igen, zooma ut så att alla data syns och har en ordentlig marginal till kanterna. Gå sedan in i projektegenskaperna.

bok14

Under OWS så markeras ”Utannonsera utsträckning” och därefter kan man klicka på knappen för att använda den utsträckning som finns i QGIS. Det går även att ange manuellt i fälten.

Att tänka på är att om man skapar nya data utanför denna box, så kommer dessa inte att publiceras via QGIS Server om man inte går in och redigerar om här.

Ett alternativ som i många fall är bättre, är att lägga till två fiktiva geografiska objekt i exempelvis nedre vänstra och övre högra maximala utsträckningen. Då kan man strunta i att ange utsträckningen.

Spara projektet igen. Skapa ett nytt tomt projekt och lägg åter igen till WMS lagerna på samma sätt som ovan.

bok15

På det sätt som beskrivits ovan så går det att laborera lite med inställningar och liknande för att få till det utseende på lagren man önskar.

Nu går det att nöja sig här, då man har en fungerande WMS tjänst via QGIS Server, men i nästa inlägg tar vi det ett steg längre…

Ett system för geografisk information

Detta är en uppdatering av ett tidigare inlägg där jag försökte skapa ett ”komplett” system för att hantera geografisk information och kartor för GIS och webb.

Den här gången så går jag inte in på detaljer när det gäller installationen utan använder mitt skript för installation på Ubuntu Server 12.04 LTS, så vill du testa så är det där du skall börja. Jag installerar en virtuell server med Oracle VM VirtualBox på en Windows 7 klient (64-bit), men det går precis lika bra att installera på en fysisk dator om så önskas.

Jag har valt Windows på klienten för att det blir lite enklare att hantera filer i nätverk med QGIS för användarna, och det är ju klart vanligast med Windows som klient i de flesta nätverk.

När servern är grundinstallerad (defaultinställningar för det mesta och eget val för datornamn och användare) så kör jag mitt skript:

sudo su
wget http://geosupport.kvarnarp.eksjo.com/files/geosupport.sh
sh opengeo.sh

När skriptet kör så väljer jag defaultvärden för OpenGeo Suite samt att installera PostGIS. Jag lägger även till Drupal (CMS) och QGIS-Server, men inte Nuxeo (DMS).

Skriv ner information om datornamn, IP-adress, extra instruktioner och liknande medan skriptet kör. När det står viktig information på skärmen så pausar skriptet och väntar på att du skall göra något så var inte orolig för att texten rullar på för fort. Det som måste fixas är lösenord för postgres-användaren och din användare för Samba fildelning i nätverket. Instruktioner för hur detta går till får man i skriptet. Det sista som jag gör efter installationen är att starta om servern (för säkerhets skull):

reboot

Konfigurera Drupal

Använd en webbläsare och skriv in IP-adressen till servern. Då skall du få upp ett webbgränssnitt för att konfigurera klart din webbserver.

blogg2

Det är nu du skall använda det lösenord som du skapat för postgres användaren i PostgreSQL (databas: drupal, användare: postgres, lösenord: *******). När detta är klart så skall du bara ändra tillbaka rättigheterna till konfigurationsfilerna på servern:

chmod a-w /var/www/sites/default/
chmod a-w /var/www/sites/default/settings.php

Skapa karta (Steg 1)

I QGIS på klienten så skapar jag min karta som jag vill att den skall se ut. Data måste vara tillgängligt från servern så i mitt exempel använder jag PostGis data från Medford exemplet som följer med GeoServer. Projektfilen från QGIS sparar jag på den delade resursen ”QGIS” på servern.

Nu går det att komma åt kartan via WMS på adressen: http://Server-IP/cgi-bin/qgis_mapserv.fcgi?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetCapabilities. Om du skriver in adressen i en webbläsare så skall du få upp dit QGIS-projekt som ett lager i XML-texten. Om detta fungerar så är nu ”tjänsten” publicerad.

In i systemet (Steg 2)

Det går redan nu att använda den skapade tjänsten med OpenLayers, men då blir det till att skriva lite kod själv. Jag går i stället igenom det ”lata” alternativet.

I Geoserver (http://Server-IP:8080/geoserver) så skapas ett nytt workspace, jag döper mitt till ”Geosupport”. Därefter läggs en ny ”Store” till som pekar på QGIS-Server (WMS adressen från steg 1). Det finns flera lager i tjänsten (ett för varje lager i QGIS och ett för hela projektet), men jag väljer det för hela projektet att publisera. På så sätt så kan jag faktiskt lägga till mer data i fler lager och få dessa publiserade i tjänsten utan att behöva upprepa detta och nästa steg. Det räcker att projektfilen från steg 1 ovan redigeras.

Skapa webbkartan (Steg 3)

I GeoExplorer (http://Server-IP:8080/geoexplorer) så skapar jag en karta med de bakgrundskartor jag vill ha med, samt lägger till den i steg 2 skapade ”Geosupport” tjänsten från den lokala Geoservern. Sedan är det bara att Exportera kartan och kopiera den rad med HTML kod som visas.

blogg3

Koden klistras sedan in i en ny sida i Drupal och sim-sala-bim så har man sin karta på hemsidan.

blogg4

Problem på vägen

Det är många tjänster som körs samtidigt så det är mycket som kan gå fel. En dedikerad server är nog bättre än en virtuell.

WMS tjänsten på Geoserver cachar lagerna, vilket i sig kan ta lite tid, men som även kan göra att uppdateringar i QGIS projektet kan ta lite tid innan de slår igenom, men det är inga större problem.

Projekt skapade med QGIS-1.8 fungerar inte… Men om man använder 1.9 (utvecklingsversionen) så fungerar det bra.