Sur cette page

MapQuickItem QML Type

Le type MapQuickItem permet d'afficher un objet Qt Quick arbitraire sur une carte. Plus d'informations...

Import Statement: import QtLocation 6.11
Since: QtLocation 5.5

Propriétés

Description détaillée

Le type MapQuickItem est utilisé pour placer un objet Qt Quick arbitraire sur une carte à un emplacement et une taille spécifiés. Contrairement à un objet flottant au-dessus de la carte, un MapQuickItem suivra le panoramique (et éventuellement le zoom) de la carte comme s'il était sur la surface de la carte.

La propriété sourceItem contient l'élément Qt Quick à dessiner, qui peut être de n'importe quel type visible.

Positionnement et dimensionnement

Le positionnement de l'élément MapQuickItem sur la carte est contrôlé par deux propriétés : coordinate et anchorPoint. Si seule la propriété coordinate est définie, elle spécifie une coordonnée de longitude/latitude à laquelle l'élément doit être placé. La coordonnée définie s'alignera sur le coin supérieur gauche de l'élément contenu lorsqu'il sera affiché à l'écran.

La propriété anchorPoint permet d'aligner les coordonnées sur d'autres parties de l'élément que le coin supérieur gauche, en définissant un nombre de pixels de décalage pour l'élément. Une façon simple d'y penser est de noter que le point donné par anchorPoint sur l'élément lui-même est le point qui s'alignera sur le point donné coordinate lorsqu'il sera affiché.

En plus d'être ancré à la carte, l'élément MapQuickItem peut optionnellement suivre l'échelle de la carte et changer de taille lorsque la carte est zoomée ou dézoomée. Ce comportement est contrôlé par la propriété zoomLevel. Par défaut, si la propriété zoomLevel n'est pas définie, l'élément est dessiné "à l'écran" plutôt que "sur la carte", de sorte que sa taille reste la même quel que soit le niveau de zoom de la carte.

Performances

Les performances d'un MapQuickItem sont normalement du même ordre que celles de l'élément Qt Quick qu'il contient. Les frais généraux ajoutés correspondent à une traduction et (éventuellement) à une mise à l'échelle de l'élément original, ainsi qu'à une transformation de la longitude et de la latitude en position à l'écran.

Limitations

Remarque : en raison d'un détail de mise en œuvre, les éléments placés à l'intérieur d'un MapQuickItem auront un élément parent qui n'est pas le MapQuickItem. Faites référence à l'élément MapQuickItem par son adresse id et évitez d'utiliser anchor dans l'adresse sourceItem.

Exemple d'utilisation

L'extrait suivant montre un MapQuickItem contenant un objet Image, pour afficher un marqueur sur la carte. Cette stratégie est utilisée pour afficher les marqueurs de la carte dans l'exemple MapViewer.

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

Documentation sur les propriétés

anchorPoint : point

Cette propriété détermine le point du site sourceItem qui sera aligné sur les coordonnées de la carte.

autoFadeIn : bool

Cette propriété indique si l'élément s'estompe automatiquement lorsque l'on zoome sur la carte à partir d'un niveau de zoom très bas. La valeur par défaut est true. Si vous attribuez la valeur false à cette propriété, l'élément de la carte aura toujours l'opacité spécifiée par la propriété QtQuick::Item::opacity, qui est de 1,0 par défaut.

coordinate : coordinate

Cette propriété contient la coordonnée d'ancrage de MapQuickItem. Le point de sourceItem spécifié par anchorPoint est aligné sur cette coordonnée lorsqu'il est dessiné sur la carte.

Dans l'image ci-dessous, il y a 3 MapQuickItems qui sont identiques à l'exception de la valeur de leurs propriétés anchorPoint. Les valeurs de pour chacun sont écrites en haut de l'élément. Les valeurs de anchorPoint pour chacun d'entre eux sont écrites au-dessus de l'élément.

sourceItem : object

Cette propriété contient l'élément source qui sera dessiné sur la carte.

zoomLevel : real

Cette propriété contrôle la mise à l'échelle du contenu du site MapQuickItem. En particulier, en définissant cette propriété, il est possible de choisir entre les objets qui sont dessinés à l'écran (et dont la taille est exprimée en pixels) et ceux qui sont dessinés sur la surface de la carte (dont la taille change en fonction du niveau de zoom de la carte).

La valeur par défaut de cette propriété est 0.0, ce qui correspond au dessin de l'objet sur la surface de l'écran. Si elle prend une autre valeur, l'objet sera dessiné sur la surface de la carte. La valeur (si elle est différente de zéro) spécifie le niveau de zoom auquel l'objet sera visible à une échelle de 1:1 (c'est-à-dire lorsque les pixels de l'objet et les pixels de l'écran sont identiques). À des niveaux de zoom inférieurs à cette valeur, l'objet apparaîtra plus petit, et à des niveaux de zoom supérieurs, il apparaîtra plus grand. En revanche, lorsque cette propriété est fixée à zéro, l'objet conserve la même taille à l'écran quel que soit le niveau de zoom.

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