MapQuickItem QML Type

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

Import Statement: import QtLocation 6.8
Since: QtLocation 5.5

Eigenschaften

Detaillierte Beschreibung

Der Typ MapQuickItem wird verwendet, um ein beliebiges Qt Quick Objekt an einer bestimmten Stelle und in einer bestimmten Größe auf einer Karte zu platzieren. Im Vergleich zu einem über der Karte schwebenden Element folgt ein MapQuickItem dem Schwenken (und optional dem Zoomen) der Karte, als ob es sich auf der Kartenoberfläche befände.

Die Eigenschaft sourceItem enthält das zu zeichnende Element Qt Quick, das von jeder Art von sichtbarem Typ sein kann.

Positionierung und Größenbestimmung

Die Positionierung des MapQuickItems auf der Karte wird durch zwei Eigenschaften gesteuert: coordinate und anchorPoint. Wenn nur coordinate gesetzt ist, wird eine Längen-/Breitengrad-Koordinate angegeben, an der das Element platziert werden soll. Die eingestellte Koordinate stimmt mit der oberen linken Ecke des enthaltenen Elements überein, wenn es auf dem Bildschirm angezeigt wird.

Die Eigenschaft anchorPoint bietet eine Möglichkeit, die Koordinate mit anderen Teilen des Elements als nur der linken oberen Ecke auszurichten, indem eine Anzahl von Pixeln festgelegt wird, um die das Element versetzt wird. Eine einfache Möglichkeit, darüber nachzudenken, besteht darin, dass der durch anchorPoint angegebene Punkt auf dem Element selbst der Punkt ist, 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. Wenn zoomLevel nicht gesetzt ist, wird das Element standardmäßig "auf dem Bildschirm" und nicht "auf der Karte" gezeichnet, so dass seine Größe unabhängig von der Zoomstufe der Karte gleich bleibt.

Leistung

Die Leistung eines MapQuickItems liegt normalerweise in der gleichen Größenordnung wie die des enthaltenen Qt Quick Elements allein. Die hinzugefügten Kosten belaufen sich auf eine Übersetzung und (möglicherweise) Skalierung des ursprünglichen Elements sowie auf eine Umwandlung von Längen- und Breitengraden in die Bildschirmposition.

Beschränkungen

Hinweis: Aufgrund eines Implementierungsdetails haben Elemente, die innerhalb eines MapQuickItems platziert werden, ein parent Element, das nicht das MapQuickItem ist. Beziehen Sie sich auf das MapQuickItem durch seine id, und vermeiden Sie die Verwendung von anchor in der sourceItem.

Beispielverwendung

Das folgende Snippet zeigt ein MapQuickItem, das ein Image-Objekt enthält, um einen Marker auf der Karte anzuzeigen. Diese Strategie wird verwendet, um die Kartenmarkierungen im MapViewer-Beispiel anzuzeigen.

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
    }
}

Eigenschaft Dokumentation

anchorPoint : QPointF

Diese Eigenschaft bestimmt den Punkt auf sourceItem, der mit der Koordinate auf der Karte ausgerichtet wird.


autoFadeIn : bool

Diese Eigenschaft legt fest, ob der Punkt automatisch eingeblendet wird, wenn von sehr niedrigen Zoomstufen aus in die Karte gezoomt wird. Standardmäßig ist dies true. Wenn Sie diese Eigenschaft auf false setzen, hat das Kartenelement immer die mit der Eigenschaft QtQuick::Item::opacity festgelegte Deckkraft, die standardmäßig 1,0 beträgt.


coordinate : coordinate

Diese Eigenschaft enthält die Ankerkoordinate von MapQuickItem. Der Punkt auf sourceItem, der durch anchorPoint angegeben ist, wird beim Zeichnen auf der Karte an dieser Koordinate ausgerichtet.

In der folgenden Abbildung gibt es 3 MapQuickItems, die bis auf den Wert ihrer anchorPoint -Eigenschaften identisch sind. Die Werte von anchorPoint für jedes Element sind oben auf dem Element angegeben.


sourceItem : object

Diese Eigenschaft enthält das Quellelement, das auf der Karte gezeichnet werden soll.


zoomLevel : real

Diese Eigenschaft steuert das Skalierungsverhalten des Inhalts von MapQuickItem. Insbesondere ist es durch die Einstellung dieser Eigenschaft möglich, zwischen Objekten zu wählen, die auf dem Bildschirm gezeichnet werden (und deren Größe in Bildschirmpixeln angegeben wird), und solchen, die auf der Kartenoberfläche gezeichnet werden (und deren Größe sich mit der Zoomstufe der Karte ändert).

Der Standardwert für diese Eigenschaft ist 0.0, was dem Zeichnen des Objekts auf der Bildschirmoberfläche entspricht. Wird ein anderer Wert eingestellt, wird das Objekt stattdessen auf der Kartenoberfläche gezeichnet. Der Wert (wenn er nicht Null ist) gibt den zoomLevel an, bei dem das Objekt bei einem Maßstab von 1:1 sichtbar ist (d. h., bei dem Objektpixel und Bildschirm-Pixel gleich sind). Bei niedrigeren Zoomstufen erscheint das Objekt kleiner, bei höheren Zoomstufen größer. Wenn diese Eigenschaft auf Null gesetzt ist, bleibt das Objekt auf dem Bildschirm in allen Zoomstufen gleich groß.


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