Heatmap (’lämpökartta’) on tapa esittää paikkaan sidottua määrällistä dataa. Ideana on että datan ’tiheys’ esitetään väreillä, esimerkiksi niin että harvassa olevat datapisteet näkyvät kartalla vihreänä alueena, tiheämmässä olevat keltaisena ja kaikkein tiheimmät punaisella (perinteinen väriskaala, joka ei kuitenkaan ole selkeä värisokeille). Tämä on selkeämpi esitystapa verrattuna pelkkien pisteiden sijoittamiseen kartalle, etenkin jos pisteitä on paljon ja ne menisivät päällekkäin.
Selainpohjaisilla karttapalveluilla ja Javascript-kirjastoilla on helppoa luoda heatmappeja. Mitään standarditapaa karttojen ulkoasun luomiseen ei ole, joten eri toteutukset ja asetukset voivat näyttää saman datan hyvinkin eri tavoilla. Tässä nopea vertailu neljästä toteutustavasta. Datana on syksyllä 2014 laskettujen talvilintulaskentareittien sijainnit 10 km tarkkuudella. Asetuksia säätämällä koetin saada kartat näyttämään mahdollisimman samanlaisilta, mutta jokainen on silti omanlaisensa. Huolellisemmalla säätämisellä kartoista todennäköisesti saisi samankaltaisempia; nyt käytin näihin aikaa muutaman tunnin.
Googlen karttapalvelulla heatmapin tekeminen on hyvin helppoa ja tulos näyttää selkeältä. Värien ja muiden asetusten muuttamisesta on selkeät esimerkit.
Varjopuolena Googlen palveluissa ovat käyttöehdot, joiden mukaan Google saa vapaat käyttöoikeudet dataan (joka tosin on Googlen näkökulmasta pelkkä luettelo koordinaattipisteitä).
heatmap.js
heatmap.js on avoimen lähdekoodin kirjasto, jolla voi luoda heatmappeja erilaisiin tarkoituksiin. Tässä esimerkissä kirjasto on yhdistetty Leaflet-karttakirjastoon Openstreetmapin karttaan.
heatmap.js on periaatteessa monipuolinen, mutta sen käyttö ei ole aivan helppoa. En saanut karttaa skaalautumaan samalla tavoin kuin muilla , mikä näkyy tässä esimerkissä kun karttaa zoomaa. Samojen värien säätäminen siistiksi tuntuu vaikealta: tämäkin kartta antaa liikaa painoa yksittäisille datapisteille.
Leaflet.heat
Leaflet.heat on avoimen lähdekoodin lisäosa Leaflet-karttakirjastoon. Se on heatmap.js:aa yksinkertaisempi ja helppokäyttöisempi. Puutteena on kuitenkin että se ei osaa antaa lisäarvoa samassa paikassa sijaitseville useille datapisteille: yksi tai monta päällekkäistä datapistettä näyttävät kartalla identtisiltä. Tämän näkee kun karttaa zoomaa esim. Helsingin kohdalle.
Openlayers
Avoimen lähdekoodin Openlayers-kirjastolla tehty heatmap tuntuu yhdistävän eri vaihtoehtojen hyvät ominaisuudet. Se on selkeä kuin Google, osaa painottaa pällekkäisiä datapisteitä ja skaalata, eikä se aseta ehtoja datan käytölle. Karttapohjia löytyy myös useita, tässä esimerkissä on käytetty Stamenin pelkistettyä Toner-Lite -karttapohjaa.
Ominaisuuksiakin löytyy paljon, mutta toistaalta toteutus on monimutkaisempi ja mahdollisesti myös raskaampi. Data luetaan tässä esimerkissä KML-tiedostosta eikä suoraan javascript-koodista kuin aiemmissa esimerkeissä. Väriskaalan muuttamiseen en myöskään löytänyt. Nämä asiat voinee kuitenkin muuttaa itse ohjelmoimalla.