Hjelp, jeg vil lære meg OpenSource WebGIS?

Ja, hvem vil ikke det? Joke aside, som jeg tror jeg har vist flere ganger her på bloggen er det mye man kan gjøre med en eller flere av tre komponenter:

  1. En romlig database
  2. En kartserver som støtter OGC-standardene (WMS,WFS etc)
  3. Et klient-side-bibliotek for å vise kart i en nettleser

For noen år siden hadde man ikke så mange muligheter på dette feltet som glad amatør. Romlige databaser var synonymt med ArcSDE fra ESRI, kartsevere som støttet OGC-standardene fantes ikke (dog, man hadde jo ArcIMS), og når det kom til klient-side biblioteker kunne man bruke det noe begrensede Google Maps, eller man kunne bruke noe fra ESRI.

Men, fortvil ikke, verden har endret seg. I dag finnes det fri programvare som kan fylle alle hullene:

  • PostGIS er en genial extention til PostgreSQL, og gir deg en fullverdig romlig database
  • Geoserver og Mapserver er to oppegående kartservere som heller ligger forran enn bak de proprietære løsningene
  • OpenLayers er et javascript-rammeverk som gjør alt det Google Maps APIet gjør, pluss mye, mye mer

Men, så var det hvordan man skal lære seg alt dette. Hvordan de forskjellige komponentene brukes, hvvordan de konfigureres og hvordan de spiller sammen. Mye kan såklart løses ved å studere Geomatikk, men det tar ganske mye tid. Mye kan også læres ved å se på tutorials og dokumentasjon på nett. I tillegg er det nesten et krav å beherske følgende:

  • SQL – bruk og teori
  • Programmering generelt, og kanskje JavaScript spesielt
  • Et eller annet slags server-side rammeverk, som f.eks. Java-Spring, Groovy-Grails, Ruby-Rails, JavaScript-Node.js, Python-Pyramid, PHP-whatever
  • En viss kjennskap til datumer, projeksjoner, koordinatsystemer, transformasjoner og GIS-operasjoner
  • Linux-generell bruk, om du skal kjøre på denne platformen (anbefales)

Men fortvil ikke, man trenger ikke kunne alt med en gang. Man kommer langt med å lære seg noe og bygge på når det trengs. Og nå er vi fremme ved hovedpoenget med denne posten: Det finnes etterhvert en rekke gode bøker som tar for seg OpenSource GIS-verktøy i dybden. Noen anbefalinger er:

  • GIS for Web Developers Denne er noen år gammel, og versjonene den dekker er nok litt utdaterte, men den tar for seg både PostGIS og Geoserver, samt filformater, projeksjoner, koordinatsystemer og generelle biblioteker
  • PostGIS in Action er en helt ny bok om, du gjettet riktig, PostGIS. Meget god bok, som også tar for seg endel basic geomatikk-emner på en lettfattelig måte.
  • OpenLayers 2.10 Beginner’s Guide er også en helt fersk bok, som tar for seg den nyeste versjonen av OpenLayers. Jeg har ikke rukket å lese denne, men ser mange positive omtaler av den.

I tillegg vil jeg varmt anbefale to bøker om JavaScript: JavaScript: The Good Parts og Object-Oriented JavaScript.

Hvis Java er din grunnplatform er du kanskje også interessert i min post om Javascript, GIS, testing, Maven og AJAX. Skal du jobbe med Geoserver vil du nok ha nytte av å kunne litt om Tomcat, da det er java-webcontaineren denne trives best i. Og det å lære seg PostgreSQL i seg selv er nok heller ikke dumt. Kartografi er også et tema som fort kan bli nyttig å kunne noe om, men på disse områdene er jeg litt blankere på gode bokanbefalinger. Så tips meg gjerne her!

Et problem er jo at både PostgreSQL med PostGIS og en Java-container ikke akuratt er standard på webhotell rundt omkring. En mulighet er jo å kjøre sin egen server, en annen mulighet er diverse Cloud-løsninger som popper opp for tiden. Uansett, med noe av kunnskapen her i boks står du godt rustet til både å lage egne netttjenester eller, hvis du er utvikler fra før, å komme deg over i en del av IT-verdenen som er i enorm vekst. Lykke til!

11 thoughts on “Hjelp, jeg vil lære meg OpenSource WebGIS?

  1. Arne Kepp

    Min erfaring er at mange sliter med å feilsøke konfigurasjon av klienten. Dette gjelder spesielt WMS fordi protokollen er så fleksibel at den nesten aldri utløser en feilmelding. Derfor bør man investere litt tid i å forstå følgende kall:

    WMS: GetMap, GetFeatureInfo, GetCapabilities
    WFS: GetFeatures, GetCapabilities

    WMS GetMap er nok den viktigste for de fleste, GeoServer har et verktøy (reflector) som automatisk prøver å fylle inn standardverdier for deg og som derfor egner seg for å teste litt:
    http://docs.geoserver.org/stable/en/user/tutorials/wmsreflector.html

    Firebug (eller tilsvarende) er et ekstremt viktig viktig verktøy hvis du jobber med OpenLayers, spesielt Net-fanen som viser hvilke parametere som sendes til serveren. Da blir det ofte veldig tydelig at forespørslene har feil projeksjon, eller at et kartlag ikke har blitt aktivert. Jobber du med en proprietær klient bør du også se på hvilke forespørsler den sender, enten gjennom debug logging eller en proxy som lagrer forespørslene.

  2. Mats Taraldsvik

    Ikke glem Django/GeoDjango når du nevner Python på web! Svært godt dokumentert, en fryd å bruke. :)

  3. Atle Post author

    @Arne: Takk for inspill! Ja, det å forstå hvordan OGC-protokollene fungerer er viktig, der har jeg ståka endel selv også. Reflectoren i Geoserver har jeg, med skam å melde, faktisk ikke hørt om, så her har jeg noe å sette meg inn i.

    Firebug er helt essensielt for meg, så bra det nevnes!

    @Mats: Jeg kan jo ikke nevne alle rammeverk, men GeoDjango burde vel vært nevnt ja. Har desverre ikke fått sett noe på det selv, men det må man vel (også) gjøre!

  4. Alexander Salveson Nossum

    Fin post!

    Med fare for å havne som spam her:

    OpenLayers 2.10 Beginner’s Guide ble sluppet for ikke altfor lenge siden og skal visstnok være ganske bra: http://www.amazon.co.uk/dp/1849514127

    Kartografi – her savner jeg også enkel og pragmatisk litteratur.. Men;
    Statens Kartverk – skjermkartografi: http://www.statkart.no/?module=Articles;action=Article.publicShow;ID=14234

    Cartography an introduction: http://store.esri.com/esri/showdetl.cfm?SID=2&Product_ID=1202&Category_ID=38

    I tillegg finnes det en god del bøker rundt “web mapping” og “web cartography”. Mange av disse er gamle og henger ikke med i nåtiden lenger, men noen av prinsippene kan være relevante enda.

  5. Atle Post author

    @Alexander: Takk!

    Hvis du hadde lest hele posten min hadde du sett at jeg nevner OpenLayers 2.10 Beginner’s Guide ;)

    Skjermkartografiveilederen til kartverket gremmes jeg over å ha glemt, den har jeg jo selv promotert før..! Esri sin må jeg se på, takk!

    ja, det finnes mye bøker der ute, men mye blir nok fort utdatert ja.

  6. Atle Post author

    På mailinglista til openLayers under tråden “recommended training?” ble disse ressurssene nevnt:

    Then, some on-line stuff, might overlap with above:
    http://workshops.opengeo.org/openlayers-intro/
    http://www.bostongis.com/PrinterFriendly.aspx?content_name=openlayers_tut_01
    http://www.bostongis.com/PrinterFriendly.aspx?content_name=openlayers_tut_02

    Some more complex (and neat) examples:
    http://gis.ibbeck.de/ginfo/apps/OLExamples/Index/index.html

    jeg har ikke fått sett på dem, men kan nok være verdt å sjekke ut!

  7. Nicklas Avén

    Hej

    Så kul med en blog som nämner öppen gis-programvara.

    Lite fler intressanta länkar i ämnet.

    Det har startats ett “lokalt nordiskt chapter” i OSGeo. Jag ser att åtminståne någon av kommentatorerna här redan finns listad där. länken är:
    http://wiki.osgeo.org/wiki/Nordic

    Så som bevis på att faktiskt öppen gisprogramvara fungerar i stora sammanhang så är det värt att nämna att Norska kartverkets lösningar ut mot offentligheten ligger på open source.
    Se http://www.norgeskart.no/

    Det finns säkert någon annan här som vet mer om det, men jag hörde Pål Kristensen på FOSS4G i Barcelona i höstas och om jag miss rätt så är uppsättet ungefär så här:
    data ligger i PostGIS.
    Kartorna genereras av MapServer
    Som tilecache tror jag de använder GeoWebCache

    En sida förutom alla tutorials och intressanta böcker är :
    http://gis.stackexchange.com
    Där diskuteras allt från öppna program till de mest tillstängda Redlandsskapelserna.

    Hilsen
    Nicklas

  8. Atle Post author

    Takk for det Nicklas, det begynner etterhvert å bli endel som har interesse for temaet, så det kan vel også skje at det dukker opp flere blogger!

    Nordisk chapter i OSGeo har jeg ikke fått med meg, skal få registrert meg der!

    Kartverkets OpenSource-satsning har jeg fått med meg ja, senest ved Hirsch på GeoForum. Oppsettet du nevner tror jeg stemmer ganske godt, men jeg tror også de bruker GeoServer for WFS.l

    Stackexchange for GIS er også en god ressurss, den burde jeg nevnt. I tillegg vil jeg varmt få anbefale mailinglistene til de forskjellige produktene (jeg kjenner best til OpenLayers og GeoServer sin, de andre duger nok også!), samt IRC-kanalene på freenode! Mye oppegående, hyggelige og hjelpsomme folk!

  9. Nicklas Avén

    Tyvärr verkar det vara väldigt stilla på Nordisk chapter i OSGeo. Det händer inte så mycket.

    E-postlistorna håller jag helt klart med om som en värdefull källa till inspiration. Det är en direktkontakt mellan brukare och mellan brukare – utvecklare.

    Ett intressant projekt för WFS som också har transaction möjligheter som geoserver men är betydligt “lättare” är TinyOWS, http://www.tinyows.org.

    Det finns otroligt många intressanta programvaror.

    /Nicklas

  10. Atle Post author

    Jeg har ikke direkte prøvd, men kartverket har jo gitt ut en fork av gdal/ogr med sosis-støtte (se http://labs.kartverket.no/sos/) Hvis du får dette opp og gå skal det være en smal sak å pipe det inn i PostGIS med ogr2ogr (noe sånnt som ogr2ogr -f “PostgreSQL” PG:”host=myhost user=myloginname dbname=mydbname password=mypassword” sosifile.sos -nln newtablename, se http://www.bostongis.com/PrinterFriendly.aspx?content_name=ogr_cheatsheet)

    det springende punktet her er jå å kompilere gdal og fyba og få den løypa til å fungere.

    Ellers har du jo betalvare som FME, der har vel begge de store norske FME-forhandlerene sosi-plugins til FME.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>