Slik tar du CartoDB-kartet ditt til neste nivå

Skjermbilde 2016-02-03 kl. 13.34.40

Først: har du ikke lest “Fem tips til et bedre kart” så bør du gjøre det nå.

Denne bloggposten tar for seg litt mer avansert bruk av CartoDB.

Legg logikk i infovinduene

Ofte har du en kolonne i tabellen din som har verdier i enkelte rader og er tom/null i andre rader. Da kan det være nyttig å vise verdien der den finnes, f.eks. som del av en tekst, samtidig som du viser en annen forhåndsdefinert tekst dersom verdien mangler.

Infovinduene i CartoDB bruker et malspråk kalt Mustache. Der kan du lage enkel if else-logikk på følgende måte:

Kodesnutten over gjør følgende: Sjekker om “minkolonne” har verdi {{#minkolonne}} (ikke er tom). Hvis den har det vises et avsnitt med tekst og verdien fra kolonnen. Dersom det ikke er verdi {{^minkolonne}}  , vises en annen tekst.

Avrunding og norske tegn

CartoDB bruker konsekvent engelsk format på tall. Det betyr at desimalskilletegnet er punktum. Det fungerer greit så lenge du bare skal regne med verdier, men skal du vise verdiene i kartet eller infovinduer vil du gjerne ha komma som skilletegn.

Som regel bør du også runde av tallene i samme slengen. Det gjør du med følgende SQL:

Her må du bytte ut “minkolonne” med navnet på kolonnen som har tallet ditt, og “mintabell” med navnet på din tabell. Du får da ut en ny kolonne som heter “minkolonne_avrundet” som er avrundet til et desimal og bruker komma i stedet for punktum.

Du kan bruke den nye kolonnen i et infovindu ved å bruke  {{minkolonne_avrundet}} som vanlig.

Fjern støy i kartet

Her blir det litt mye på en gangDersom du legger til labels i kartet (tekst) f.eks. ved bruk av wizarden i CartoDB så kan det fort bli for mye informasjon i kartet når du har zoomet ut.

Du kan løse det med å si at lablene først skal vises når brukeren har nådd et visst zoomnivå i CartoDB. Hver gang du zoomer inn kommer du til et nytt nivå. Hvilket nivå det er kan du se på tallet som står under zoom-knappene i CartoDB.

La oss si at du vil skjule labels helt til brukeren har zoomet inn til nivå 7 eller mer.

  • Begynn med å klikke på “CSS”-fanen.
  • Legg til koden   [zoom>7] etter der det står  ::labels

Eksempel:

 

Avansert filtrering

For å filtrere hvilke verdier som skal vises kan du bruke filter-fanen i CartoDB. Vil du ha mer kontroll kan du bruke SQL-kode.

Denne koden vil kun vise de punktene som har navn som er del av den komma separerte listen:

Dersom du for eksempel har kommunenummer i en kolonne kan du velge å vise kun kommuner i Hordaland (fylke 12) og Sogn og Fjordane (fylke 14) med følgende SQL:

Husk å bytte ut “mintabell” med navnet på din tabell.

Importere datasett med andre koordinatsystem

Dersom du får geodata fra offentlige instanser er sannsynligheten stor for at du får det i et annet koordinatsystem enn det CartoDB-bruker.

Det offisielle koordinatsystemet i Norge er UTM/EUREF89. Der er koordinatene angitt i meter nord og øst for et nullpunkt. For å gjøre det mer komplisert finnes det flere UTM-soner i verden. Du må derfor sjekke hvilken sone koordinatene du har fått er angitt i. De vanligste er 33N og 32N.

Alle koordinatsystem har en slags unik id, kalt SRID. For å få CartoDB til å konvertere dine koordinater til lengde- og breddegrad må du vite denne id-en. Sannsynligvis trenger du kun å notere deg at UTM33N har id 32633 og UTM32N har id 32632.

I et datasett (eks et Excel-ark) med UTM-koordinater vil du ha to kolonner, et for nord og et for øst. Kall dem gjerne “utm_nord” og “utm_ost”.

Slik gjør du: 

  • Sørg for at du har to kolonner i arket ditt med utm_nord og utm_ost (eller tilsvarende)
  • Importer arket på vanlig måte i CartoDB
  • Velg SQL-fanen og bruk følgende SQL (merk at det her er angitt at kildekoordinatsystemet er UTM33N (altså id 32633))

    SQL-spørringen over tar utgangspunkt i de to kolonnene dine med nord- og øst-koordinater og konverterer dem fra UTM33N (SRID 32633) til koordinatsystemet CartoDB-bruker (SRID 4326).
  • Pass på å velge “Map view” etterpå og se om punktene ligger rett sted.
  • OBS: denne metoden fungerer kun om dataene dine er punkter, ikke polygoner eller linjer.

Flere tips