Mehrere Ebenen in einer Karte kombinieren
Ein einzelnes Icon Map Pro-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.

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.
Zwei weitere Bedingungen müssen erfüllt sein, damit eine Zeile gezeichnet wird:
- 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.
- 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 Pro 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.
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. „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, Säulenhöhe |
| Bilder und Symbole | Längengrad (X), Breitengrad (Y), Bild / WKT / GeoJSON | 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 | 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 |
| Vektorkacheln | Feature-Referenz | Bild / WKT / GeoJSON, Heatmap-Gewichtung, Zellgewichtung, Kreisgröße |
| Katalogebenen | Feature-Referenz | Nichts |
| ArcGIS-Layer | Feature-Referenz | Nichts |
Wissenswert:
- QuickInfos, Cluster-Gruppe, Feature-Gewichtung und Tag-Nacht-Grenze - Datum und Uhrzeit 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 und einer Säulenhöhe ist keines von beiden. Füllen Sie nur eines davon aus.
- 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.
- Feature-Referenz wird gemeinsam genutzt. Formen aus Dateien, Vektorkacheln, Katalogebenen und ArcGIS-Layer verknüpfen alle über Feature-Referenz. Eine Zeile mit einer Feature-Referenz wird jeder dieser Ebenen angeboten, die aktiviert ist. Dieselbe Zeile kann also in mehr als einer davon eine Grenze einfärben.
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. Aktivieren Sie dann beide Ebenen.
Erweitern Sie im Formatbereich Datenebenen, und aktivieren Sie Kreise und Linien.
Um Vertriebsregionen 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 fügen Sie die Datei mit den Regionen hinzu.
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 Leser 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 Zusammenfassung der Datenkonfiguration anzeigen. Die Zusammenfassung zeigt, wie viele Zeilen Power BI an das Visual gesendet hat, wie viele Zeilen jede Ebene zeichnet, die Zeilen, deren Ebene nicht bestimmt werden konnte, und Warnungen, etwa zu einer Ebene, die Zeilen hat, aber deaktiviert ist.
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. 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. |
| Ein Ebenentyp fehlt | Die Ebene ist nicht aktiviert. | Aktivieren Sie sie im Formatbereich unter Datenebenen. |
| Eine Zeile ist weder Kreis noch Säule | Sie hat sowohl eine Kreisgröße als auch eine Säulenhöhe. | Füllen Sie nur eines aus. |
| 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 eine Wetterebene, benötigt überhaupt keine Zeilen. Verwenden Sie eine Referenzebene.