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és | Nom/clé unique du plugin. Chaque plugin GeoService doit posséder un nom unique. |
| Fournisseur | Nom 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érimental | Indique 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()`. |
| Version | Version 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és | Liste 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 :
- QGeoServiceProviderFactory::createGeocodingManagerEngine()
- QGeoServiceProviderFactory::createRoutingManagerEngine()
- QGeoServiceProviderFactory::createPlaceManagerEngine()
Si un plugin ne fournit pas de moteur, la fonction correspondante doit renvoyer ` nullptr`.
Interface et méthodes de commodité destinées aux développeurs de plugins QGeoServiceProvider souhaitant prendre en charge les opérations de géocodage | |
Interface et méthodes pratiques destinées aux développeurs de plugins QGeoServiceProvider souhaitant fournir un accès aux informations de routage géographique | |
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.