Auf dieser Seite

Karten und Navigation (QML)

„Karten und Navigation“ stellt QtQuick Benutzeroberflächen-Typen zur Verfügung, um geografische Informationen auf einer Karte darzustellen und die Interaktion des Benutzers mit Kartenüberlagerungsobjekten sowie der Anzeige selbst zu ermöglichen. Es enthält außerdem Hilfsfunktionen für die Geokodierung (Ermittlung geografischer Koordinaten anhand einer Straßenadresse) und die Navigation (einschließlich Wegbeschreibungen für Autofahrer und Fußgänger).

Um eine Navigation durchzuführen, benötigen wir „ routes“ vom Startpunkt zum Ziel. Diese Routen bestehen aus Segmenten, wobei jede „ routeSegment “ als eine Teilaufgabe der Navigation betrachtet werden kann; zum Beispiel „100 Meter fahren“ oder „links abbiegen“. Der Anfang und das Ende jedes Segments sind Wegpunkte, also einzelne Abschnitte der Strecke.

Ein typischer Anwendungsfall für die API ist ein Nutzer, der nach einer bestimmten Art von Ort sucht, beispielsweise einem Restaurant; der Nutzer gibt einen Suchbegriff in die Kartenanwendung ein und erhält eine Liste mit Ergebnissen für Restaurants „in der Nähe“ des Geräts. Die Anwendung kann dann genutzt werden, um zum ausgewählten Ziel zu navigieren – über eine Route, die entsprechend den Merkmalen der Umgebung optimiert ist, die die Fahrt unterstützen oder behindern können. Die Navigation wird fortgesetzt, wobei der Fortschritt des Nutzers anhand des aktuellen Standorts überwacht wird.

Die Typen bauen auf den API-Konzepten und Typen der QML-Positionierungs-API auf. Eine praxisorientierte Einführung in die Typen für Karten und Navigation finden Sie im Tutorial zu Karten und Navigation.

Karten

Anzeigen von Karten

Die Anzeige einer Karte erfolgt mithilfe der QML-Typen „ Map “. Der Typ „Map“ unterstützt die Benutzerinteraktion über den QML-Typ „ MapView “. Das „Map“-Objekt zeichnet die Karte mithilfe von OpenGL (ES) auf dem Bildschirm und ermöglicht so, sofern verfügbar, eine hardwarebeschleunigte Darstellung.

Wichtige Typen

PluginEin Plugin für standortbasierte Dienste stellt Daten bereit, darunter Kartendaten, die dann in einem „Map“-Objekt angezeigt werden.
MapQtQuick Element zur Darstellung einer Karte auf dem Bildschirm.
MapViewInteraktionshilfe für Schwenk-, Wisch- und Pinch-to-Zoom-Gesten auf einer Karte.

Beachten Sie, dass der Client vor der Verwendung eines „ Map “-Typs ein „ Plugin “-Objekt erstellen muss, um Zugriff auf die anzuzeigenden Kartendaten zu erhalten.

Objekte auf einer Karte platzieren (Kartenüberlagerungsobjekte)

Karten können auch Kartenüberlagerungsobjekte enthalten, die zur Anzeige von Informationen auf der Kartenoberfläche dienen. Es gibt eine Reihe vordefinierter grundlegender Kartenüberlagerungsobjekte sowie die Möglichkeit, benutzerdefinierte Kartenüberlagerungsobjekte mithilfe des Typs „ MapQuickItem “ zu implementieren, die jedes beliebige Standard-„ QtQuick “-Element enthalten können.

Wichtige Typen

MapCircleEin geographischer Kreis (alle Punkte in einem festgelegten Abstand vom Mittelpunkt), optional mit einer Umrandung.
MapRectangleEin Rechteck, dessen linker oberer und rechter unterer Punkt als „ geoCoordinate “-Typen angegeben werden, optional mit einer Umrandung.
MapPolygonEin Polygon, das aus einer beliebigen Liste von „ coordinates “ besteht.
MapPolylineEine Polylinie, die aus einer beliebigen Liste von „ coordinates “ besteht.
MapQuickItemWandelt jedes beliebige „ QtQuick “-Element in ein Kartenüberlagerungsobjekt um. „ MapQuickItem “ ermöglicht die Festlegung benutzerdefinierter Kartenüberlagerungsobjekte.

Modell-Ansicht-Entwurf mit Kartenüberlagerungsobjekten

Um Kartenüberlagerungsobjekte automatisch auf der Grundlage des Inhalts eines „ QtQuick “-Modells (beispielsweise eines „ ListModel “-Elements) zu generieren, steht der Typ „ MapItemView “ zur Verfügung. Er akzeptiert jedes beliebige Kartenüberlagerungsobjekt als Delegat und kann nur innerhalb eines „ Map “ erstellt werden.

Schlüsseltypen

MapItemViewFüllt eine Karte mit Kartenüberlagerungsobjekten auf der Grundlage der von einem Modell bereitgestellten Daten.

Interaktion mit Kartenüberlagerungsobjekten

Eigenschaften von Kartenüberlagerungsobjekten, die deren Darstellung auf dem Bildschirm beeinflussen, können jederzeit geändert werden, und viele davon lassen sich auch in Animationen verwenden. Die Animation von koordinatenbasierten Kartenüberlagerungsobjekten wie „ MapPolygon “ und „ MapPolyline “ ist derzeit noch nicht verfügbar.

Geokodierung – Von der Adresse zu den Koordinaten und umgekehrt

Geokodierung ist die Umwandlung von geografischen Koordinaten in Adressen oder umgekehrt. Eine solche Umwandlung erfolgt in der Regel durch das Senden der Quelldaten an einen Server, der dann die Umwandlung durchführt und die Ergebnisse zurückgibt, obwohl einige Anbieter standortbasierter Dienste plugins möglicherweise bestimmte Geokodierungsfunktionen bereitstellen können, ohne Daten an einen Remote-Server zu senden. Die Verfügbarkeit und Genauigkeit der Umwandlung hängt in der Regel vom zu übersetzenden Ort oder der zu übersetzenden Adresse ab, da verschiedene Gebiete der Erde mit unterschiedlicher Genauigkeit kartiert sind.

Eine Geokodierungsabfrage in QML wird mithilfe des Typs „ GeocodeModel “ durchgeführt. Bei einer Abfrage vom Typ „Adresse zu Koordinaten“ kann die Eigenschaft „ query “ entweder auf ein „ Address “-Objekt oder auf eine Zeichenkette gesetzt werden, die die textuelle Form der zu suchenden Adresse enthält. Um den umgekehrten Vorgang durchzuführen, kann dieselbe Eigenschaft stattdessen auf ein „ geoCoordinate “-Objekt gesetzt werden. Die Ergebnisse werden im Inhalt des Modells bereitgestellt.

Schlüsseltypen

PluginEin Plugin für standortbasierte Dienste stellt Daten bereit, darunter Geokodierungsergebnisse, die den Clients über einen „ GeocodeModel “ zur Verfügung gestellt werden.
GeocodeModelFragt das Plugin nach Geokodierungsergebnissen ab und ermöglicht den Zugriff auf die Ergebnisse über Indizes im Modell.
AddressStrukturierte Adresse zur Verwendung in Abfragen und Ergebnissen der Geokodierung.

Beachten Sie, dass der Client vor der Verwendung eines „ GeocodeModel “-Objekts ein „ Plugin “-Objekt erstellen muss. Dadurch wird der Zugriff auf Geokodierungsdienste und somit auf die anzuzeigenden Daten ermöglicht.

Routing und Navigation

Routing ist die Ermittlung einer befahrbaren Route von einem Punkt zu einem anderen auf einer Karte. Ausgehend von einer Karte, die Merkmale berücksichtigt, die die Navigation unterstützen oder behindern – wie Brücken, Wasserwege und so weiter –, lässt sich eine Abfolge von Segmenten konstruieren, aus denen sich die Route zusammensetzt. Sind diese „ routeSegments“ einfach, können wir an den Verbindungspunkten, den „ routeManeuvers“, zwischen den Segmenten Navigationsinformationen hinzufügen.

Wichtige Typen

routeDer gesamte zu navigierende Weg.
routeSegmentDie einzelnen Bestandteile einer Route.
routeManeuverDie Navigationsinformationen, die Segmente miteinander verbinden.
RouteModelDie Mittel, um im Backend Anfragen zur Bereitstellung von Routeninformationen zu stellen.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.