In april heeft de kaart object in Qlik Sense een flinke update gekregen. Om de mogelijkheden eens goed uit te testen is Marijn Boerman, BI-consultant en GIS-specialist aan de gang gegaan met enkele demo’s. In dit blog deelt hij zijn bevindingen.

1 – Drill down dimensie als geografische dimensie

In Qlik Sense kun je een drill down groep als masteritem aanmaken onder dimensies. Het is nu mogelijk om meerdere geografische velden in een drill down groep te plaatsen en deze als dimensie in de kaart te gebruiken. Dit is een handige methode om performance te waarborgen, zeker wanneer je werkt met hiërarchische kaartlagen (denk aan provincie > gemeente > wijk > buurt of de postcodegebieden). Bij selectie van 1 provincie switcht de kaart naar verdeling in gemeentes en zo verder. Een belangrijke feature wanneer je wilt inzoomen op je data.

Volwaardige geïntegreerde kaart in Qlik Sense
Drill down van gemeentes in provincie Utrecht naar buurten binnen Gemeente Utrecht
Volwaardige geïntegreerde kaart in Qlik Sense

2 – Meerdere kaartlagen; polygonen, punten of achtergrondkaart.

Een andere belangrijke verbetering is de mogelijkheid om meerdere kaartlagen aan te maken in het kaart object. Zo kun je nu een combinatie van polygonen en punten weergeven en ook een eigen achtergrondkaart toevoegen. Het is nu dus ook mogelijk om twee kaartlagen tegelijk weer te geven.

Volwaardige kaart in Qlik Sense
Combinatie van een gebiedslaag (polygonen) en puntenlaag in 1 view

3 – Opties per kaartlaag; berekeningsvoorwaarde, aantal objecten zichtbaar, zoomniveaus, labels

In een standaard Qlik Sense object zoals een barchart zijn opties zoals de berekeningsvoorwaarde alleen op objectniveau in te stellen. Instellingen per measure zijn hier niet mogelijk, terwijl een developer die met QlikView gewerkt heeft hier wel behoefte aan heeft.

Het kaart object biedt deze functies wel aan; veel opties zijn per kaartlaag specifiek in te stellen. Dit biedt veel flexibiliteit en biedt veel opties in visualisatie maar ook in performance waarborging (zie punt 5).

De belangrijkste functies zijn:

  • Aantal objecten zichtbaar: om lange rendertijden of onoverzichtelijke visualisaties te voorkomen, is per laag ook het aantal zichtbare objecten in te stellen. Let op: de berekening wordt natuurlijk wel voor alle objecten in de selectie gedaan.
  • Berekeningsvoorwaarde per laag: wanneer moet de kaartlaag worden getoond? Dit kan op basis van elke expressie; een maximaal aantal objecten; een waarde van een variabelen et cetera.
  • Tonen in zoomniveaus: per laag is in te stellen op welke zoomniveaus de kaartlaag weergegeven moet worden. Will je geen drill down, maar wel dat de kaart switcht bij inzoomen dan is dat zo te realiseren.
  • Labels per laag; er is een label in te stellen met een vrij expressie veld. De inhoud van het label is dus specifiek in te regelen en ook van het label is in te stellen op welke zoomniveaus deze weergegeven worden. De layout van het label is (nog?) niet aan te passen.

4 – Combinatie met variabele extensie

In Qlik Sense kun je elk vakje in het grid maar voor 1 object gebruiken en bestaat er niet zoiets als een containerobject. Om de eindgebruiker toch meerdere visualisaties aan te bieden in dezelfde ruimte, maken we steeds vaker gebruik van een extensie waarmee je met knoppen een variabele kan aansturen. Deze logica is ook goed te gebruiken bij kaarten, waardoor je een veelvoud aan analyses kunt weergeven.

Volwaardige kaart in Qlik Sense
Variabele is met knoppen (bovenaan) aan te sturen waardoor de weergave op de kaart (onder) wijzigt.

5 – Performance verbeteringen; laadtijd KML gebieden een stuk korter

De algehele performance van het kaartobject is ook duidelijk verbeterd, met name de KML gebieden worden sneller gerenderd en performen nu zoals je van een Sense object mag verwachten. Daarnaast zijn er veel meer mogelijkheden om als developer de performance te waarborgen:

  • Drill down: toon pas postcode 5 gebieden bij selectie van 1 postcode 4 gebied.
  • Berekeningsvoorwaarde per laag: bereken pas een laag wanneer er aan een voorwaarde voldaan wordt.
  • Maximaal aantal zichtbare objecten per laag: wanneer er nog teveel objecten in de selectie zitten voorkomt deze optie een zeer lange laadtijd.
  • Tonen in zoomniveaus: door een laag pas te laten tonen op een laag zoomniveau wordt het aantal objecten dat direct gerenderd moet worden beperkt.
  • Optimalisatie van de KML die als basis van de kaart dient blijft belangrijk. Dit is een GIS-functie die je in het algemeen vooraf doet in bijvoorbeeld QGIS of PostGIS (zodat het KML bestand ook niet te groot wordt), maar die je nog verder kunt uitvoeren binnen het Qlik-script met de functie GeoReduceGeometry(). Let op: te veel vereenvoudigen kan zorgen voor rare polygonen en gaten tussen je polygonen (sliver polygons). Wij hebben inmiddels diverse kaarten geoptimaliseerd en bieden deze in QVD formaat aan zodat deze eenvoudig zijn toe te voegen aan elk Qlik datamodel.

Volwaardige kaart in Qlik Sense
Met een combinatie van bovenstaande performance verbeteringen hebben we het hele BAG (8 miljoen panden) in een goed werkend dashboard gevisualiseerd. Hierboven een weergave van alle panden in de ‘Turfmarkt en omgeving’ buurt in Gouda.

Wat HippoLine kan leveren…

Bruikbare kaarten voor Qlik Sense die wij kunnen leveren: buurtkaart, gemeentekaart (meerdere jaargangen), PC5, PC4, PC3, PC2, provincie, coördinaten per postcodegebied, coördinaten van alle adressen en panden in Nederland. Meer weten daarover, neem gerust contact met mij op. Reageren op dit blog kan ook en delen wordt op prijs gesteld.

Marijn Boerman

Marijn Boerman, BI-consultant en GIS-specialist