QlikSense Map Objekt

Eine schöne Neuerung von QlikSense ist die Integration eines eigenen Map/Landkarten-Objekts. Das neue Objekt kann sowohl Flächen als auch Punkte auf Karten anzeigen und einfärben. Als Grundlage für Flächen dient die aus Google Earth bekannte .kml-Datei. Die Hintergrund-Landkarten kommen von Tileservern wie zB Open Street Map.

Karten gab es in QlikView schon immer. Wie in diesem Blogbeitrag beschrieben war es jedoch ein wenig Hokuspokus (oder eine Extension) um das Ergebnis zu erzielen. In QlikSense gibt es nun ein Kartenobjekt, das sich mittels weniger Klicks zu einer aussagekräftigen Karte aufbauen lässt.

Flächenfärbung

Für die Flächenfärbung benötigen Sie ein .kml (bzw. ein entpacktes .kmz) File der gewünschten Region. Die Seite data.gv.at  soll uns hier hilfreich sein um zB die Bezirke von Wien darzustellen.

Das Map Objekt - Schritt für Schritt

Zieht man die .kml-Datei mit Drag&Drop in QlikSense, wird diese als Geo-Daten erkannt. Der Preview zeigt die Polygon-Definition der Bezirksgrenzen im Feld WienBezirke.Area.

Wird das .kml erkannt (was bei komplexen .kmls momentan leider nicht immer der Fall ist), geht die restliche Objekt-Erstellung Schlag auf Schlag:

1) QlikSense Skript laufen lassen und in den Design-Modus wechseln

2) Das Map-Objekt auf die Layoutfläche ziehen

3) QlikSense fragt nun nach der Dimension des Kartenobjekts. Das ist in unserem Fall das Feld WienBezirke.Name. Zieht man das Feld mittels Drag&Drop auf die Karte, erscheinen die Bezirksgrenzen von Wien in blau.



4) Wer das nicht glaubt, kann optional als Hintergrund noch eine Landkarte einblenden. QlikSense liefert hier keinen fixen Kartenanbieter mit, sondern bietet eine Auswahl verschiedenster Tileserver. Einfach die URL für zB Open Streetmap "http://tile.openstreetmap.org/${z}/${x}/${y}.png"  aus der Online-Hilfe kopieren, Zuordnung eintragen, und das Ergebnis sieht folgendermaßen aus:

Datenmodellierung

 Was nun noch fehlt ist eine Kennzahl auf der Karte: Von der Webseite der Stadt Wien kann man sich ganz gut Kennzahlen über die einzelnen Bezirke schnappen:

https://www.wien.gv.at/statistik/lebensraum/tabellen/nutzungsklassen-bez.html

Der QlikSense Script Editor hat hier noch nicht  alle graphischen Optionen von QlikView um Daten zu transformieren, versteht aber alle QlikView Skriptparameter. Unser Tipp ist hier also folgender: Daten mit QlikView laden, Filter anwenden und dann das Skript in QlikSense einfügen - dann klappt es auch die ersten Zeilen korrekt rauszufiltern.

LOAD
 num(num#(subfield(Bezirk,'.',1)),'###0') as %BezirkNr,
    Bezirk,
     "Bauflächen in ha" as Gesamtfläche,
    "Bauflächen in ha1" as Wohnbaugebiete,
    "Bauflächen in ha2" as Einrichtungen,
    "Grünflächen in ha",
    "Gewässer in ha",
    "Verkehrs-flächenin ha" as [Verkehrsflächen in ha]
FROM [lib://Wien Daten]
(html, codepage is 1252, embedded labels, table is @1,filters(
Remove(Row, Pos(Top, 2)),
Remove(Row, Pos(Top, 2))
));

Die Schlüssellogik bleibt wie immer bei den Qlik-Produkten: sowohl Karte als auch Kennzahlen müssen sich über einen gleichnamigen Schlüssel - hier %BezirkNr - verbinden.  Das Datenmodell sieht dann wiefolgt aus.


Das fertige Layout

Sie wollen nach Wien ziehen und wissen welcher  Bezirk wieviel "Grünfläche" hat? Innerhalb des Gürtels, oder doch nach Ottakring oder Liesing? Als Ergebnis kann man in QlikSense nun folgende Darstellung bauen.



Die komplette QlikSense Applikation finden Sie hier.

Punkte auf der Landkarte

Um Städte auf der QlikSense Map darzustellen geht man ganz ähnlich vor. Voraussetzung hier ist, dass Sie zu dem Ort eine Latitude und Longitude Angabe vorliegt. Ich habe hier eine bestehende .qvd aus QlikView genutzt, ansonsten wäre zB Google Maps eine brauchbare Hilfe!

Cities:
LOAD * INLINE [
    Ortschaft
    Grödig
    Stockerau
    Hollabrunn
    Retz
    Baden
];

inner join (Cities)
Load
 *,
    GeoMakePoint(latitude,longitude) as GeoPoint2;
LOAD
    PLZOrtschaft,
    num(num#(latitude,'# #00.0000000','.',' ')) as latitude,
    num(num#(longitude,'# #00.0000000','.',' ')) as longitude,
    Ortschaft,
    GEMNAM
FROM [lib://post.at PLZ Feb 2009/geoATFinal.qvd]
(qvd);

QlikSense kommt mit einer neuen Geo-Funktion GeoMakePoints um die Koordinaten-Angaben in das richtige Format umzuwandeln! Stellen Sie auch sicher, das die Funktion mit korrekt formatierten Nummern aufgerufen wird (nicht mit dem amerikanischen Punkt als Dezimalseperator)!

Ist das Skript geladen, geht man ganz ähnlich vor:

1) Map Objekt auf das Layout ziehen
2) Feld "Ortschaft" auf die Karte ziehen
3) Open Street Map für als Hintergrund einfügen




Fügt man nun noch eine Kennzahl ein, kann man die Punkte in den Optionen unter "Farben und Legenden" entsprechend "nach Kennzahl" färben.



Qlik Cloud

Ein kleiner Tipp am Rande: Wer seine Ergebnisse mit bis zu 3 Kollegen teilen möchte, kann das Beta-Programm von QlikCloud testen. Einloggen, .qvf hochladen und an bis zu drei Emailadressen Einladungen schicken.


 


0 Response to "QlikSense Map Objekt"

Kommentar veröffentlichen

heldendaten GmbH,2017