Tag Archive | OpenGeo Explorer

Mera GeoNode

Screenshot from 2014-09-07 15:21:42

Nu har jag testat lite till och allt är inte perfekt men jag är mer och mer övertygad om att GeoNode installationen som jag beskrev igår är en väldigt gångbar lösning för en generell geodataportal.

Först och främst så går det i QGIS att skapa eller ladda upp data direkt till PostGIS databasen på GeoNode-servern.

Det går med OpenGeo Explorer att ansluta till GeoServern och publicera såväl lager som hela QGIS-projet direkt.

Tyvärr så fungerar inte funktionen ”Publish to GeoNode” men det är nog bara en tidsfråga för Boundless att fixa detta. Under tiden så kan man köra ett kommando på GeoNode-servern:

sudo geonode updatelayers

Vilket läser in alla lager från GeoServern och uppdaterar biblioteket i portalen. Sedan är det bara att redigera metadata för dessa lager och skapa kartor som man kan publicera.

De lager man lägger upp på servern går dessutom att redigera via en webbläsare. Man kan såväl ändra, lägga till och ta bort objekt som redigera attribut, allt via GeoExplorer så länge man är inloggad och har rättigheter att göra så.

Screenshot from 2014-09-07 15:32:52

Detta kan ju vara ett smidigt sätt att uppdatera data i fält från en surfplatta eller telefon. Ändringarna är dessutom omedelbara för det berörda lagret.

Anpassa gränssnittet

Vill man så kan man ganska enkelt göra förändringar i gränssnittet. Detta görs genom att hämta och modifiera ”templates” med exempelvis stilmallar (css).

På servern så görs följande:

django-admin startproject my_geonode --template=https://github.com/GeoNode/geonode-project/archive/master.zip -epy,rst
sudo pip install -e my_geonode
mv my_geonode/local_settings.py.sample my_geonode/local_settings.py

Ersätt ”my_geonode” med ett eget namn och sökväg. Använd inte just ”geonode” vilket kommer att leda till konflikter i systemet.

Redigera filen local_settings.py och anpassa raderna med SITENAME och SITEURL så att de passar för ditt system.

Ändra även i filen /etc/apache2/sites-available/geonode på raden WSGIScriptAlias så att den pekar på din lokala fil:

WSGIScriptAlias / /sökväg/till/geonode/template/wsgi.py

Stara om Apache servern:

sudo service apache2 restart

I den template mapp som skapats så finns bland annat en tom css-fil (site_base.css) som kan redigeras för att ändra det standardutseende som används i portalen. Jag letar efter de ”classer” jag vill ändra med hjälp av Firebug i Firefox, men det finns även hjälp att få via nätet.

För att ändringarna skall slå igenom så måste man köra ett kommando på servern:

python manage.py collectstatic

För att slippa redigera i terminalen på servern så kan man exempelvis installera Samba och dela ut templatekatalogen på nätverket. Kommandon på servern kan sedan göras via exempelvis SSH.

Som framgår av bilden överst så har jag ändrat på några standardfärger vilket är hur enkelt som helst att göra via stilmallen.

Slutligen

Glöm nu inte att det finns mer man måste göra på servern innan man tar den i drift på exempelvis Internet. GeoServern måste säkras, användare skall ses över och rättigheter på utdelade kataloger sättas, med mera.

Risken med denna typ av kompakta installationer är ju annars att man lätt glömmer bort sådant: ”Vadå? Jag har inte installerat GeoServer eller någon databas!”

GeoNode – Geospatial Data Infrastructure

En portal dit det går att ”publicera” geodatatjänster på ett enkelt och smidigt sätt, som dessutom gör dessa data och tjänster sökbara för den som letar efter dem. Det är vad GeoNode är.

Du kan se ett exempel på hur GeoNode används framgångsrikt på World Food Programme.

Jag har skrivit om GeoNode tidigare här på bloggen, men nu finns det en ny version ute sedan April i år, så jag tänkte testa lite igen. Installationen görs på en ren Ubuntu Server (12.04 LTS). Version 2.0 av GeoNode stödjer bara 12.04 och det är först när 2.1 släpps som det går att köra på 14.04.

Tidigare erfarenheter säger att man inte skall blanda för mycket andra funktioner på den server som man vill köra GeoNode på och äldre versioner har exempelvis krävt nedgradering av Pythonversionen, men genom att använda 12.04LTS så hoppas jag slippa den typen av problem.

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:geonode/release
sudo apt-get update
sudo apt-get install geonode

Efter installationen (som kan ta ett tag) så behöver man ändra Ip-adressen i konfigurationen med ett kommando (ersätt 127.0.0.1 med serverns IP-adress) och skapa en superanvändare till portalen.

sudo geonode-updateip 127.0.0.1
sudo geonode createsuperuser

Sedan är det bara att öppna en webbläsare och skriva in addressen till servern (http://server-IP).

Screenshot from 2014-09-06 17:20:45

Detta är vyn som möter besökare och för att kunna göra mer än bara titta på och söka bland lager och kartor så måste man logga in. Klicka på ”Sign in” och använd den superanvändare som skapades tidigare.

Screenshot from 2014-09-06 18:03:43

Det tog ett tag för mig att hitta profilinställningarna och administratörsgränssnittet, så om du vill lägga till användare eller göra andra inställningar så klickar du på ditt användarnamn och väljer från den meny som visas.

När man är inloggad så är det enkelt att dels skapa rena kartor över ett visst område och dels ladda upp lager i vanliga filformat. Lager kan sedan användas i de kartor som skapas och man är inte begränsad till sina egna lager utan kan använda lager som andra laddat upp också.

Screenshot from 2014-09-06 18:24:35

Med lämpliga metadata så blir GeoNode en mycket bra portal för olika typer av karttjänster baserade på OpenLayers och GeoExplorer.

Uppladdade lager kan symbolsättas direkt i portalen och det går att redigera såväl metadata som övriga kommentarer om kartan.

Man kan styra hur lagret skall publiceras och vilka som skall kunna ta del av det eller de tjänster som man väljer att publicera från lagret. Med ett knapptryck så kan man även publicera lager som WMS tjänster om så önskas.

Dessa når man via http://GeoNode-IP/geoserver/ows?request=GetCapabilities.

Vill du även ansluta direkt till PostGIS från exempelvis QGIS så blir det till att trixa lite till.

Först så måste postgres.conf och pg_hba.conf redigeras så att de tillåter att man ansluter från en annan dator än lokalt. Läs mer om detta i gamla artiklar här på bloggen.

Sedan så måste man skapa en användare som man får logga in med på Postgresql Servern. Ersätt ”användarnamn” med det namn du vill använda, du kommer även att få ange ett lösenord.

sudo su - postgres
createuser -d -E -i -l -P -r -s användarnamn
exit

Det sista exit kommandot hoppar ur superuserläget.

Nu går det att ansluta med såväl PgAdminIII, som med QGIS direkt till databasen ”geonode” med detta användarnamn och lösenord. Det går även att använda OpenGeo Explorer och ansluta såväl till GeoServern som till GeoNode den vägen.

Screenshot from 2014-09-06 18:51:40

Jag vet inte riktigt vad som händer om man ändrar och redigerar för mycket direkt i databasen på det här sättet så det här sista steget får ni vara försiktiga med.

Jag har däremot testat att redigera i befintliga PostGIS-lager med QGIS och som bilden nedan visar så fungerar det utmärkt.

Screenshot from 2014-09-06 19:17:36

Tänk bara på att GeoServern cachar alla lager så för att se ändringar direkt så får man gå in och tömma cachen manuellt i administratörsgränssnittet för GeoServer (via profilmenyn). Är man bara inloggad i GeoNode som superanvändare så kommer man automatiskt in i gränssnittet för GeoServern. Cachen rensas under ”Tile Layers” och med länken ”Empty” för det aktuella lagret.

Jag tycker att det här var urkul att experimentera med och mycket snyggare och mer användbart än OpenGeo Suite. Båda består dock av i princip samma komponenter och en del sidor på nätet hävdar att OpenGeo Suite är baserat på GeoNode, men om detta vet jag inget.

Jag tror att det kommer att bli betydligt mycket mer GeoNode för mig framöver.

Lagerstilar på kartservern

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).

Screenshot from 2014-09-06 12:21:05Logga 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.

Screenshot from 2014-09-06 12:24:59

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.

Screenshot from 2014-09-06 12:30:28

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.

Screenshot from 2014-09-06 12:42:44

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.

Screenshot from 2014-09-06 12:53:32

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.

Screenshot from 2014-09-06 12:57:55

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!

Screenshot from 2014-09-06 13:13:15

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…

Boundless OpenGeo Explorer

Förra veckan skrev jag om PostGIS och beskrev hur jag använde Boundless insticksprogram OpenGeo Explorer för att hantera databasen.

Nu har jag upptäckt att Boundless plockat bort sitt tillägg från QGIS officiella centralkatalog för insticksprogram…

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

När jag tittar bland mina insticksprogram så är informationen bristfällig och i princip ingen som helst referens går att hitta.

När man söker lite på Internet så hittar man på Boundless hemsida information om att man skall lägga till deras egen katalog för tillägg under inställningar (se bild nedan).

Screenshot from 2014-08-08 17:28:27

När detta är gjort och man på nytt söker efter OpenGeo Explorer så får man åter igen mer information. I mitt fall så visade det sig att det dessutom fanns en uppdatering att hämta.

Om du inte har haft insticksprogrammet installerat så får du inte upp OpenGeo Explorer när du söker efter det utan att lägga till sökvägen enligt bilden ovan.

Egen Server för Geodatatjänster

Skärmbild från 2014-01-26 12:48:47

Då så, nu är boken baserad på den tidigare serien av inlägg klar och finns för nedladdning här:

Egen Server för Geodatatjänster

Jämfört med serien med inlägg så innehåller boken lite djupare information och en hel del som det inte fanns plats för på bloggen. Förhoppningen är att den som skall sätta upp en geodatatjänst, om än det är för eget nöjes skull eller i arbetet, kan använda boken för att steg för steg få fram en tjänst som är användbar för användare på alla nivåer från proffs till ”slentriansurfare”.

Jag har även haft som ambition att få till en ePub-version, som egentligen bara strulat och inte ser särskilt bra ut, men här är den också (via en fildelningssida):

Egen Server för Geodatatjänster (ePub)

Det blir säkert fler böcker så småningom, men för ett tag framöver så får ni hålla till godo med vanliga någorlunda regelbundna inlägg på bloggen.

OpenGeo Explorer i QGIS

Skärmbild från 2013-11-17 18:42:25

Jag lovade förra veckan att återkomma till Boundless plug-in till QGIS för att styra deras Open Geo Suite, eller kanske PostGIS och GeoServer i praktiken.

Det släpptes mycket riktigt en officiell version av tillägget efter det att jag skrev det förra inlägget, men installationsförfarandet är det samma, så om du installerade enligt instruktion så fick du det nya tillägget.

Jag hade problem med framför allt PostGIS, men även lite andra buggar strulade ibland onödigt mycket. Den officiella versionen känns mycket mera stabil och innehåller lite mer detaljer.

Exempelvis så finns det nu en länk i menyn till en hjälpsida med mycket bra beskrivning av hur man gör olika saker med tillägget.

Jag tycker att tillägget har mycket god potential, men det är inte problemfritt.

  • Ett problem är att det är utvecklat för anglosaxiska språk och inte helt stabilt för data på svenska. Om du kan så skall du därför undvika svenska teckentabeller (använd UTF-8) och svenska tecken i filnamn och tabellrubriker.
  • Ett annat problem för mig var att jag använde ett &-tecken i mitt adminlösenord för PostGIS, vilket inte gillades av pythonskriptet som skulle importera data från PostGIS till GeoServer, så undvik detta tecken tills vidare.
  • Ibland får man ett felmeddelande men när man försöker igen så fungerar det.
  • Det går att göra fel och då drabbas av kryptiska felmeddelanden. Om detta händer, använd hjälpen och ta reda på hur utvecklarna tänkt sig att man skall utföra olika saker.

Sammantaget så kan man genom att använda QGIS och OpenGeo Explorer klara av väldigt mycket av grovgörat med en GeoServer. För detaljer så använder man webbgränssnittet för GeoServer och PgAdminIII vid behov, samt en SLD editor som AtlasStyler, sedan kan man publicera snygga webbkartor via GeoExplorer.

Bra jobbat http://boundlessgeo.com/