Mehrere Ebenen in einer Karte kombinieren

Ein Icon Map Lite-Visual kann mehrere Datenebenen gleichzeitig zeichnen, zum Beispiel Filialen als Kreise, Lieferungen als Linien und Vertriebsregionen als Formen. Alle stammen aus einer Tabelle. Diese Seite erklärt, wie jede Zeile ihre Ebene findet, wie Sie diese Tabelle aufbauen und was Sie prüfen, wenn eine Ebene nichts zeichnet.

Eine Karte mit Ländern als farbigen Formen, Städten als Kreisen und Lieferlinien dazwischen
Formen, Kreise und Linien aus einer Tabelle

Die Regel

Eine Zeile wird von der Ebene gezeichnet, deren Felder sie ausfüllt.

Es gibt einen Satz von Feldbereichen, und jede Datenebene liest ihn. Das Visual betrachtet jede Zeile und fragt, welche Felder einen Wert haben:

  • Eine Zeile mit einem Längengrad, einem Breitengrad und einer Kreisgröße ist ein Kreis.
  • Eine Zeile mit einem Längengrad, einem Breitengrad und einem Ziel ist eine Linie.
  • Eine Zeile mit nur einer Feature-Referenz ist eine Form aus einer Datei oder eine integrierte Grenze.
Eine Tabelle mit drei Zeilen. Die erste füllt Längengrad, Breitengrad und Größe aus und wird von Kreise gezeichnet. Die zweite füllt Längengrad, Breitengrad und Ziel aus und wird von Linien gezeichnet. Die dritte füllt nur die Feature-Referenz aus und wird von Formen aus Dateien gezeichnet
Jede Zeile wird von der Ebene gezeichnet, deren Felder sie ausfüllt

Zwei weitere Bedingungen müssen erfüllt sein, damit eine Zeile gezeichnet wird:

  1. Die Felder anderer Ebenen sind in dieser Zeile leer. Eine Filialzeile, die auch ein Ziel hat, ist kein Kreis mehr. Sie wird als Linie behandelt.
  2. Die Ebene ist aktiviert. Eine Zeile, die zu einer deaktivierten Ebene passt, wird nicht gezeichnet.

Um also mehrere Ebenentypen auf einer Karte zu zeigen, halten Sie sie in einer Tabelle, geben Sie jeder Zeile nur die Felder ihrer eigenen Ebene, und lassen Sie die anderen leer.

Leer und ohne Wert

Ein Feld ist in einer Zeile leer, wenn:

  • Es in den Daten null ist oder ein Measure BLANK() zurückgibt.
  • Es ein Textwert ohne Inhalt oder nur mit Leerzeichen ist. Tabellen aus CSV-Dateien, Excel oder Power Query enthalten oft leeren Text statt null. Icon Map Lite behandelt beides gleich.
  • Diesem Feldbereich überhaupt kein Feld hinzugefügt wurde.

Null als Zahl ist ein Wert, nicht leer. Eine Zeile mit einer Kreisgröße von 0 hat weiterhin eine Kreisgröße.

Spalten haben in jeder Zeile einen Wert

Wenn Sie eine Spalte wie Sales zu Kreisgröße hinzufügen, erhält jede Zeile mit einem Sales-Wert eine Kreisgröße, auch die Zeilen, die Sie als Linien oder Formen gedacht haben. Verwenden Sie eine Spalte, die in diesen Zeilen leer ist, oder ein Measure, das für sie leer zurückgibt. Siehe Measures, die bei anderen Zeilen leer sind.

Was jede Ebene benötigt

Jede Ebene benötigt * ID (erforderlich). „Zellgewichtung“ steht in dieser Tabelle für den Feldbereich Zellgewichtung (H3/S2/A5/Geohash), und „Ziel“ meint sowohl Ziel-Längengrad als auch Ziel-Breitengrad.

Ebene Ausfüllen Leer lassen
Kreise Längengrad (X), Breitengrad (Y), Kreisgröße Ziel, Bild / WKT / GeoJSON, Feature-Referenz, Heatmap-Gewichtung, Zellgewichtung
Bilder und Symbole Längengrad (X), Breitengrad (Y) und ein Bild in Bild / WKT / GeoJSON (oder dort nichts, wenn Bildquelle auf Text oder Emoji steht) Ziel, Feature-Referenz, Heatmap-Gewichtung, Zellgewichtung, Kreisgröße
Heatmap Längengrad (X), Breitengrad (Y), Heatmap-Gewichtung Ziel, Kreisgröße, Bild / WKT / GeoJSON, Feature-Referenz, Zellgewichtung
3D-Säulen Längengrad (X), Breitengrad (Y), Säulenhöhe Ziel, Kreisgröße, Bild / WKT / GeoJSON, Feature-Referenz, Zellgewichtung, Heatmap-Gewichtung
Zellen aus Koordinaten Längengrad (X), Breitengrad (Y), Zellgewichtung Ziel, Kreisgröße, Heatmap-Gewichtung, Bild / WKT / GeoJSON, Feature-Referenz
Zellen aus Zellen-IDs Zellgewichtung (die ID ist die Zellen-ID) Längengrad (X), Breitengrad (Y) und die Felder in der Zeile darüber
Linien und Routen Längengrad (X), Breitengrad (Y), Ziel Feature-Referenz, Bild / WKT / GeoJSON, Heatmap-Gewichtung, Zellgewichtung
Formen aus Daten Bild / WKT / GeoJSON Längengrad (X), Breitengrad (Y), Ziel, Heatmap-Gewichtung, Zellgewichtung, Feature-Referenz, Kreisgröße
Formen aus Dateien Feature-Referenz Bild / WKT / GeoJSON, Längengrad (X), Breitengrad (Y), Ziel, Heatmap-Gewichtung, Zellgewichtung, Kreisgröße

Wissenswert:

  • QuickInfos und Cluster-Gruppe entscheiden nie, zu welcher Ebene eine Zeile gehört. Füllen Sie sie in jeder beliebigen Zeile aus.
  • Linien mit Kreisen. Eine Linienzeile darf eine Kreisgröße haben. Ist in den Einstellungen der Linien Kreise einbeziehen bei: festgelegt, werden an den Enden der Linie Kreise gezeichnet.
  • Kreis oder Säule. Eine Zeile mit einer Kreisgröße wird nie als Säule gezeichnet. Geben Sie Säulenzeilen eine Säulenhöhe und keine Kreisgröße, und geben Sie Kreiszeilen eine Kreisgröße und keine Säulenhöhe.
  • Bilder und Formen teilen sich einen Feldbereich. Eine Zeile mit einem Bild und Koordinaten ist ein Bild. Eine Zeile mit WKT- oder GeoJSON-Text und ohne Koordinaten ist eine Form.

Ein durchgerechnetes Beispiel: Filialen und Lieferungen

Sie möchten Filialen als Kreise, deren Größe der Umsatz bestimmt, und Lieferungen als Linien von einem Depot zu jeder Filiale. Die Tabelle benötigt eine Zeile für jede Filiale und eine Zeile für jede Lieferung:

ID Type Longitude Latitude Destination Longitude Destination Latitude Size
Store Leeds Store -1.549 53.801 120
Store York Store -1.081 53.959 85
Delivery 1001 Delivery -1.356 53.683 -1.549 53.801
Delivery 1002 Delivery -1.356 53.683 -1.081 53.959
  • Die Filialzeilen (Store) füllen die Koordinaten und Size aus und lassen das Ziel leer. Kreise zeichnet sie.
  • Die Lieferzeilen (Delivery) füllen die Koordinaten und das Ziel aus und lassen Size leer. Linien zeichnet sie.

Fügen Sie die Felder dem Visual hinzu, jede Spalte in den entsprechenden Feldbereich, mit Size in Kreisgröße. Erweitern Sie dann im Formatbereich Datenebenen, und aktivieren Sie Kreise und Linien.

Um Regionen als dritte Ebene hinzuzufügen, fügen Sie für jede Region eine Zeile hinzu, die nur die Feature-Referenz ausfüllt, und fügen Sie diese Spalte zu Feature-Referenz hinzu:

ID Type Longitude Latitude Destination Longitude Destination Latitude Size Region code
Region North Region E12000001

Aktivieren Sie dann Formen aus Dateien, und laden Sie die Datei mit den Regionen hoch. Wenn Ihre dritte Ebene aus Ländern, Bundesstaaten oder Provinzen besteht, wählen Sie stattdessen einen der integrierten Grenzdatensätze, und tragen Sie den Länder- oder Bundesstaatcode in Feature-Referenz ein.

Die Tabelle aufbauen

In den meisten Modellen sind Filialen, Lieferungen und Regionen getrennte Tabellen. Power BI benötigt sie für das Visual als eine Tabelle. Kombinieren Sie sie also. Geben Sie jeder Zeile eine eindeutige ID: Wenn eine Filiale und eine Lieferung dieselbe ID haben könnten, fügen Sie ein Präfix hinzu.

Power Query: die Tabellen anfügen

Geben Sie den Spalten in jeder Abfrage dieselben Namen, und verwenden Sie dann Abfragen als neu anfügen. Spalten, die eine Abfrage nicht hat, werden mit null gefüllt, und genau das benötigt die Karte.

let
    StoreRows = Table.SelectColumns(Stores, {"ID", "Type", "Longitude", "Latitude", "Size"}),
    DeliveryRows = Table.SelectColumns(
        Deliveries,
        {"ID", "Type", "Longitude", "Latitude", "Destination Longitude", "Destination Latitude"}
    ),
    MapItems = Table.Combine({StoreRows, DeliveryRows})
in
    MapItems

DAX: eine berechnete Tabelle mit UNION

UNION stapelt Tabellen, deren Spalten in derselben Reihenfolge stehen. Verwenden Sie BLANK() für die Spalten, die ein Zeilentyp nicht nutzt.

Map Items =
UNION (
    SELECTCOLUMNS (
        Stores,
        "ID", "Store " & Stores[Name],
        "Type", "Store",
        "Longitude", Stores[Longitude],
        "Latitude", Stores[Latitude],
        "Destination Longitude", BLANK (),
        "Destination Latitude", BLANK (),
        "Size", Stores[Sales]
    ),
    SELECTCOLUMNS (
        Deliveries,
        "ID", "Delivery " & Deliveries[Delivery No],
        "Type", "Delivery",
        "Longitude", Deliveries[Depot Longitude],
        "Latitude", Deliveries[Depot Latitude],
        "Destination Longitude", Deliveries[Store Longitude],
        "Destination Latitude", Deliveries[Store Latitude],
        "Size", BLANK ()
    )
)

Measures, die bei anderen Zeilen leer sind

Wenn der Wert für einen Feldbereich aus einer Spalte stammt, die in jeder Zeile einen Wert hat, verpacken Sie ihn in ein Measure, das für die Zeilen anderer Ebenen leer zurückgibt. IF ohne drittes Argument gibt BLANK() zurück:

Store Size =
IF (
    SELECTEDVALUE ( 'Map Items'[Type] ) = "Store",
    SUM ( 'Map Items'[Sales] )
)

Legen Sie das Measure anstelle der Spalte in Kreisgröße. Filialzeilen erhalten eine Größe und werden als Kreise gezeichnet. Lieferzeilen erhalten einen leeren Wert und werden als Linien gezeichnet. Dasselbe Muster funktioniert für jeden Feldbereich, zum Beispiel für ein Ziel, das leer ist, sofern die Zeile keine Lieferung ist:

Delivery Destination Longitude =
IF (
    SELECTEDVALUE ( 'Map Items'[Type] ) = "Delivery",
    AVERAGE ( 'Map Items'[Destination Longitude] )
)

Ebenen mit einem Datenschnitt wählen

Weil die Ebene den Daten folgt, kann ein Datenschnitt Ebenen für Berichtsbenutzer ein- und ausschalten. Fügen Sie einen Datenschnitt auf der Spalte Type der Beispieltabelle hinzu. Die Auswahl von Store zeigt nur die Kreise, und die Auswahl von Delivery zeigt nur die Linien, weil die anderen Zeilen herausgefiltert werden, bevor sie die Karte erreichen.

Prüfen, was jede Ebene zeichnet

Erweitern Sie im Formatbereich Diagnose, und aktivieren Sie unter Diagnosetools die Option Zusammenfassung der Datenkonfiguration anzeigen. Das Fenster Zusammenfassung der Datenkonfiguration listet jede Ebene mit der Zahl der Zeilen auf, die sie zeichnet, und den Feldern, die sie benötigt. Es warnt Sie zum Beispiel, wenn Zeilen zu einer deaktivierten Ebene passen, wenn das Visual seine Grenze von 30.000 Zeilen erreicht hat oder wenn Textwerte bei 32.766 Zeichen abgeschnitten worden sein könnten. Die Schaltfläche Zusammenfassung der Datenkonfiguration am unteren Rand des Bereichs Welche Art von Karte erstellen Sie? öffnet dasselbe Fenster.

Wenn während der Bearbeitung keine Zeile eine aktivierte Ebene erreicht, zeigt die Karte die Ebenenhilfe Welche Art von Karte erstellen Sie?. Sie führt jeden Ebenentyp mit den Feldern auf, die er benötigt, und markiert diejenigen, zu denen Ihre Felder bereits passen. Ihre Kachel Ebenen kombinieren verweist auf diese Seite. Siehe Ebenentyp wählen.

Häufige Fehler

Was Sie sehen Wahrscheinliche Ursache Lösung
Kreise ist aktiviert, aber nichts wird gezeichnet Jede Zeile hat auch ein Ziel, die Zeilen sind also Linien. Lassen Sie das Ziel in Kreiszeilen leer, oder aktivieren Sie Linien, wenn Sie Linien möchten.
Linien ist aktiviert, aber nichts wird gezeichnet Die Zeilen haben eine Feature-Referenz, ein Bild oder einen WKT-Wert, eine Heatmap-Gewichtung oder eine Zellgewichtung. Lassen Sie diese Felder in Linienzeilen leer.
Formen werden gezeichnet, aber die Kreise sind verschwunden Eine Spalte in Feature-Referenz hat auch in den Kreiszeilen einen Wert. Verwenden Sie eine Spalte oder ein Measure, die in Kreiszeilen leer sind.
Formen aus Dateien zeichnet nichts Die Formzeilen haben auch Koordinaten oder eine Kreisgröße. Lassen Sie sie in Formzeilen leer.
Bilder zeichnen nichts Die Bildwerte sind Links, oder die Zeilen haben auch eine Kreisgröße. Verwenden Sie Daten-URIs oder SVG-Text, und lassen Sie Kreisgröße leer. Siehe Bilder und Symbole.
Als Säulen gedachte Zeilen werden nicht als Säulen gezeichnet Sie haben auch eine Kreisgröße. Lassen Sie Kreisgröße in Säulenzeilen leer.
Ein Ebenentyp fehlt Die Ebene ist nicht aktiviert. Aktivieren Sie sie im Formatbereich unter Datenebenen.
Zeilen zweier Typen verschmelzen zu einer Zwei Zeilen teilen sich eine ID. Power BI gruppiert sie daher zu einer Zeile mit den Feldern beider. Machen Sie die IDs eindeutig, zum Beispiel mit einem Präfix für jeden Typ.
Ein leerer Wert wurde erwartet, aber die Zeile hat einen Wert Das Feld enthält 0 oder eine Spalte mit einem Wert in jeder Zeile. Geben Sie für diese Zeilen BLANK() aus einem Measure zurück.

Tipps und Grenzen

  • Die Zeichenreihenfolge der Ebenen wird durch den Z-Index jeder Ebene festgelegt. Siehe Datenebenen im Überblick.
  • Alle Ebenen teilen sich die Zeilengrenze des Visuals. Siehe Datenzeilen und Grenzen.
  • Eine Karte, die Kontext statt Daten benötigt, etwa einen Grenzumriss oder die Tag-Nacht-Schattierung, benötigt überhaupt keine Zeilen. Verwenden Sie eine Referenzebene.

Verwandte Themen