Julkaistu 22.4.2025

Kehittäjien päivästä uusia oppeja ja vertaistukea Oskari karttapalvelun kehittämiseen

Gispon Juho Rekilä toimii Oskari-karttapalvelun viestintäkoordinaattorina nyt toista vuotta. 2024 alkanut työ sisältää mm. sisällöntuotannon Oskarin nettisivuille, LinkedIn-ryhmään ja blogiin. Juho on tehnyt myös Oskari-verkostoon liittyvää työtä, esitellyt Oskaria GeoForumSummitissa, järjestänyt Oskariin liittyviä tapahtumia. Oskarin viestintäkoordinaattorin kokemusta on myös Gispon toimitusjohtaja Sanna Jokelalla, joka oli viestintäkoordinaattorina 2017-2020. Viestintätöiden lisäksi Gispolla tehdään aktiivisesti Oskari-karttapalveluiden ylläpitoa ja kehitystä.

Jos Oskari ei ole vielä tuttu, suosittelemme lukemaan ”Mikä on Oskari ja mitä sillä voi tehdä?” -blogimme. Oskarista kiinnostuneet ja palvelua jo käyttävät ovat myös lämpimästi tervetulleita Oskarin verkostopäivään 12.5.2025 Pasilaan!

Alla oleva kuvaus kehittäjien päivästä on aiemmin julkaistu englanniksi Oskarin omassa blogissa.

Oskari-kehittäjien päivä 2025

Oskari-kehittäjien päivä järjestettiin 1.4. Espoossa, Sitowisen tiloissa. Kehittäjätapaamisia on ollut aiemminkin, mutta viimeisimmästä on aikaa useampi vuosi. Tapahtuman tartkoituksena oli saada uusia ja vanhoja Oskari-kehittäjiä samaan paikkaan jakamaan tietoa ja kokemuksia Oskarin kanssa toimimisesta. Osa osallistujista tunsi toisensa jo ennestään, mutta eivät silti välttämättä tunteneet toistensa organisaatioinden Oskarin käyttötapauksia ja uusia ideoita.

Kehittäjätapaamiselle oli selvästi tarve, sillä paikalle saapui yhteensä 15 ihmistä eri organisaatioista. Paikalla oli MML:n Oskari-tiimiä sekä Sitowisen, Siilin, Ubigun ja Gispon kehittäjiä ja muita Oskari-projekteissa toimivia henkilöitä. Kehittäjien kokemus Oskarin parissa oli vaihteleva, seniorikehittäjien joukossa oli muutamakin kymmenisen vuotta Oskarin parissa toiminutta kehittäjää, kun taas uudempien Oskari-osaaminen lähti nollasta. 

Tapahtuman ohjelma koostui puheenvuoroista, joissa esiteltiin erilaisia Oskariin liittyviä kehitysprojekteja sekä yleisesti Oskarin päivittämistä uuteen 3.0 versioon. Iltapäivällä osallistujat pääsivät kokeilemaan Oskarin geoportaalin lokaalia pystyttämistä ja RPC-toiminnallisuuksia.

Oskari 3.0 ja React-migraatio

Oskarin tekninen koordinaattori Sami Mäkinen esitteli, mitä uutta Oskarin uusi major release toi mukanaan. Uudessa versiossa Java-version nosto 8:sta 17:ään on tietenkin suurimpia asioita, minkä lisäksi Oskarissa on päivitetty paljon taustakirjastoja. Front-endistä vanhoja jQuery-komponentteja on otettu pois ja vaihdettu Reactiin.

Samalla bundlejen tekoa on helpotettu merkittävästi. Nyt bundle voi olla helpoimmillaan vain yksi .js-tiedosto, kun ennen bundlen teko vaati eri tiedostojen tekoa eri paikkoihin. Uudessa esimerkkibundlessa on myös paljon kommentteja koodin ohessa, jotta bundlejen tekeminen olisi uusille kehittäjille selkeämpää. (Katso uusi SampleInfoBundleInstance.js -tiedosto GitHubista https://github.com/oskariorg/sample-application/blob/master/bundles/sample-info/SampleInfoBundleInstance.js)

Siilin Pekka Helesuo esitteli karttajulkaisijaan tehtyjä muutoksia. Vanha jQuery-koodi on monin osin muutettu Reactiksi ja aihetta koskeva dokumentaatio on muutosten osalta myös päivitetty. Dokumentaatio sisältää myös ohjeet siihen, kuinka julkaisijaan lisätään React-työkaluja.

jQueryä löytyy kuitenkin vielä Oskarista, ja esimerksi Drag and drop -pohjainen työkalujen siirtely karttajulkaisussa on käyttää jQueryä. React-migraatiota saatiin kuitenkin edistettyä niin paljon, että Oskari 3.0:n osalta työ on varsin hyvässä vaiheessä. jQuerystä luopuminen jatkuu seuraavien päivitysten myötä.

3.0. version Changelog on kokonaisuudessaan nähtävissä täällä: front-end https://github.com/oskariorg/oskari-frontend/blob/master/ReleaseNotes.md

server: https://github.com/oskariorg/oskari-server/blob/master/ReleaseNotes.md

OAuth 2 ja EntraID -kirjautuminen Oskariin

Ubigu on ylläpitänyt pitkään Tampereen kaupungin Oskari-instansseja ja kehittänyt niitä. Janne Heikkilä esitteli kehittäjäpäivässä Tampereen Oskari-palveluun tehtyä OAuth 2 ja EntraID -kirjautumista. Näin helpotetaan organisaation käyttäjien kirjautumista Oskariin. 

Oskarissa käyttäjille on annettu rooleja ja luotu erilaisia käyttäjäryhmiä, ja lisäosa tunnistaa jo kirjautumisvaiheessa käyttäjän roolin. Jos siis jollakin ei ole valtuuksia esimerkiksi kirjautua ollenkaan Oskariin, lisäosa tarkistaa sen jo kirjautumisvaiheessa ja antaa “Access denied” -ilmoituksen.

Tampereella ollaan myös siirtymässä Oskarin 3.0. versioon, ja alustavasti tarkoituksena on, että lisäosa tulisi yleistettynä saatavilla Oskariin. Lisäosan koodi on nähtävissä GitHubissa. https://github.com/Tampere/tampere-oskari-server-extension

RPC-toiminnallisuuden laajentaminen

Oskarin geoportaalin ohella RPC-toteutuksia (karttajulkaisuja) on usein käytössä. Tunnetuimpia esimerkkejä lienevät Kalastusrajoitus.fi ja VäyläMap. RPC-ratkaisuja käytetään paitsi yksittäisissä karttajulkaisuissa myös organisaation virallisena Oskari-karttapalveluna perinteisen geoportaalin sijaan. RPC-toteutus mahdollistaa geoportaaliin verrattuna palvelun kehittämisen eri tavalla esimerkiksi ulkonäön ja toiminnallisuuksien osalta.

Timo Aarnio kertoi Gispon Oskari-projektissa tehdyistä RPC-toiminnallisuuksista. Projektissa oli tarve tehdä RPC:hen lisää toimintoja, koska olemassa olleet eivät riittäneet asiakkaan tarpeisiin. Projektissa tehtiin esimerkiksi “getGroupsWithLayerIds()”, joka palauttaa karttatasoryhmähierarkian sekä niihin kuuluvat karttatasot. Tämä mahdollistaa käyttäjälle oman karttatasovalikon tekemisen, joka palauttaa vain ne karttatasot, jotka on valittu karttaupotuksesta ja joihin käyttäjällä on oikeus. Toinen kehitetty toiminnallisuus käyttää karttatasojen description-kenttää kevyenä vaihtoehtona tason metatiedoille, jolloin metatietopalvelua (kuten CSW:tä) ei tarvita.

Toimintojen koodi on nähtävillä GitHubissa ja tuotu myös Oskari 3.0:aan:

https://github.com/oskariorg/oskari-frontend/pull/2815

https://github.com/oskariorg/oskari-frontend/pull/2807

CSW-rajapinta

Sitowise on ollut mukana useamman organisaation Oskari-karttapalvelun ylläpidossa ja kehittämisessä. Heidän asiakkaallaan oli tarve julkaista karttatasoja, jotka ovat näkyvissä vain osalle palvelun käyttäjistä. Tämä on tietenkin Oskarissa helposti tehtävissä käyttäjäroolien avulla, mutta vaade koski myös aineistojen metatietoja. Metatiedot haluttiin jonnekin muualle kuin avoimesti Paikkatietohakemistoon, missä julkisten karttatasojen metatiedot yleensä ovat, ja jota käytetään suomalaisten Oskari-instanssien aineistojen kanssa.

Arttu Pietarinen esitteli prosessia, jossa GeoServeriin asennetaan CSW-lisäosa, joka vie GeoServerissä julkaistujen tasojen metatiedot CSW-rajapintaan. CSW on INSPIRE-direktiivin mukainen rajapinta, joka antaa metadataa standardin mukaisesti. Samaisen GeoServerin kautta voidaan julkaista sekä sisäiseen käyttöön tarkoitettuja aineistoja että niiden metatietoja. 

Oskarin pääkäyttäjä voi admin-työkalujen kautta määrittää “metadataURL”-attribuutin eri tasoille, jolloin metadata haetaan erikseen määritellystä sijainnista. Kun palvelun käyttäjä haluaa katsella metatietoja, ne haetaan joko suljetusta CSW-rajapinnasta tai oletukseksi määritellystä CSW-palvelusta, kuten Paikkatietohakemistosta.

Oskari 3.0. päivitysprojekti Sitowisen, Väyläviraston ja MML:n yhteistyönä

Kehittäjäpäivässä kuultiin myös kehittäjien kokemuksia maaliskuussa julkaistun 3.0:n päivitystyöstä kahden organisaation välillä. Työssä oli Maanmittauslaitokselta neljä henkilöä ja testaajat, sekä Sitowiseltä kaksi kehittäjää ja Sitowisen oma testaaja. 

Yhteistyön takana olivat MML:n, Väyläviraston ja Sitowisen keskenään kohdanneet tarpeet. Maanmittauslaitoksella oli tarve päivittää Oskarin Java- ja Spring-major-versioita, kun taas Sitowisellä on useita Oskari-instansseja ylläpidossa ja kehitettävänä, mukaanlukien Väyläviraston Oskari-projekti, jossa nousi huolia Oskarin tietoturvahaavoittuvuuksista. Major-päivityksissä tulee helposti muutoksia, jotka eivät ole taaksepäin sopivia, ja yhteisprojektin ansiosta Sitowisellä voitiin auttaa 3.0:aan päivittämisessä ja viedä muutokset myös heidän ylläpitämiinsä Oskari-palveluihin.

Keskustelu yhteishankkeesta alkoi syksyllä 2024 ja itse projekti alkoi tammikuun puolivälissä 2025. MML:n Sami Mäkinen teki alustavan suunnitelman, jota varioitiin tarvittaessa, ja tiimillä oli joka päivä daily-kokous, jossa seurattiin päivitysten etenemistä.

Päivitys tehtiin projektina, jossa yritettiin sitoa tiimit mahdollisimman tiiviisti kiinni päivitykseen. Arttu Pietarinen esitteli yhteishanketta ja kiitteli etenkin sitä, että projektimuotoinen työtapa helpotti koko prosessia: Maanmittauslaitoksella ja Sitowisellä oli omat tiimit ja yhteinen tavoite. Intensiivinen työtapa, jossa työntekijät oli sidottu projektiin, madalsi myös kynnystä kysyä apua. Matkalla tulleet haasteet ja niiden ratkaisut löytyivät myös helposti, kun Sitowisen kehittäjät veivät muutoksia suoraan tuotantoon Väylä Map -palvelussa.

Oskarin geoportaalin ja RPC-toteutuksen työpajat

Kehittäjäpäivän iltapäivä koostui suurelta osin työpajoista, joissa osa osallistujista kokeili geoportaalin lokaalia pystyttämistä ja RPC-toteutuksen komentoja. Työpajojen aikana ja tapahtumassa yleisesti oli myös puheenvuorojen väleissä paljon kokemusten jakamista Oskari-kehittämisestä ja -hankkeista (sekä kaikesta muusta aina perhelomista päivänpolttaviin uutisaiheisiin). 

oskari karttapalvelu

Työpajoihin oli varattu aikaa klo 16 asti, mutta lokaalit geoportaalit näkyivät näytöillä jo vartin yli kolme. Vaikka haasteita oli esimerkiksi oikean Java-version asentamisessa tai siinä, mihin porttiin tietokanta avautuu, ongelmat ratkesivat Samin ja muiden paikallaolleiden Oskari-osaajien avulla. Kaikki pääsivät siis hieman suunniteltua aiemmin kotimatkalle. Tämän kokemuksen perusteella vastaava tapahtuma voisi olla paikallaan myös ensi vuonna.

Profiilikuva

Juho Rekilä

Juho on paikkatiedon, data-analyysin ja viestinnän parissa työskentelevä folkloristiikan FM. Juhoa kiinnostaa lähes kaikki paikkatietoon liittyvä, mutta hän uppoutuu mieluiten karttojen tyylittelyyn ja asiakkaiden lähettämien kysymysten ratkomiseen. Paikkatiedon lisäksi työkokemusta löytyy graafisen suunnittelun ja äänisuunnittelun saralta.