Individuelle Polygone mittels Azure Map Reference Layer visualisieren

In unserer 3-teiligen Artikelserie zum Azure Map Visual haben wir die Möglichkeiten dieses neueren Visuals mit jenen der beiden älteren Visuals – dem Map Visual und dem Filled Map Visual – verglichen. In diesem Artikel geht es auch um Filled Maps, allerdings unter Verwendung individueller Polygone anstatt der vordefinierten Flächen aus der Geo-Codierung im Filled Map Layer bzw. im alten Filled Map Visual.

1. Shape Files aus QGIS

Die Polygone zur Visualisierung kommen aus mehreren Shape Files, einem gängigen Dateiformat zur Verspeicherung von Geo-Informationen. Für die Bearbeitung dieser Shape Files verwenden wir das Open Source Tool QGIS.

1.1 Polygone für Postleitzahlen

Als Basis für diesen Beitrag verwenden wir ein Sample File von www.geopostcodes.com für die PLZ Gebiete in Wien. Die Datei haben wir ein wenig nachbearbeitet und auf das für diesen Beitrag Wesentliche reduziert:

Entscheidend für Power BI ist neben den Polygonen, die die Gebiete definieren, auch die sog. Attributtabelle mit den IDs, Bezeichnungen usw.:

Die Informationen eines Layers in QGIS werden beim Shape Format als 5 Einzeldateien gespeichert. Diese Dateien müssen in eine ZIP-Datei komprimiert werden, damit die Datei bspw. in Power BI integriert werden kann:

1.2 Polygone für individuelle Vertriebsgebiete

Aus dem obigen Layer (= Shape File) leiten wir einen zweiten Polygon Layer ab, bei dem die 22 PLZ-Gebiete mittels MERGE-Befehl zu 5 Vertriebsgebieten aggregiert werden:

Die Attributtabelle dieses Layer ist viel simpler aufgebaut aber nicht minder wichtig für die Visualisierung in Power BI:

Die 5 Einzeldateien dieses Layers werden wiederum in eine ZIP-Datei verpackt:

1.3 Punktkoordinaten für die individuellen Vertriebsgebiete

Für die Erstellung von zusätzlichen Punkt-Visualisierungen in Power BI benötigen wir die Längen-/Breitengrad Koordinaten jeweils eines repräsentativen Punktes innerhalb eines jeden Polygons. Am einfachsten erstellen wir dazu direkt in QGIS einen weiteren Layer im „Punkt“ Format und platzieren darauf die Referenzpunkte je Polygon:

Diesen Layer benötigen wir nicht als Shape File sondern wir extrahieren lediglich die Längen-/Breitengrad Koordinaten (siehe nächstes Kapitel).

2. Datenmodell in Power BI

Das Datenmodell besteht lediglich aus 2 nicht verknüpften Faktentabellen für die Vertriebsgebiete und die PLZ und sollte daher in dieser Form kein Vorbild für reale Anwendungsfälle sein.

2.1 Faktentabelle für Vertriebsgebiete

Die Attributtabellen der beiden Layer mit den Vertriebsgebieten (Polygone + Punkte) können in QGIS sehr unkompliziert mittels Copy & Paste extrahiert und in eine Excel Datei eingefügt werden. Dabei werden nicht nur die Attribute sondern auch die Koordinaten des Polygons bzw. der Punkte im WKT (= Well-know-text) Format mitausgegeben:

Diese beiden Attributtabellen werden dann zu einer einzigen Datentabelle in Power BI kombiniert und mit der zu visualisierenden Metrik zur Faktentabelle angereichert:

2.2 Faktentabelle für PLZ

Weiters übernehmen wir auch die Attributtabelle des PLZ Layers, die mit der zu visualisierenden Metrik sowie einem AREA Attribut angereichert wird:

3. Flächenvisualisierung mit dem Reference Layer im Azure Map Visual

Der Reference Layer im Azure Map Visual ermöglicht die Darstellung individueller Shapes in folgenden Formen:

  • Polygone (= Flächen)
  • Punkte
  • Linien

Dabei werden aktuell folgende technischen Formate unterstützt:

  • SHP (Shapefile) files im .shp Format
    Genau genommen wird ein .zip File übernommen mit dem .shp und den ergänzenden Files bspw. für die Attributtabelle.
  • GeoJSON files im .json oder .geojson Format
  • KML (Keyhole Markup Language) files im .kml Format
  • WKT (Well-Known Text) files im .wkt Format
  • CSV (Comma-separated values) files im .csv Format -> das Azure Maps Visual übernimmt die Spalte mit den WKT (Well-Known Text) Strings

In Power BI kann der Reference Layer auf zwei Arten eingebunden werden:

  • File Upload (= statische Einbindung)
  • URL (= Möglichkeit zur dynamischen Einbindung mittels DAX Measure)

In diesem Beitrag verwenden wir ein Shapefile mit Polygonen, das mittels File Upload eingebunden wird.

Bitte beachte auch die Möglichkeit, daß diese Files selbst schon Formatierungen für die Polygone enthalten können.

3.1 Visualisierung der Vertriebsgebiete

Um das Azure Map Visual konfigurieren zu können, muß im ersten Schritt eine Spalte aus dem Datenmodell einem Bucket des Visuals zugewiesen werden. Da die Bubble Visualisierung per default aktiviert ist, wird gleich mal ein Punkt auf der Karte dargestellt:

Der Punkt ist für uns vorerst aber uninteressant, daher schalten wir den Bubble Layer erst mal weg:

Um gut arbeiten zu können, aktivieren wir den Reference Layer als weitere Quelle für den Auto Zoom:

Der zentrale Vorgang ist jetzt der Upload des Files „Vertriebsgebiete Wien – Polygone.zip“ in den Reference Layer unseres Azure Map Visuals:

Und schon werden unsere Vertriebsgebiete auf der Landkarte dargestellt und dank Auto Zoom auch gleich auf die richtige Stelle der Weltkarte gezoomt:

Hier findet ein sehr wichtiger aber lautloser Vorgang statt: das Mapping der Einträge der Spalte NAME (aus dem Datenmodell) mit den Polygonen des hochgeladenen Shapefiles.

Azure Maps matches these identifiers with the corresponding properties in the uploaded spatial file, automatically linking your data to the shapes on the map. In scenarios with multiple properties, Azure Maps identifies a common property in each shape and compares its value with the selected data column in the Location field. It then uses the property that has the highest number of matches with the selected data column.
Quelle

Grundsätzlich lässt sich ein erfolgreicher Match dadurch erkennen, ob sich ein Polygon in der Karte selektieren lässt oder nicht. Systematischer können wir den Match aber durch die Aktivierung des Settings für Unmapped Objects behandeln, indem wir die Polygone ohne Match mit einer abweichenden Farbe sichtbar machen:

Sofern – wie bei uns hier – alle Polygone im Shapefile einen Match in der Spalte NAME haben, sind keine Unmapped Objects zu sehen. Zum Test kann ein (Cross-)Filter auf der Seite gesetzt werden, damit kann die Tauglichkeit der Definition für Unmapped Objects gut getestet werden:

Im nächsten Schritt können wir die Polygone mit einer bedingten Verlaufsformatierung nach unserer Metrik einfärben …

… und damit unsere Filled Map auf Basis individueller Polygone zu erhalten:

3.2 Visualisierung auf PLZ

Genau das gleiche können wir mit einem zweiten Azure Map Visual mit dem Shapefile PLZ Wien – Polygone.zip und den Daten der zweiten Faktentabelle auf PLZ Ebene machen:

4. Zusätzlicher Layer mit Bubbles

Das Azure Map Visual ist ein Layer basiertes Visuals – daher fügen wir jetzt zusätzlich zum Reference Layer einen Layer mit einer Punktvisualisierung hinzu. Wir verwenden die Bubbles, alternativ könnte aber genauso gut eine Heat Map oder eine 3D Säulen Visualisierung erstellt werden.

4.1 Bubbles auf Vertriebsgebiete

Wir aktiveren einfach den Schieberegler für den Bubble Layer …

… und sehen die Bubbles an der falschen Stelle, nämlich alle 5 Bubbles genau im Zentrum Wiens:

Dieses Verhalten hat mich sehr überrascht, da ich erwartet hatte, daß die Bubbles automatisch über das Feld NAME auf die Polygone des Shapefiles gemappt werden. Das ist aber NICHT so, die Punktvisualisierungen werden ausschließlich über Geo-Koordinatendirekt oder über Geo-Codierung – auf der Karte aufgetragen.

The Azure Maps Power BI Visual can only perform geocoding on valid location data such as geographical coordinates, addresses, or place names. If no valid location data is uploaded, data layers that depend on geocoded locations, such as heat maps or bubble layers, don’t display on the map.
Quelle

Das Ergebnis unserer obigen Visualisierung interpretiere ich so, daß die Einträge der Spalte NAME alle das Wort Wien enthalten und dieser Teil des Namens erfolgreich geo-codiert werden konnte, während der zweite Teil (Nord, Ost, usw.) nicht geo-codiert werden konnte und daher ignoriert wurde. Daher landen alle 5 Bubbles an der selben Stelle im Zentrum Wiens:

Wir brauchen daher die Geo-Koordinaten – also den Längen- und Breitengrad – aus unserem Punkt-Layer in QGIS zur korrekten Positionierung der Bubbles auf der Karte:

4.2 Bubbles auf PLZ Gebiete

Bei den PLZ Gebieten sieht es auf den ersten Blick so aus, als ob wir uns die Mühe mit den Geo-Koordinaten sparen können, da das Ergebnis der Geo-Codierung auf den ersten Blick recht gut aussieht (mal abgesehen, daß die Bubbles häufig an den Polygonrändern sitzen):

Bei näherer Betrachtung ist aber zu sehen, daß ein Bezirk – nämlich „Wieden“ – falsch platziert wurde, nämlich als zweite Bubble in der Innenstadt. Ich denke, das hängt damit zusammen, daß die Geo-Codierung in Power BI multi-lingual funktioniert und „Wieden“ nicht nur ein Bezirksname in Wien ist sondern auch das polnische Wort für die Stadt „Wien“ ist.

5. Bugs und Limitierungen beim Reference Layer

In der Online Doku für die Reference Layer sind keine Limitierungen festgehalten. In der Praxis gibt es nach meiner Einschätzung aber – leider – gleich mehrere.

5.1 Bug beim Refresh

In Power BI Desktop geht immer wieder mal der Reference Layer verloren. Beispielsweise bei längerer Inaktivität oder auch mal beim Hinzufügen neuer Spalten in das Visual.

Aber das ist kein großes Problem sondern nur ein lästiges, da es eine einfache Lösung gibt: einmal kurz die Seite Wechseln und wieder zurückkehren, dann wird der Reference Layer wieder angezeigt.

5.2 Probleme beim Mapping der Polygone

Für mich nicht nachvollziehbar funktioniert das Mapping der Polygone mit der zugewiesenen Spalte im Bucket Location in vielen Fällen nicht. Beispielsweise kann der Inhalt der Spalte ID nicht aufgelöst werden (unabhängig davon, ob die Spalte ID als Zahl oder als Text importiert wird):

Weiters hatte ich zwischendurch bei der Ausarbeitung dieses Blogbeitrags das Problem, daß der Bezirk „Wieden“ nicht nur nicht geo-codiert (siehe oben) sondern auch nicht auf das entsprechende Polygon gemapped werden konnte:

6. Vergleich mit dem Shape Map Visual

Das Shape Map Visual wurde im Jahr 2017 gelauncht und ist seither in Preview (!!!). Seit dem Erscheinen der Reference Layer im Azure Map Visual gehe ich davon aus, daß das Shape Map Visual auch nicht mehr Generally Available (GA) werden wird sondern durch das Azure Map Visual ersetzt werden wird. Dennoch hier ein kurzer Vergleich.

6.1 Default Shapes

Das Shape Map Visual liefert für einige Länder – darunter auch für Österreich und Deutschland Default Shapes für die Bundesländer für den unkomplizierten Start in das Visual:

Super ist der Link View map type key – damit kann die Attributtabelle des verwendeten Shapes eingesehen werden (und das verwendete Datenmodell darauf ausgerichtet werden):

6.2 Custom Shapes

Das Shape Map Visual kann auch Custom Shapes verarbeiten, allerdings nur im TopoJSON Format und nur mittels File Upload und auch nur für maximal 1.500 Polygone.

Mit dem Dienst https://mapshaper.org/ können wir unser Shape File in ein TopoJSON File konvertiert werden:

Das TopoJSON File wird dann in das Visual hochgeladen und mit der entsprechenden Feldbelegung (NAME + Sum of Wert) auch gleich richtig visualisiert:

Toll ist die Möglichkeit, auch bei den Custom Shapes die Attributtabelle einzusehen:

Die Formatierung zur Filled Map ist sehr benutzerfreundlich gestaltet – bietet aber auch wenig Möglichkeiten:

Fazit

Der Reference Layer im Azure Map Visual eröffnet riesige Möglichkeiten für sehr individuelle Geo-Visulisierungen und löst gleichzeitig das alte Problem der geringen Leistungsfähigkeit und des Preview Stauts des Shape Map Visual.

In der Praxis kann aber viel Zeit damit verloren gehen, die Inhalte der Attributtabelle so lange anzupassen, bis alle Darstellungen korrekt sind. Das Mapping der Polygone mit den Inhalten der Datenspalte sollte transparenter sein und auftretende Fehler bzw. Mismatches sollten einsehbar und damit analysierbar sein.

Die Reference Layer sind aber jedenfalls die Mühe wert, sich auch durch die Problemzonen durchzuackern, da das Ergebnis ganz besonders ist.

Quellen

Online Hilfe:

https://learn.microsoft.com/en-us/azure/azure-maps/power-bi-visual-add-reference-layer

https://learn.microsoft.com/en-us/power-bi/visuals/desktop-shape-map

Feature Upates zum Reference Layer im Azure Maps Visual:

https://powerbi.microsoft.com/en-us/blog/power-bi-october-2024-feature-summary/#post-28196-_Toc179458530

https://powerbi.microsoft.com/en-us/blog/power-bi-july-2024-feature-summary/#post-27650-_Toc1123183795

https://powerbi.microsoft.com/en-us/blog/power-bi-march-2024-feature-summary/#post-26258-_Toc1193948769

https://powerbi.microsoft.com/en-us/blog/power-bi-february-2024-feature-summary/#post-25940-_Toc158305661

Quellen für Shape Files mit Polygonen für Flächenvisualisierungen:

https://www.geopostcodes.com/thank-you-for-your-interest-in-the-shapefile/?country=Austria&iso=AT

https://www.opendataportal.at/katalog/dataset/d21fdb61-17c1-4873-96aa-832e1b0f4a32#resources

Tools zur Bearbeitung von ShapeFiles und Konvertierung in andere Formate (GeoJSON, KML, u.a.):

https://qgis.org

https://mapshaper.org

Über den Autor

Blog auf Feedly abonnieren

Kategorien

Verwandte Beiträge

Power BI Camp - Präsenztrainings in Wien und Nürnberg!

Dashboarding mit Power BI, DAX & Datenmodellierung und Power Query. Drei Einzelmodule oder als ganze Trainingswoche - für Einsteiger und Fortgeschrittene!

Termine 2022

Wien: (7./8. Februar 2022)
und 25.-28 April 2022
Nürnberg: (14./15. Februar 2022)
und 9.-12. Mai 2022

Jetzt buchen und Rabatt sichern.

Jetzt buchen!

Leave a Replay

Schreibe einen Kommentar

Kostenlos zum Newsletter anmelden

Ihre Anfrage

Schicken Sie uns Ihre Fragen und Anregungen!