Paikkatietomies-blogisivuston toiminta loppuu lokakuussa 2024. Syynä ovat mm. toiminnan harrastusmainen luonne huomioiden kestämättömästi viime aikoina kohonneet palvelinkustannukset ja ylläpitoon käytettävissä olevan ajan puute. Kiitän kaikkia blogiani näinä vuosina lukeneita! Paikkatietoasioista, myös avoimen lähdekoodin sellaisista, kirjoittelen jatkossa LinkedIn-alustalla. Tervetuloa seuraamaan ja verkostoitumaan!
Oskari-teemakuva | Paikkatietomies

Webbikartta Oskari-karttapalvelun avulla

Näin 2020-luvulla kannattaa mahdollisuuksien mukaan heittää hyvästit kömpelöille staattisille kartoille ja pyrkiä siihen, että erilaisten paikkatietoanalyysien tuloksena syntyvät karttaesitykset esitetään staattisen kartan sijaan webbikarttana. Webbikartta mahdollistaa mm. sen, että kartalla esitettävien paikkatietokohteiden ominaisuustiedot ovat käyttäjän vapaasti katseltavissa. Toinen merkittävä etu on, että kartalla voidaan esittää asioita käyttäjän kulloinkin käyttämään tarkastelumittakaavaan perustuen.

Hyvä webbikartta syntyy esimerkiksi Suomessa kehitetyn Oskari-karttapalvelun ja OGC-rajapintojen tuottamiseen soveltuvan GeoServer-paikkatietopalvelimen avulla. Tässä blogikirjoituksessa esitellään Joensuun kaupungin nykyväestön tietoja kaupunginosittain esittävä webbikartta, joka muodostetaan Joensuun kaupungin paikkatiedolla johtamisen tietopalvelu Oskaria hyödyntäen. Palvelusta on luotu karttaupotus tälle sivulle.

Mikä on webbikartta?

Kaikessa yksinkertaisuudessaan webbikartalla tarkoitetaan sellaista karttaesitystä, joka on suunniteltu käytettäväksi internetselaimen avulla. Perinteisten paperikarttojen maailmasta tutut käsitteet, kuten mittakaava, saavat webbikarttamaailmassa hieman moniulotteisimman sävyn.

Mittakaavan sijaan webbikarttamaailmassa kannattaa puhua käsitteistä zoomitaso (eng. zoom level) ja tarkastelualueen sisäänsä sulkeva suorakulmio (eng. bounding box). Tapauksesta ja käytetystä teknologiasta riippuen vastaan voivat tulla myös esimerkiksi termit laattajako (eng. gridset) ja mittakaavarajoite (eng. scale denominator).

Webbikartat ovat valtaosalle tuttuja mm. erilaisista kaupallisista karttapalveluista, joista tunnetuin on Google Maps. Webbikartan voi toteuttaa myös avointen paikkatietoteknologioiden avulla. Avoimen teknologian eduiksi voidaan laskea mm. läpinäkyvyys tietosuoja-asioissa, palvelun muokattavuus omaan käyttöön sopivaksi sekä maksuttomuus (erityisesti suuremmilla käyttäjämäärillä). Haittoja ovat mm. keskitetyn tukipalvelun puute, hajanainen dokumentaatio ja se, että palvelinympäristön pystytys ja hallinnointi jäävät omalle vastuulle.

Avoimen lähdekoodin webbekarttamaailmassa vastaan astelevat ensiksi erilaiset kartta-aineistojen selaimessa esittämisen mahdollistavat JavaScript-ohjelmointikieleen perustuvat teknologiat kuten OpenLayers ja Leaflet. Joskus vastaan saattaa tulla myös sana Mapbox, jonka voidaan katsoa olevan Leafletin kaupallinen toteutus (Leaflet perustuu Mapboxin avoimeen lähdekoodiin).

Myös aineistoja selaimelle tarjoavia teknologioita ei voi oikein tässä yhteydessä sivuuttaa. Avoimen lähdekoodin maailmassa tällaisia ovat mm. GeoServer ja MapServer. Molemmat näistä tukevat lukuisia erilaisia paikkatietoaineistolähteitä aina tietokantajärjestelmistä sijaintitiedon sisältäviin rasterikuviin.

Kolmas tärkeä elementti on paikkatietorajapinta, joita ovat esimerkiksi karttakuvien jakeluun tarkoitettu Web Map Service (WMS) ja vektorimuotoisten paikkatietokohteiden jakeluun tarkoitettu Web Feature Service (WMS). Rajapinnat löytyvät myös ns. tiilitetyille aineistoille niin rasteri- (Web Map Tile Service) kuin vektoriaineistojenkin osalta (MapBox Vector Tiles).

Oskari häärii selainpäässä ja GeoServer palvelinpäässä

Kartta-aineistot selaimessa esittävien JavaScript-kirjastojen käyttö voi tulla kysymykseen tapauksissa joissa halutaan vain näyttää jokin karttaaineisto rajapinnalta selaimessa nopeasti ja kevyeen ratkaisuun perustuen.

Jos tavoitteena on esimerkiksi katsella useita eri aineistoja päällekkäin, muutella karttatasojen piirtojärjestystä ja läpinäkyvyysasetuksia, tarkastella paikkatietoaineistojen ajallista ulottuvuuutta tai kysellä paikkatietokohteiden ominaisuustietoja, on tätä varten tehdyn kokonaisratkaisun käyttö erityisen suositeltavaa. Oma valintani tähän tarkoitukseen on Suomessa kehitetty Oskari-karttapalvelualusta, jonka käyttöä olen ihmetellyt blogissani jo aikaisemmin. Yllä listattujen toimintojen lisäksi Oskarin avulla voi toteuttaa ns. roolipohjaiset käyttöoikeudet käyttäjille ja monta muuta asiaa.

GeoServer puolestaan on helppokäyttöinen, internetselaimen ja REST-rajapinnan avulla hallittavissa oleva paikkatietopalvelinohjelmisto, jonka avulla voidaan helposti pystyttää useita erilaisia paikkatietorajapintoja. GeoServerin avulla saadaan pystyyn ainakin seuraavat paikkatietorajapinnat: WMS(t), WFS(-T), WMTS, MVT, TMS, WCS ja WPS. Epäilen, että näillä pääsee vähintäänkin jo alkuun.

Sen lisäksi, että GeoServerin avulla saadaan Oskarin vaatima palvelinpuoli kuntoon, saadaan aineistot samalla vaivalla tuotetut aineistot jakoon myös muille. Tarvittaessa jaettavat aineistot voi laittaa autentikoinnin taakse, tyylitellä niihin näyttäviä visualisointeja SLD-tyylikielen avulla ja kustomoida ominaisuustietokyselyn palauttamia vastauksia. Mikäli GeoServer kiinnostaa laajemmin, niin myös siitä olen kirjoittanut blogissani aikaisemmin.

Karttaupotuksia omasta Oskari-palvelusta

Oskari-karttapalvelun kenties mahtavin ominaisuus on mahdollisuus ns. karttaupotusten tekemiseen. Karttaupotuksella tarkoitetaan Oskarissa erikseen luotavaa ja tyyliteltävää karttaikkunaa, joka voidaan sijoittaa mille tahansa internetsivulle iframe-koodinpätkän avulla.

Aikaisemmassa kirjoituksessani tutkiskelin karttaupotuksen toimintaa Maanmittauslaitoksen tuottamasta Paikkatietoikkuna-palvelusta. Tässä kirjoituksessa hyödynnetään Joensuun kaupungille viime vuonna pystytettyä paikkatiedolla johtamisen tietopalvelu Oskaria, jonne on kasattu mm. tietokantapohjaisin paikkatietoanalyysein toteutettuja ja helposti päivitettäviä tietonäkymiä mm. Joensuun kaupungin väestö- ja rakennustiedoista. Palvelua ollaan ottamassa vasta käyttöön, joten siellä olevat aineistot voivat vielä elää ja olla ajoittain poissa käytöstä.

Oman Oskari-palvelun pystytyksestä voi todeta tässä yhteydessä, että sellaisen saa kyllä pystyyn verrattain helposti, mutta optimointi tuotantokäyttöön vaatii osaamista mm. Jetty-, NGINX ja Maven-teknologioista. Rautalankaväännös-postaus Oskarin optimoinnista tuotantokäyttöön voisi olla paikallaan – sellaista tuskin meikäläseltä syntyy, mutta postaus Oskarin asentamisesta voisi jopa syntyäkin joskus.

Esimerkki: Joensuun kaupungin nykyväestö kaupunginosittain

Ylläolevasta karttaupotuksesta (voit myös katsella aineistoa suoraan Joensuun kaupungin Oskari-palvelussa) nähdään Joensuun kaupungin nykyväestö kaupunginosittain (tilastoalueittain). Tietonäkymän päivityksen ajankohdan voi tarkastaa tilastoalueen ominaisuustiedoista aluetta klikkaamalla, jolloin Oskari generoi GFI-kyselyn GeoServer-palvelimen WMS-rajapintaan ja GeoServer palauttaa GFI-vastauksen. WMS-rajapinnasta voit lukea lisää täältä.

Ominaisuustietokyselyn vastaus muodostetaan GeoServer-palvelimella ja esitetään Oskarissa HTML-muodossa. HTML-muodon käyttäminen mahdollistaa mm. WMS GetFeatureInfo-ominaisuustietokyselyn palauttaman tietosisällön reaaliaikaisen visualisoinnin graafisten kuvaajien avulla.

Ominaisuustietokyselyn kautta voidaan tarjota myös näytettävän aineiston latausmahdollisuus generoimalla GFI-vastaukseen WFS-rajapinnan GetFeature-linkki, joka palauttaa kaikki ko. aineiston paikkatietokohteet halutussa muodossa. Paikkatietokohteiden lataaminen vaatii erillisen tunnuksen.

Mikäli aihe herättää kiinnostusta, niin lisätietoja löytyy viime syksynä Suomea kiertäneen OSGeo Suomi & Oskari -kiertueen muistelosivulta, jossa sivusin aihetta paikkatiedolla johtamisen kontekstissa. Samaiselta sivulta löytyvät myös tilaisuudessa pitämäni esityksen kalvot. Ja jos homma ei näilläkään vielä avaudu, niin voit toki ottaa minuun myös yhteyttä.

Webbikartta haastaa toimintatapoja

Webbikarttojen yleistyminen johtaa siihen, että paperimaailmasta tutut tavat käyttää karttoja ovat murroksessa. Esimerkkinä mainittakoon vaikkapa kaavakartta, joka on perinteisesti esitetty jollakin tietyllä mittakaavalla. Jatkossa tällainen kankea mittakaavamääritys ei kenties ole se parhain tapa. Hyvä tapa voisi sen sijaan olla aineiston näkyvyyden rajoittaminen esimerkiksi jonkin yleisesti tunnetun/vakioidun laattajaon (esim. JHS 180:n mukainen kansallinen laattajako) valituille zoomitasoille.

Toinen tapa, jolla webbikartat muuttavat karttojen käytön toimintatapaa, on paikkatietokohteiden visualisointi. Sen sijaan, että kirjataan kiveen jokin tietty esitystapa, kuten esimerkiksi kaavakartoilla on ollut tapana, voidaan paikkatietokohteiden tietosisällön tulkinnassa hyödyntää paikkatietokohdekohtaista ominaisuustietoa. Näin menetellen paikkatietokohteen visualisointi voidaan valjastaa muuhun käyttöön kuin tietosisällön välittämiseen. Tämä mahdollistaa esimerkiksi paikkatietokohteiden tarkoituksenmukaisemman visulisoinnin eri käyttötapauksissa.