Mit Amazon Quick Sight Layer-Maps können Sie jetzt Punkte und Routen darstellen, wie etwa Standorte von Geschäften in einer Stadt oder abfliegende Flüge von einem Flughafen. Geospatiale Karten helfen Unternehmen, Muster zu erkennen, die an einen Standort gebunden sind, etwa wie eine Region abschneidet oder wo sich Kunden konzentrieren. Amazon Quick Sight unterstützt dies mit mehreren Kartentypen, darunter Punkt-Karten, Flächen-Karten und Layer-Maps. Als Layer-Maps erstmals eingeführt wurden, konnten Sie eine GeoJSON-Datei hochladen, um benutzerdefinierte Form-Ebenen zu zeichnen, wie etwa Verkaufsgebiete oder Bezirke, und diese Formen mit einem Datensatz zu verknüpfen. Das eignete sich gut für Regionen und Grenzen, deckte aber weder die einzelnen Standorte innerhalb davon noch die Routen zwischen ihnen ab.
Layer-Maps unterstützen nun zwei weitere Geometrietypen aus demselben GeoJSON-Workflow: Point und LineString. Punkte markieren bestimmte Standorte, wie etwa einzelne Geschäftsstandorte oder Einrichtungen. Ein LineString zeichnet die Route zwischen Standorten nach, wie etwa einen Lieferweg oder einen Flug zwischen Flughäfen.
Amazon Quick Sight, die Business-Intelligence-Funktion (BI) von Amazon Quick, ist ein einheitlicher BI-Service. Er liefert moderne interaktive Dashboards, Abfragen in natürlicher Sprache, pixelgenaue Berichte, Machine-Learning-Einblicke (ML) und eingebettete Analysen in großem Maßstab. Amazon Quick bringt KI-Agenten für geschäftliche Einblicke, Recherche und Automatisierung in einer integrierten Erfahrung zusammen und hilft Ihnen, klüger und schneller zu arbeiten und dabei Sicherheits- und Zugriffsrichtlinien einzuhalten.
In diesem Beitrag führen wir durch den Datensatz und die GeoJSON-Struktur, die Layer-Maps erfordern. Wir erklären auch, wie Punkte und Linien in einem Layer-Map-Visual funktionieren und wann Sie welche wählen sollten. Abschließend behandeln wir fortgeschrittene Techniken zur Steuerung des Viewports, zum Layering von Geometrien und zur programmatischen Aktualisierung von GeoJSON-Dateien.
Überlegungen zur Struktur des Datensatzes
Eine Layer-Map bezieht ihre Formen aus einer GeoJSON-Datei und ihre Metriken aus einem Quick Sight-Datensatz, und ein gemeinsamer Schlüssel verbindet beide. Wie Sie jede Komponente strukturieren, bestimmt, was die Karte anzeigen kann. Dieser Abschnitt behandelt, was Sie vor dem Start benötigen und wie eine GeoJSON-Datei aufgebaut ist.
Voraussetzungen
Die folgenden Voraussetzungen benötigen Sie, bevor Sie eine Layer-Map in Quick Sight erstellen:
- Eine GeoJSON-Datei, die Ihre Geometrie beschreibt.
- Ein Quick Sight-Datensatz, der die Metriken und Dimensionen enthält.
- Ein Verknüpfungsschlüssel, der zwischen dem Quick Sight-Datensatz und der GeoJSON-Datei geteilt wird.
- Die GeoJSON-Datei muss im .geojson-Format gespeichert sein, mit einer maximal unterstützten Dateigröße von 100 MB.
Aufbau der GeoJSON-Datei
GeoJSON ist ein JSON-basiertes Format zur Beschreibung geografischer Features wie Punkte und Linien.
{
"type": "FeatureCollection",
"features": [{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [88.4, 22.6]
},
"properties": { "prop0": "value0" }
}, {
"type": "Feature",
"geometry": {
"type": "LineString",
"coordinates": [
[88.2, 22.4],
[88.9, 23.1],
[89.5, 22.8],
[90.1, 23.6]
]
},
"properties": { "prop0": "value0" }
}]
}
Die Struktur der Datei ist wie folgt:
- FeatureCollection ist die gesamte Datei. Sie hat den Typ FeatureCollection und ein features Array.
- Feature ist ein einzelnes Kartenelement. Es trägt eine geometry (die Form) und ein properties -Objekt, das den Join-Schlüssel enthält.
- geometry hat einen type (Point, LineString oder Polygon) und seine coordinates. Die coordinates enthalten eine einzelne [longitude, latitude] -Position für ein Pointund eine geordnete Liste von Positionen für ein LineString.
Konfigurieren des Quick Sight-Datensatzes und seiner GeoJSON
In Quick Sight gibt es beim Konfigurieren eines Layers in einem Layer-Map-Visual zwei primäre Einstellungen zu beachten. Die erste ist die Geometry type to visualize, die festlegt, welche Geometrie aus der GeoJSON-Datei gerendert wird: Points, Lines oder Polygons. Ein Layer rendert jeweils einen Geometrietyp, sodass bei einer Datei, die Typen mischt wie im vorherigen Beispiel, nur Features des ausgewählten Typs auf der Karte erscheinen. Die zweite besteht darin, das Shape file key field mit dem Dataset key fieldabzugleichen, was jedes Feature in der GeoJSON mit einer Zeile in Ihrem Quick Sight-Datensatz verknüpft. Die Feldnamen müssen nicht identisch sein, aber die Werte. Die folgenden zwei Beispiele zeigen dies vollständig, zuerst ein LineString -Layer und dann ein Point -Layer.
Beispiel: LineString-Layer
Betrachten Sie Beispieldaten, die einen Flug von JFK zu einer Zielstadt wie Los Angeles zeigen. Die GeoJSON-Struktur für einen einzelnen Datenpunkt ist wie folgt konfiguriert:
{
"type": "Feature",
"geometry": {
"type": "LineString",
"coordinates": [
[-73.7781, 40.6413],
[-85.5627, 40.6407],
[-97.1415, 39.4569],
[-108.1612, 37.1753],
[-118.4085, 33.9416]
]
},
"properties": { "route_id": "JFK-LAX" }
}
Die entsprechende Zeile im Quick Sight-Datensatz enthält die folgenden Informationen:
Abbildung 1: Datensatzzeile für die Route JFK-LAX, verschlüsselt über route_id
Das Feld route_id wird verwendet, um den Quick Sight-Datensatz mit der GeoJSON-Datei zu verknüpfen. Die GeoJSON-Datei enthält ein solches Feature pro Route, und der Datensatz eine Zeile pro Route. Der zu visualisierende Geometry-Typ ist auf Lines eingestellt.
Abbildung 2: Die Route JFK-LAX als LineString-Layer dargestellt
Beispiel: Point-Layer
Betrachten Sie Beispieldaten, die den Standort eines Einzelhandelsgeschäfts wie Long Island City zeigen. Die GeoJSON-Struktur für einen einzelnen Datenpunkt ist wie folgt konfiguriert:
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [-73.9490, 40.7447]
},
"properties": { "store_id": "S-109" }
}
Die entsprechende Zeile im Quick Sight-Datensatz enthält die folgenden Informationen:
Abbildung 3: Datensatzzeile für ein Geschäft, verschlüsselt über store_id
Das Feld store_id wird verwendet, um den Quick Sight-Datensatz mit der GeoJSON-Datei zu verknüpfen. Die GeoJSON-Datei enthält ein solches Feature pro Geschäft, und der Datensatz eine Zeile pro Geschäft. Der zu visualisierende Geometrietyp ist auf Points eingestellt.
Abbildung 4: Ein Geschäft als Point-Layer dargestellt
Linien in Layer-Map-Visuals
Layer-Map-Visuals unterstützen jetzt LineString -Geometrie, die eine geordnete Liste von Koordinaten zu einem einzigen Pfad verbindet. Wie im Abschnitt zur Datenstruktur behandelt, ist jede Route ein Feature, und ihre Koordinaten sind die geordneten Positionen, die die Karte der Reihe nach verbindet.
Verwenden Sie Linien, wenn die Beziehung zwischen Standorten das ist, was Sie darstellen möchten, z. B. Flugrouten, Lieferwege, Schifffahrtsrouten oder Pipelinensegmente. Das Visual zeichnet jeden Pfad aus den Koordinaten in Ihrer GeoJSON-Datei, anstatt ihn zur Ladezeit aus Ihren Daten zu generieren. Ein Feld aus Ihrem verknüpften Datensatz kann die Farb Codierung der Linie bestimmen, sodass Sie Routen nach dem gruppieren können, was dieses Feld darstellt. Zusätzlich zur Farbe können Sie Linien mit Steuerelementen für Breite und Deckkraft anpassen, um visuelle Prominenz und Klarheit auf der Karte zu optimieren. Der Join-Schlüssel im Eigenschaftenobjekt der GeoJSON-Datei verknüpft jeden LineString mit der Datensatzzeile, die hinter seinem Tooltip und seiner Farbe steht.
Beispielsweise könnte ein Flughafenbetriebsteam die Flüge abbilden, die an einem bestimmten Tag New York (JFK) verlassen. Die GeoJSON-Datei enthält einen LineString pro Route, verschlüsselt über eine Route-ID, die mit dem Datensatz verknüpft ist. Jede Linie beginnt am JFK und endet an ihrem Zielort, z. B. Los Angeles, Chicago oder Miami. Der Datensatz liefert den Ursprung, das Ziel und den Carrier, die im Tooltip angezeigt werden.
Abbildung 5: Flüge ab JFK als LineString-Routen zu mehreren Zielen dargestellt
Punkte in Layer-Map-Visuals
Amazon Quick Sight bietet einen nativen Punktkarten-Visualtyp , der Standortnamen automatisch geocodiert und mit Ihrem SPICE-Zeitplan oder Ihrer Direct Query-Verbindung aktualisiert wird. Er unterstützt dynamische Punktgrößen, Farb Codierung und Punktstile wie Cluster-Punkte und Heatmap-Dichteverläufe. Er funktioniert am besten mit Daten, die sich häufig ändern, und bei denen Sie möchten, dass die Karte visuell auf diese Änderungen reagiert.
Mit der zusätzlichen Unterstützung für GeoJSON-Punktlayer in Layer-Map-Visuals bietet Quick Sight nun eine zweite Punktkarten-Funktion mit einigen wesentlichen Unterschieden. Punkte in Layer-Map-Visuals verwenden eine einheitliche Markierungsgröße und unterstützen keine Geocodierung, daher geben Sie explizite Koordinaten in der GeoJSON-Datei an. Im Gegenzug können Sie den Viewport präzise steuern, die Karte auf eine exakte geografische Region festlegen sowie Schwenken und Zoomen deaktivieren.
Die folgende Tabelle fasst die wichtigsten Unterschiede zusammen:
| Feature | Punktkarte | Punkte in Layer-Map-Visuals |
| Datenquelle | Werte für Breiten-/Längengrad oder Geolokalisierungsnamen in Ihrem Datensatz | GeoJSON-Point-Features, die über einen gemeinsamen Schlüssel mit Ihrem Datensatz verknüpft sind |
| Geocodierung | Erkennt Stadt, Landkreis, Bundesland, Land und Postleitzahl automatisch | Nicht verfügbar. Es müssen explizite Koordinaten in der GeoJSON-Datei angegeben werden |
| Standortaktualisierungen | Die Zuordnung wird automatisch mit SPICE-Aktualisierungen oder Direct Query aktualisiert, wenn sich Standortwerte ändern | Das Visual verwendet eine statische GeoJSON-Datei für Punktstandorte. Zum Aktualisieren der Geometrie ist ein manuelles erneutes Hochladen oder ein API-Aufruf erforderlich |
| Viewport | Passt sich automatisch an Ihre Daten an, Schwenken und Zoomen sind immer aktiviert | Passt sich standardmäßig automatisch an, konfigurierbar, ob Schwenken und Zoomen erlaubt sind |
| Erscheinungsbild | Größe und Farbe können aus dem Datensatz kodiert werden. Punktstil-Konfiguration verfügbar (einfach, Cluster, Heatmap) | Anpassbare einheitliche Markgröße, Fülldeckkraft, Rahmenfarbe und -dicke. Farbe kann aus dem Datensatz kodiert werden |
Wählen Sie Layer-Map visuelle Punkte, wenn:
- Sie einen gesperrten, nicht scrollbaren Viewport benötigen.
- Ihre Standorte sind fest und kuratiert (z. B. regionale Büros, Distributionszentren, Filialen) und ändern sich nicht bei jeder Datenaktualisierung.
- Sie planen, Punkte mit anderen Geometrietypen zu kombinieren (im Abschnitt zu fortgeschrittenen Anwendungsfällen behandelt).
Betrachten Sie eine Einzelhandelsmarke, deren regionale Manager ein Quick Sight-Dashboard verwenden, um die Leistung der Filialen in einem Großraum zu verfolgen. Die GeoJSON-Datei enthält für jede Filiale ein Point-Feature mit einer Store-ID-Eigenschaft, die mit dem Datensatz verknüpft wird. Der Datensatz enthält die Metriken (Filialtyp, Monatsumsatz, tägliches Kundenaufkommen), die den Tooltip und die Farbcodierung steuern. Sie positionieren die Karte auf der Zoomstufe, die den Großraum abdeckt, und deaktivieren dann die Kartennavigation, damit die Karte bei jedem Laden eine konsistente Ansicht darstellt. Manager können nicht versehentlich zu einer nationalen oder globalen Ansicht herauszoomen.
Abbildung 6: Filialstandorte als Punkte mit deaktivierter Kartennavigation, um die Großraumansicht festzulegen
Fortgeschrittene Anwendungsfälle
Die vorherigen Abschnitte behandeln eine Standard-Einrichtung einer Ebenenkarte. Verwenden Sie die folgenden Techniken, wenn Sie mehr Kontrolle darüber benötigen, was Leser sehen, Geometrietypen in einer einzigen Ansicht kombinieren möchten oder Geometrien benötigen, die sich im Laufe der Zeit ändern.
Steuern des Viewports
Wenn Sie den Viewport in Ebenenkarten-Visualisierungen steuern möchten, können Sie manuell zur gewünschten Ansicht schwenken und zoomen. Deaktivieren Sie anschließend die Kartennavigation, um die Ansicht zu fixieren. Für Anwendungsfälle, die präzisere Grenzen oder programmatische Steuerung erfordern, können Sie die exakten Viewport-Koordinaten über die visuelle Definition mithilfe der Quick Sight-APIs festlegen.
Die Layer-Map-Visualisierung speichert ihre Viewport-Konfiguration in der MapState Eigenschaft innerhalb von ChartConfiguration. Diese Eigenschaft akzeptiert zwei Felder:
- Bounds: Die geografischen Koordinaten, die den minimal sichtbaren Bereich definieren (Nord, Süd, Ost, West).
- MapNavigation:
ENABLEDoderDISABLED, um zu steuern, ob Leser schwenken und zoomen können.
Obwohl die bounds-Eigenschaft nicht in der Konsole verfügbar ist, können Sie diese Grenzen festlegen, wenn Sie mit der Dashboard-Definitions-JSON für die programmatische Verwaltung von Assets arbeiten. Um beispielsweise die Grenzen zu definieren, ändern Sie den MapState Block in der visuellen Definition und rufen Sie dann die CreateDashboard - oder UpdateDashboard -APIs auf.
Die Grenzen definieren den minimalen Bereich, der garantiert sichtbar ist. Die Karte zoomt, um sicherzustellen, dass dieser gesamte Bereich in den Visualisierungscontainer passt. Für die engste Passung mit minimalem zusätzlichem Platz auf der Karte should das Seitenverhältnis Ihrer Grenzen an die Form Ihres Visualisierungscontainers angleichen.
Schichten von Geometrien
Für Anwendungsfälle, die die Kombination mehrerer Geometrietypen in einer einzigen Ansicht erfordern, können Sie Visualisierungen übereinander legen. Beispielsweise zeigt der folgende Screenshot die Darstellung von Kundenstandorten als Punkte innerhalb regionaler Grenzen der USA, die durch Polygone definiert sind. Diese Komposition zeigt, welche Gebiete die höchste Kundendichte aufweisen, und kann zur Korrelation mit anderen im Datensatz vorhandenen Metriken wie der Leistung verwendet werden.
Abbildung 7: Kundenpunkte, die innerhalb polygonaler regionaler Grenzen gelegt sind
Dieses zweite Beispiel zeigt die Kombination von Punkten als Haltestellen entlang eines Lieferpfads. Der LineString zeichnet die geplante Route, und Point-Features markieren jede geplante Haltestelle entlang des Weges.
Abbildung 8: Eine als LineString gezeichnete Lieferroute mit Point-Markern für jede Haltestelle
Um Geometrien zu schichten, stapeln Sie mehrere Layer-Map-Visualisierungen übereinander, indem Sie diese Schritte befolgen:
- Verwenden Sie das freie Layout: Ändern Sie die Sheet-Layout-Einstellung auf frei damit sich Visuals überlappen und stapeln können.
- Erstellen Sie zwei Ebenenkarten-Visuals: Erstellen Sie die beiden Ebenenkarten-Visuals, die Sie zu einer einzelnen Ansicht kombinieren, z. B. eines mit einer Point-GeoJSON-Datei und eines mit einer LineString-GeoJSON-Datei.
- Verwenden Sie übereinstimmende Grenzen: Vergewissern Sie sich mit dem zuvor beschriebenen Ansatz zur Steuerung des Viewports, dass alle Ebenenkarten-Visuals identische Grenzen verwenden, um dieselbe zugrunde liegende Kartenansicht zu erhalten.
- Deaktivieren Sie Schwenken und Zoomen: Deaktivieren Sie für jedes Ebenenkarten-Visual unter Map options das Schwenken und Zoomen, damit die Ausrichtung gleich bleibt.
- Blenden Sie die Basiskarte und den Hintergrund auf der oberen Ebene aus: Stellen Sie den Hintergrund des oberen Visuals unter Display settings auf ausgeblendet ein und deaktivieren Sie die Basiskarte unter Map options.
- Stapeln Sie die Visuals: Verschieben Sie das obere Visual per Drag-and-drop auf die Basisebene oder durch Abgleich der exakten Koordinaten für Größe und Position unter Display settings.
Die Reihenfolge der Ebenen folgt der Stapelreihenfolge der Visuals im Freiform-Layout. Um die Position eines Visuals im Stapel zu ändern, wählen Sie das Menüsymbol (drei Punkte) auf dem Visual und dann Send backward oder Bring forward. Leser können auf das Tooltip des obersten Visuals zugreifen, platzieren Sie daher die Ebene, aus der Leser Details benötigen, oben. Jedes Sheet unterstützt bis zu fünf Ebenenkarten-Visuals.
Dynamisch aktualisierende GeoJSON-Daten
Anders als bei anderen Quick Sight-Visuals, bei denen Daten über SPICE oder Direct Query aktualisiert werden, befinden sich die Geometrie der Ebenenkarte in der GeoJSON-Datei selbst. Wenn Ihr Dataset planmäßig aktualisiert wird, werden die Metriken aktualisiert (z. B. ändern sich Farben und Tooltip-Werte), aber die Geometrie bleibt an ihrer ursprünglichen Position.
Um zu aktualisieren, was auf der Karte angezeigt wird, wie z. B. eine neue Route, neue Punktpositionen oder aktualisierte Grenzen, müssen Sie die GeoJSON-Datei aktualisieren und das Dashboard neu veröffentlichen. Sie können eine GeoJSON-Datei manuell über die Quick Sight Konsole ersetzen, indem Sie das Layer-Map-Visual in der Analyse bearbeiten und eine neue Datei hochladen. Dies eignet sich für unregelmäßige Änderungen, wie z. B. die quartalsweise Aktualisierung von Gebietsgrenzen oder das Hinzufügen eines neuen Standorts.
Für automatisierte, bedarfsgesteuerte oder dynamische Aktualisierungen umfasst der Prozess Amazon Simple Storage Service (Amazon S3) und die Quick Sight APIs, die in den folgenden 3 Schritten beschrieben werden:
- Laden Sie die neue GeoJSON-Datei zu Amazon S3 hoch: Erzeugen Sie Ihre aktualisierte Geometrie und speichern Sie sie in einem Amazon S3 -Bucket. Eigene Lösungen können andere AWS-Services wie Amazon Location Service verwenden, um die GeoJSON-Dateien zu erstellen.
- Verweisen Sie in der Dashboard-Definition auf die Datei: Die Dashboard-Definition enthält ein StaticFiles -Array mit einem
SpatialStaticFile-Eintrag für jede GeoJSON-Datei. Ändern Sie den Dateiverweis auf den S3-Speicherort Ihrer aktualisierten Datei für den Eintrag jeder GeoJSON-Datei. - Rufen Sie die UpdateDashboard API auf: Übermitteln Sie die aktualisierte Definition mit dem neuen Dateiverweis über die UpdateDashboard -API.
- Rufen Sie die UpdateDashboardPublishedVersion API auf: Veröffentlichen Sie die Änderung, damit sie für Dashboard-Leser sichtbar ist, über die UpdateDashboardPublishedVersion -API.
Das folgende 3. Beispiel verwendet dieses Muster, um bedarfsgesteuerte Kartenaktualisierungen in einem eingebetteten Dashboard zu unterstützen, um optimale Routen zwischen Standorten und Wegpunkten zu berechnen. Obwohl dies über den Umfang dieses Beitrags hinausgeht, stellt es einen fortgeschrittenen Anwendungsfall dar, der jeden der vorherigen Ansätze kombiniert.
Abbildung 9: Bedarfsgesteuerte Routengenerierung in einem eingebetteten Dashboard
Fazit
In diesem Beitrag haben wir gezeigt, wie Sie Point- und LineString-Geometrie in Amazon Quick Sight Layer Maps verwenden können, um bestimmte Standorte und die Routen zwischen ihnen darzustellen. Wir haben die GeoJSON-Struktur und den Dataset-Join behandelt, die Layer Maps benötigen, und Layer-Map-Punkte mit der nativen Punktkarte verglichen. Wir haben auch fortgeschrittene Techniken durchlaufen, darunter die Steuerung des Viewports, das Überlagern separater Visuals in einer Ansicht und die Aktualisierung von GeoJSON-Dateien mit Amazon S3 und den Quick Sight APIs.
Um mehr über Layered Maps zu erfahren, lesen Sie die Amazon Quick Sight Dokumentation zu Layered Maps. Besuchen Sie die Amazon Quick Community , um sich mit Gleichgesinnten auszutauschen und über die neuesten Funktionen und Ressourcen auf dem Laufenden zu bleiben.