Sur cette page

GeocodeModel QML Type

Le type `GeocodeModel` permet d'effectuer des opérations de recherche liées aux informations géographiques. En savoir plus...

Import Statement: import QtLocation 6.12
Since: QtLocation 5.5

Propriétés

Signaux

Méthodes

Description détaillée

Le type GeocodeModel est utilisé dans le cadre d’un regroupement modèle/vue pour associer des adresses ou des chaînes de recherche à des emplacements géographiques. L’utilisation ou l’affichage des emplacements géographiques générés est déterminé par les vues associées au GeocodeModel (par exemple, MapItemView ou ListView).

À l’instar de Map et RouteModel, toutes les données nécessaires au fonctionnement d’un GeocodeModel proviennent d’un plugin de services. Celles-ci sont contenues dans la propriété plugin, qui doit être définie avant que le GeocodeModel ne puisse effectuer aucune opération utile.

Une fois le plugin configuré, la propriété query peut être utilisée pour spécifier l'adresse ou la chaîne de recherche à faire correspondre. Si autoUpdate est activé, le modèle mettra automatiquement à jour son résultat. Sinon, la méthode update peut être utilisée. Par défaut, autoUpdate est désactivé.

Les données stockées et renvoyées dans le GeocodeModel sont constituées d’objets ` Location `, sous la forme d’une liste portant le nom de rôle « locationData ». Consultez la documentation relative à ` Location ` pour plus de détails sur sa structure et son contenu.

Exemple d'utilisation

L'extrait de code suivant se compose de deux parties : il présente d'abord la déclaration des objets, puis un court extrait de code procédural les utilisant. Nous définissons la propriété ` autoUpdate ` du `geocodeModel` sur `false`, puis appelons ` update ` une fois la requête configurée. Dans ce cas, comme nous utilisons une valeur de type chaîne de caractères dans ` query`, une seule mise à jour aurait lieu, même si l'option « autoUpdate » est activée. Cependant, si nous fournissions un objet ` Address `, nous risquerions de déclencher par inadvertance plusieurs requêtes lors de la définition de ses propriétés.

Plugin {
    id: aPlugin
}

GeocodeModel {
    id: geocodeModel
    plugin: aPlugin
    autoUpdate: false
}
{
    geocodeModel.query = "53 Brandl St, Eight Mile Plains, Australia"
    geocodeModel.update()
}

Documentation sur les propriétés

autoUpdate : bool

Cette propriété détermine si le modèle se met automatiquement à jour en réponse aux modifications apportées à la requête qui lui est associée. La valeur par défaut de cette propriété est « false ».

Si vous définissez cette valeur sur « true » et que vous utilisez une adresse ou une requête de type « geoCoordinate » comme requête, notez que la moindre modification des propriétés de l'objet déclenchera l'envoi d'une nouvelle requête. Si vous modifiez de nombreuses propriétés de l'objet alors que la fonction autoUpdate est activée, cela peut générer un grand nombre de requêtes inutiles (qui seront ensuite ignorées).

bounds : geoShape

Cette propriété contient la zone de délimitation utilisée pour restreindre les résultats à ceux situés à l'intérieur de cette zone. Cela s'avère particulièrement utile lorsque la requête n'est que partiellement renseignée, car le service tentera de géocoder (en sens inverse) toutes les correspondances pour les données spécifiées.

Les types acceptés sont « geoRectangle » et « geoCircle ».

count : int [read-only]

Cette propriété indique le nombre d'emplacements dont dispose actuellement le modèle. Vous pouvez notamment utiliser cette valeur lorsque vous accédez aux emplacements via la méthode GeocodeModel::get.

error : enumeration [read-only]

Cette propriété en lecture seule contient la dernière valeur d'erreur de la requête de géocodage.

  • GeocodeModel.NoError - Aucune erreur ne s'est produite.
  • GeocodeModel.CombinationError - Une erreur s'est produite lors de la combinaison des résultats provenant de plusieurs sources.
  • GeocodeModel.CommunicationError - Une erreur s'est produite lors de la communication avec le fournisseur de services.
  • GeocodeModel.EngineNotSetError - La propriété « plugin » du modèle n'a pas été définie ou aucun gestionnaire de géocodage n'est associé au plugin.
  • GeocodeModel.MissingRequiredParameterError - Un paramètre obligatoire n'a pas été spécifié.
  • GeocodeModel.ParseError - La réponse du fournisseur de services était dans un format non reconnaissable.
  • GeocodeModel.UnknownError - Une erreur s'est produite qui n'entre dans aucune des autres catégories.
  • GeocodeModel.UnknownParameterError - Le plugin n'a pas reconnu l'un des paramètres qui lui a été fourni.
  • GeocodeModel.UnsupportedOptionError - L'opération demandée n'est pas prise en charge par le fournisseur de géocodage. Cela peut se produire lorsque le moteur chargé ne prend pas en charge une requête de géocodage particulière, telle que le géocodage inverse.

errorString : string [read-only]

Cette propriété en lecture seule contient la description textuelle de la dernière erreur de géocodage. Si aucune erreur ne s'est produite ou si le modèle a été réinitialisé, une chaîne vide est renvoyée.

Une chaîne vide peut également être renvoyée si une erreur s'est produite pour laquelle il n'existe pas de représentation textuelle associée.

limit : int

Cette propriété détermine le nombre maximal de résultats. Les valeurs « limit » et « offset » ne s'appliquent qu'au géocodage par chaîne de caractères libre (c'est-à-dire qu'elles ne sont pas prises en compte lorsque la requête de recherche utilise des adresses ou des coordonnées).

Si la valeur de « limit » est égale à -1, l'ensemble complet des résultats sera renvoyé ; dans le cas contraire, le nombre maximal de résultats, défini par « limit », sera renvoyé. Les résultats « limit » et « offset » peuvent être utilisés conjointement pour mettre en place une pagination.

offset : int

Cette propriété indique de ne pas renvoyer les premiers résultats correspondant au nombre « offset ». Les valeurs « limit » et « offset » ne s'appliquent qu'au géocodage par chaîne de caractères libre (c'est-à-dire qu'elles ne sont pas prises en compte lorsque la requête de recherche utilise des adresses ou des coordonnées).

Les résultats « limit » et « offset » peuvent être utilisés conjointement pour mettre en place une pagination.

plugin : Plugin

Cette propriété désigne le plugin qui fournit le service de géocodage proprement dit. Notez que tous les plugins ne proposent pas nécessairement le géocodage (ils peuvent, par exemple, ne fournir que des services de calcul d'itinéraire ou de cartographie).

Voir également Plugin.

query : QVariant

Cette propriété contient les données de la requête de géocodage. Elle accepte trois types de requêtes qui déterminent à la fois les données et le type d'action à effectuer :

  • Adresse - Géocodage (adresse vers coordonnées)
  • geoCoordinate - Géocodage inversé (de coordonnées en adresse)
  • chaîne de caractères - Géocodage (adresse vers coordonnées)

status : enumeration [read-only]

Cette propriété en lecture seule contient l'état actuel du modèle.

  • GeocodeModel.Null : aucune requête de géocodage n'a été émise ou la méthode ` reset ` a été appelée.
  • GeocodeModel.Ready : la ou les requêtes de géocodage se sont terminées avec succès.
  • GeocodeModel.Loading : une requête de géocodage a été envoyée mais n’est pas encore terminée
  • GeocodeModel.Error : une erreur de géocodage s'est produite ; les détails se trouvent dans ` error ` et errorString

dans la documentation de Signal.

locationsChanged()

Ce signal est émis lorsque des emplacements du modèle ont été modifiés.

Remarque : le gestionnaire correspondant est onLocationsChanged.

Voir également count.

Documentation des méthodes

void cancel()

Annule toutes les requêtes en attente et efface les erreurs. L'état du modèle sera défini soit sur « GeocodeModel.Null », soit sur « GeocodeModel.Ready ».

Location get(int index)

Renvoie l'Location à l'index indiquée. Utilisez la propriété count pour vérifier le nombre d'emplacements disponibles. Les emplacements sont indexés à partir de zéro ; la plage accessible va donc de 0 à (count - 1).

Si vous accédez à un emplacement hors limites, un zéro (objet nul) est renvoyé et un avertissement est émis.

void reset()

Réinitialise le modèle. Toutes les données de localisation sont effacées, les requêtes en cours sont annulées et les erreurs éventuelles sont effacées. L'état du modèle sera défini sur « GeocodeModel.Null ».

void update()

Demande à l'GeocodeModel e de mettre à jour ses données. Cette fonction est particulièrement utile lorsque l'option « autoUpdate » est désactivée, afin de forcer une actualisation lorsque la requête a été modifiée.

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