Auf dieser Seite

MapQuickItem QML Type

Der Typ „MapQuickItem“ zeigt ein beliebiges „ Qt Quick “-Objekt auf einer Karte an. Mehr...

Import Statement: import QtLocation 6.12
Since: QtLocation 5.5

Eigenschaften

Ausführliche Beschreibung

Der Typ „MapQuickItem“ wird verwendet, um ein beliebiges „ Qt Quick “-Objekt an einer bestimmten Position und in einer bestimmten Größe auf einer Karte zu platzieren. Im Gegensatz zu einem Element, das frei über der Karte schwebt, folgt ein „MapQuickItem“ den Verschiebungen (und optional auch den Zoomvorgängen) der Karte, als befände es sich auf der Kartenoberfläche.

Die Eigenschaft „ sourceItem “ enthält das zu zeichnende „ Qt Quick “-Element, bei dem es sich um einen beliebigen sichtbaren Typ handeln kann.

Positionierung und Größenanpassung

Die Positionierung des „MapQuickItem“ auf der Karte wird durch zwei Eigenschaften gesteuert: „ coordinate “ und „ anchorPoint “. Wenn nur „ coordinate “ festgelegt ist, gibt dies eine Längen- und Breitengradkoordinate an, an der das Element platziert werden soll. Die festgelegte Koordinate richtet sich bei der Darstellung auf dem Bildschirm nach der oberen linken Ecke des enthaltenen Elements.

Die Eigenschaft „ anchorPoint “ bietet die Möglichkeit, die Koordinate nicht nur an der oberen linken Ecke, sondern auch an anderen Stellen des Elements auszurichten, indem eine Anzahl von Pixeln festgelegt wird, um die das Element versetzt werden soll. Einfach ausgedrückt bedeutet dies: Der durch „ anchorPoint “ angegebene Punkt auf dem Element selbst ist der Punkt, der bei der Anzeige mit dem angegebenen „ coordinate “ übereinstimmt.

Zusätzlich zur Verankerung auf der Karte kann das `MapQuickItem` optional dem Maßstab der Karte folgen und seine Größe ändern, wenn die Karte vergrößert oder verkleinert wird. Dieses Verhalten wird durch die Eigenschaft ` zoomLevel ` gesteuert. Ist „ zoomLevel “ nicht festgelegt, wird das Element standardmäßig „auf dem Bildschirm“ statt „auf der Karte“ gezeichnet, sodass seine Größe unabhängig vom Zoomfaktor der Karte gleich bleibt.

Leistung

Die Leistung eines „MapQuickItem“ liegt normalerweise in etwa auf dem Niveau des darin enthaltenen „ Qt Quick “-Elements allein. Der zusätzliche Overhead ergibt sich aus der Verschiebung und (möglicherweise) Skalierung des ursprünglichen Elements sowie aus der Umrechnung von Längen- und Breitengraden in Bildschirmpositionen.

Einschränkungen

Hinweis: Aufgrund eines Implementierungsdetails verfügen Elemente, die in einem „MapQuickItem“ platziert sind, über ein „ parent “-Element, das nicht mit dem „MapQuickItem“ identisch ist. Verweisen Sie auf das „MapQuickItem“ über dessen „ id “ und vermeiden Sie die Verwendung von „ anchor “ im „ sourceItem “.

Anwendungsbeispiel

Der folgende Codeausschnitt zeigt ein `MapQuickItem`, das ein `Image`-Objekt enthält, um einen Marker auf der Karte anzuzeigen. Diese Strategie wird verwendet, um die Kartenmarker im `MapViewer`-Beispiel darzustellen.

MapQuickItem {
    id: marker
    anchorPoint.x: image.width/4
    anchorPoint.y: image.height

    HoverHandler {
        id: hoverHandler
    }
    TapHandler {
        id: tapHandler
        acceptedButtons: Qt.RightButton
        gesturePolicy: TapHandler.WithinBounds
        onTapped: {
            mapview.currentMarker = -1
            for (var i = 0; i< mapview.markers.length; i++){
                if (marker == mapview.markers[i]){
                    mapview.currentMarker = i
                    break
                }
            }
            mapview.showMarkerMenu(marker.coordinate)
        }
    }
    DragHandler {
        id: dragHandler
        grabPermissions: PointerHandler.CanTakeOverFromItems | PointerHandler.CanTakeOverFromHandlersOfDifferentType
    }

    sourceItem: Image {
        id: image
    }
}

Markierung, die auf einer Karte als tropfenförmige Stecknadel dargestellt wird

Dokumentation der Eigenschaften

anchorPoint : point

Diese Eigenschaft legt fest, welcher Punkt auf der „ sourceItem “ mit der Koordinate auf der Karte abgeglichen wird.

autoFadeIn : bool

Diese Eigenschaft legt fest, ob das Element automatisch eingeblendet wird, wenn die Karte ausgehend von sehr niedrigen Zoomstufen vergrößert wird. Standardmäßig ist diese Eigenschaft auf „ true “ gesetzt. Wenn diese Eigenschaft auf „ false “ gesetzt wird, weist das Kartenelement stets die mit der Eigenschaft „ QtQuick::Item::opacity “ festgelegte Deckkraft auf, die standardmäßig 1,0 beträgt.

coordinate : coordinate

Diese Eigenschaft enthält die Ankerkoordinate des „ MapQuickItem “. Der Punkt auf dem „ sourceItem “, der durch „ anchorPoint “ festgelegt wird, wird beim Zeichnen auf der Karte an dieser Koordinate ausgerichtet.

In der folgenden Abbildung sind drei „MapQuickItems“ dargestellt, die bis auf den Wert ihrer „ anchorPoint “-Eigenschaft identisch sind. Die Werte von „ anchorPoint “ für jedes Element sind über dem jeweiligen Element angegeben.

Drei Markierungen auf einer Karte, die die Auswirkungen verschiedener Ankerpunkte veranschaulichen

sourceItem : object

Diese Eigenschaft enthält das Quellelement, das auf der Karte dargestellt wird.

zoomLevel : real

Diese Eigenschaft steuert das Skalierungsverhalten der Inhalte von MapQuickItem. Insbesondere lässt sich durch die Einstellung dieser Eigenschaft wählen, ob Objekte auf dem Bildschirm gezeichnet werden (und ihre Größe in Bildschirmpixeln angegeben wird) oder auf der Kartenoberfläche (wobei sich ihre Größe mit dem Zoomfaktor der Karte ändert).

Der Standardwert für diese Eigenschaft ist 0,0, was der Darstellung des Objekts auf der Bildschirmoberfläche entspricht. Wird ein anderer Wert festgelegt, wird das Objekt stattdessen auf der Kartenoberfläche dargestellt. Der Wert (sofern er nicht Null ist) gibt den ZoomLevel an, bei dem das Objekt im Maßstab 1:1 sichtbar ist (d. h., bei dem Objektpixel und Bildschirmpixel identisch sind). Bei Zoomstufen unterhalb dieses Wertes erscheint das Objekt kleiner, bei höheren Zoomstufen hingegen größer. Dies steht im Gegensatz zur Einstellung dieser Eigenschaft auf Null, bei der das Objekt bei allen Zoomstufen auf dem Bildschirm dieselbe Größe behält.

© 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.