Kaupunginosa T-paitaan QGISillä – nimiöinnit kartalla
Saarteni kotiseutuyhdistys kyseli olisiko mahdollista tehdä jokin kartta-aiheinen T-paita saarista. Ajattelin kikkailla yhden viikonlopun QGISillä ja testata saanko jotain vajavaisilla graafikon taidoillani aikaan.
Mutta kuten aina, mistä data? Maanmittauslaitoksen maastotietokanta on loputtomien mahdollisuuksien datamassa ja se sisältää kaikkea hauskaa. Alunperin QGISin NLS Geopackage downloader -plugarilla haettu maastotietokannan pala saarista on kyllä erilaisten kokeilujen jälkeen taipunut pikkuhiljaa omiin tarkoituksiin soveltuvaksi.
Esimerkkinä tästä on vaikkapa rantaviiva. Sitähän ei varsinaisesti maastotietokannassa ole tai missään muussakaan paikkatietoaineistossa Suomessa. Käytännössä se pitää askarrella meri/järvi polygoneista erikseen. Lisäksi maastotietokannassa ei ole tietoa kaupunginosarajoista vaan ne pitäisi hakea jostain erikseen. En kuitenkaan löytänyt avoimena datana vektorimuotoista kaupunginosien rajausta, joten digitoin rajauksen lopulta itse.
Tässä olisi jo sopiva kuosi T-paitaan, eikö? Voitaisiin jättää asia tähän ja olla tyytyväisiä. Mutta tämä oli liian helppoa.
No jos haluaisi jotain lisää, tiet tai rakennukset voisivat elävöittää kuosia. Tässä päädyin tieaineistoon, sillä rakennuksia oli aika harvakseltaan ja ne eivät näkyisi kuosissa hyvin. Edellisellä kaupunginosan/saarten aluerajauksella leikataan maastotietokannasta tieaineistotason ja visualisoidaan halutut tiet. Näin karttakuosi voisi näyttää esimerkiksi tältä:
Saarten kotiseutuyhdistys halusi T-paidassa näkyvän myös koordinaatit. Mutta mikä on jonkin paikan “koordinaatti”. Mihin sen halutaan osoittavan? Onko se maastotietokannan paikan nimen piste vai jokin muu tuttu kohde? Laskin ensin QGISin vektorityökalujen “Mean coordinates” perusteella alueen keskipisteen, mutta kohde kohdentui jonkun tontille. Lopulta kotiseutuyhdistys päätyi, että aika lähellä keskipistettä on myös saarten vanha kirkko, joten laitettiin koordinaatti sen kohdalle. Epäilystä kotiseutuyhdistyksessä aiheutti kuitenkin ensimmäinen versio kuosista EUREF-FIN koordinaateilla, joten vaihdettiin ne astejärjestelmään, koska se on ilmeisesti tutumpi formaatti useimmille kartan lukijoille. Otsikkojen asemointi on sitten muuten aivan toinen juttu ja siitä tuli mielipiteitä laidasta laitaan: otsikot alle, sivulle, reunaan, yhteen, lähemmäs, kauemmas. Nämä otsikoinnit tein lopulta Inkscapen avulla:
Tässä vaiheessa itse olin aika tyytyväinen, mutta sitten aloin leikkimään QGISillä labeleillä eli nimiöinneillä. Olisi nimittäin kiva hyödyntää hauskoja paikannimiä kuosissa.
Maastotietokannan nimiöt on luokiteltu useammallakin eri tavalla. Esimerkiksi eri kohdeluokkien mukaan ja niille voi luoda sääntöjä, joiden mukaan jokin nimiö esitetään isommalla fontilla tai eri mittakaavassa. NLS Geopackage Downloader pluginin kautta paikannimet on luokiteltu näin ja tästä voi ottaa mallia jos ei tiedä mistä lähtisi liikenteeseen.
Vinkkinä nimiöintien asetteluun, että mielestäni on hyvä lukita QGISin projektin puolella haluttu mittakaava. Näin näkee parhaiten miten nimiöinnit toimivat lopputuloksessa.
Tässä vaiheessa kannattaa muutenkin kokeilla ja testailla mitä nimiöintejä haluaa näkyviin ja missä maastotietokannan kohdeluokissa ne ovat. Sopivan setin löytämiseen saa vierähtämään aikaa. Ensimmäinen versio oli täynnä kivoja paikan nimiä, kuten Mörövuori ja Sydänperä, mutta koska kuosista voi tulla sekava, jos paikannimiä on paljon, päädyttiin karsimaan nimiöintejä. Lopulta päädyin aika erikoiseen luokitteluun, mutta se sopi tähän toteutukseen parhaiten:
Koska nimiöinnit voivat mennä päällekkäin, pitää niitä sijoitella niin, että ne eivät peitä toisiaan. Kätevä työkalu tarkistaa, mitkä nimiöt eivät näy kartalla löytyy nimiöintien asetuksista, jossa voi klikata ruksin kohtaan, jossa näytetään myös ne nimiöt jotka jäävät toisten nimiöiden alle.
Sitten vaan siirtelemään, asemoimaan ja “poistamaan” niitä nimiöintejä, joita ei halua näkyviin. Tähän saakin loppuviikonlopun kulumaan mukavasti. Nimiöintien siirtelyyn löytyy oma työkalupalkki QGISin työkalulistalta:
Lopputuloksena onkin sitten ihan kiva kartta paikannimistä!
Koska osa nimiöinneistä ylittää esimerkiksi rantaviivan, käytin pientä reunusta nimiöintien ympärillä, että tekstit näkyisivät kunnolla. Ja nyt tulee pelastava vinkki kollegalta: jos käytät “Background”-tyyppistä taustaa nimiöinnissä valkoinen reunus aiheuttaa ongelmia, jos itse tausta jossa kuva halutaan esittää ei ole puhdas valkoinen. En itse keksinyt miten tuon reunuksen saisi tehtyä siten, että se leikkaisi tavallaan alla olevan vektorikohteen samalla. Mutta kollega muisti, että homman saakin tehtyä hyödyntämällä maski-toimintoa.
Seuraavat kolme kuvaa havainnollistavat ongelmaa:
Maskin asetukset polygon-tasolla näyttävät tältä:
Ja miltä tämä näyttäisi sitten T-paidassa? Mikä olisi sinun suosikkisi?