Sur cette page

Qt Location GeoServices

L'Qt Location fournit la plupart de ses fonctionnalités via des plugins GeoService. Ce document explique comment développer un nouveau plugin GeoService.

Description du plugin

Chaque plugin est décrit par un fichier JSON. Ce fichier décrit les capacités et la version du plugin. Voici un exemple de fichier JSON utilisé par le plugin OpenStreetMap :

{
    "Keys": ["osm"],
    "Provider": "osm",
    "Version": 100,
    "Experimental": false,
    "Features": [
        "OnlineMappingFeature",
        "OnlineGeocodingFeature",
        "ReverseGeocodingFeature",
        "OnlineRoutingFeature",
        "OnlinePlacesFeature"
    ]
}

Les entrées ont la signification suivante :

CléDescription
ClésNom/clé unique du plugin. Chaque plugin GeoService doit posséder un nom unique.
FournisseurNom du fournisseur des services. Plusieurs plugins peuvent porter le même nom. Dans ce cas, la chaîne « Version » sera utilisée pour distinguer davantage les plugins.
ExpérimentalIndique que le plugin de service est expérimental. Les développeurs d'API peuvent choisir d'ignorer ces plugins lors de l'instanciation de ` QGeoServiceProvider::QGeoServiceProvider()`.
VersionVersion du plugin. Si plusieurs plugins portent le même nom de fournisseur, c'est celui dont la version est la plus élevée qui sera utilisé.
FonctionnalitésListe des fonctionnalités fournies par le plugin/service. Chaque fonctionnalité est une représentation sous forme de chaîne des fonctionnalités correspondantes dans ` QGeoServiceProvider`. Pour plus de détails, voir ` QGeoServiceProvider::routingFeatures()`, ` QGeoServiceProvider::geocodingFeatures()` et ` QGeoServiceProvider::placesFeatures()`.

Implémentation des plugins

Un développeur de plugin doit créer une sous-classe de `QGeoServiceProviderFactory` et de toutes les classes `ManagerEngine` pour lesquelles il souhaite fournir des implémentations.

La création d’une sous-classe de `QGeoServiceProviderFactory` implique uniquement de redéfinir l’une des méthodes suivantes :

Si un plugin ne fournit pas de moteur, la fonction correspondante doit renvoyer ` nullptr`.

QGeoCodingManagerEngine

Interface et méthodes de commodité destinées aux développeurs de plugins QGeoServiceProvider souhaitant prendre en charge les opérations de géocodage

QGeoRoutingManagerEngine

Interface et méthodes pratiques destinées aux développeurs de plugins QGeoServiceProvider souhaitant fournir un accès aux informations de routage géographique

QPlaceManagerEngine

Interface destinée aux développeurs de plugins QGeoServiceProvider souhaitant fournir un accès aux fonctionnalités liées aux lieux

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