Sur cette page

MapQuickItem QML Type

Le type `MapQuickItem` permet d'afficher un objet ` Qt Quick ` quelconque sur une carte. En savoir plus...

Import Statement: import QtLocation 6.12
Since: QtLocation 5.5

Propriétés

Description détaillée

Le type MapQuickItem permet de placer un objet Qt Quick quelconque sur une carte, à un emplacement et avec une taille spécifiés. Contrairement à un élément flottant au-dessus de la carte, un MapQuickItem suit les mouvements de panoramique (et, éventuellement, de zoom) de la carte, comme s'il se trouvait à la surface de celle-ci.

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

Positionnement et dimensionnement

Le positionnement du 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 des coordonnées de longitude et de latitude pour l’emplacement de l’élément. Les coordonnées définies s’aligneront avec le coin supérieur gauche de l’élément contenu lorsqu’il s’affichera à 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 de l’élément. Pour simplifier, il suffit de noter que le point défini par anchorPoint sur l’élément lui-même est celui qui s’alignera avec les coordonnées coordinate indiquées lors de l’affichage.

En plus d’être ancré sur la carte, le `MapQuickItem` peut, si vous le souhaitez, suivre l’échelle de la carte et changer de taille lorsque l’on effectue un zoom avant ou arrière sur la carte. 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 identique quel que soit le niveau de zoom de la carte.

Performances

Les performances d’un MapQuickItem sont généralement comparables à celles de l’élément Qt Quick qu’il contient seul. Les surcoûts s’élèvent à une translation et (éventuellement) à une mise à l’échelle de l’élément d’origine, ainsi qu’à une transformation des coordonnées de longitude et de latitude en position à l’écran.

Limitations

Remarque : en raison d’un détail d’implémentation, les éléments placés à l’intérieur d’un MapQuickItem auront pour élément « parent » un élément autre que le MapQuickItem lui-même. Référencez le MapQuickItem par son id et évitez d’utiliser anchor dans l’ sourceItem.

Exemple d'utilisation

L'extrait de code suivant montre un MapQuickItem contenant un objet Image, afin d'afficher un marqueur sur la carte. Cette stratégie est utilisée pour afficher les marqueurs de 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
    }
}

Marqueur représenté sous la forme d'un repère en forme de larme sur une carte

Documentation des propriétés

anchorPoint : point

Cette propriété permet de déterminer quel point de l'sourceItem sera aligné avec la coordonnée indiquée sur la carte.

autoFadeIn : bool

Cette propriété détermine si l'élément apparaît progressivement lorsque l'on effectue un zoom avant sur la carte à partir de niveaux de zoom très faibles. Par défaut, la valeur est « true ». Si vous définissez cette propriété sur « false », 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 les coordonnées d'ancrage de l'élément « MapQuickItem ». Le point situé sur l'élément « sourceItem » et défini par la propriété « anchorPoint » reste aligné sur ces coordonnées lors de son affichage sur la carte.

Dans l'image ci-dessous, on trouve 3 MapQuickItems identiques, à l'exception de la valeur de leur propriété « anchorPoint ». Les valeurs de « anchorPoint » de chacun d'entre eux sont indiquées au-dessus de l'élément.

Trois repères sur une carte illustrant l'effet de différents points d'ancrage

sourceItem : object

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

zoomLevel : real

Cette propriété contrôle le comportement de mise à l'échelle du contenu de l'MapQuickItem. Plus précisément, en définissant cette propriété, il est possible de choisir entre des objets dessinés à l'écran (et dont la taille est exprimée en pixels d'écran) et ceux dessinés sur la surface de la carte (dont la taille varie en fonction du niveau de zoom de la carte).

La valeur par défaut de cette propriété est 0,0, ce qui correspond à l’affichage de l’objet sur la surface de l’écran. Si une autre valeur est définie, l’objet sera alors affiché sur la surface de la carte. La valeur (si elle n’est pas nulle) spécifie le niveau de zoom (zoomLevel) auquel l’objet sera visible à l’échelle 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 à celui-ci, l’objet apparaîtra plus petit, et à des niveaux de zoom supérieurs, il apparaîtra plus grand. Cela contraste avec le cas où cette propriété est définie sur zéro, où 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.