Sur cette page

Qt Location Plugin OpenStreetMap

Présentation

Ce plugin de services géographiques permet aux applications d'accéder aux services de localisation d'OpenStreetMap à l'aide de l'API Qt Location.

Les données, les images et les informations cartographiques sont fournies par ThunderForest, OpenStreetMap et leurs contributeurs. Les données sont disponibles sous licence Open Database License.

Le plugin de géoservices OpenStreetMap peut être chargé à l'aide de la clé de plugin « osm ».

Remarque : les types de cartes standard s'appuient (en partie) sur des fournisseurs de données libres. Nous nous efforçons de proposer une sélection utile à des fins d’évaluation et de développement, mais il vous appartient de choisir un fournisseur de données adapté à vos besoins en production. Il est fortement recommandé de lire attentivement et de respecter les conditions d’utilisation des fournisseurs concernés. Une liste de fournisseurs de données alternatifs est disponible sur le wiki d’OpenStreetMap. Les types de cartes disponibles proposés par ce plugin peuvent être modifiés (ou supprimés) sans préavis en fonction de la disponibilité effective d’un fournisseur viable et librement accessible pour chaque type. Cela implique également que des fournisseurs proposant des tuiles via HTTPS peuvent être utilisés. Cela devient pertinent lors de l’utilisation du plugin OSM sur des plateformes, telles qu’Android, pour lesquelles la prise en charge SSL n’est pas intégrée par défaut dans Qt. Pour éviter ces changements, il convient soit d’utiliser un autre plugin de services géographiques, soit de définir le paramètre du plugin `osm.mapping.providersrepository.address ` sur un référentiel spécifié par l’utilisateur, afin de contrôler entièrement le choix du fournisseur utilisé pour chaque type de carte. Depuis Qt 5.9.6, le point de terminaison Nominatim par défaut, utilisé pour le géocodage et les lieux, fonctionne également exclusivement via HTTPS.

Paramètres

Paramètres facultatifs

Le tableau suivant répertorie les paramètres optionnels pouvant être transmis au plugin OpenStreetMap.

Remarque : depuis Qt 5.5, tous les paramètres ci-dessous doivent être préfixés par osm. Les versions antérieures ne nécessitaient pas de préfixe.

ParamètreDescription
osm.geocoding.hostChaîne URL à utiliser lors des requêtes réseau vers le serveur de géocodage. Ce paramètre doit être défini sur une URL de serveur valide utilisant l'API OSM appropriée. S'il n'est pas spécifié, l'URL par défaut sera utilisée.

Remarque : la documentationde l'API est disponible sur le site du projet OSM Nominatim.

osm.geocoding.debug_queryIndique au plugin d'injecter l'URL de la requête adressée à Nominatim dans la réponse de géocodage, à des fins de débogage.
osm.geocoding.include_extended_dataIndique au plugin d'inclure des informations spécifiques à Nominatim (telles que la géométrie et la classe) dans les objets Location renvoyés, exposées sous forme d'extendedAttributes.
osm.mapping.cache.directoryChemin absolu vers le répertoire de cache des tuiles cartographiques utilisé comme cache sur disque réseau.

Par défaut, le cache se trouve dans le sous-répertoire ` QtLocation/osm ` de l'emplacement renvoyé par la fonction ` QStandardPaths::writableLocation()`, appelée avec ` QStandardPaths::GenericCacheLocation ` comme paramètre. Sur les systèmes ne prenant pas en charge le concept de cache partagé, le répertoire spécifique à l'application ` QStandardPaths::CacheLocation ` est utilisé à la place.

osm.mapping.cache.disk.cost_strategyStratégie de coût à utiliser pour mettre en cache les tuiles de carte sur le disque. Les valeurs valides sont « bytesize » et « unitary ». Avec « bytesize », le paramètre de taille associé (osm.mapping.cache.disk.size) sera interprété en octets. Avec « unitary », il sera interprété en nombre de tuiles. La valeur par défaut de ce paramètre est « bytesize ».
osm.mapping.cache.disk.sizeTaille du cache disque pour les tuiles de carte. La taille par défaut du cache est de 50 Mio lorsque la stratégie de coût « bytesize » est utilisée pour ce cache, ou de 1 000 tuiles lorsque la stratégie de coût « unitary » est utilisée.
osm.mapping.cache.memory.cost_strategyStratégie de coût à utiliser pour mettre en cache les tuiles de carte en mémoire. Les valeurs valides sont « bytesize » et « unitary ». Avec « bytesize », le paramètre de taille associé (osm.mapping.cache.memory.size) sera interprété en octets. Avec « unitary », il sera interprété en nombre de tuiles. La valeur par défaut de ce paramètre est « bytesize ».
osm.mapping.cache.memory.sizeTaille du cache mémoire pour les tuiles de carte. La taille par défaut du cache est de 3 Mio lorsque « bytesize » est la stratégie de coût pour ce cache, ou de 100 tuiles lorsque « unitary » est la stratégie de coût.
osm.mapping.cache.texture.cost_strategyStratégie de coût à utiliser pour mettre en cache les tuiles de carte décompressées en mémoire. Les valeurs valides sont « bytesize » et « unitary ». Avec « bytesize », le paramètre de taille associé (osm.mapping.cache.texture.size) sera interprété en octets. Avec « unitary », il sera interprété en nombre de tuiles. La valeur par défaut de ce paramètre est « bytesize ».
osm.mapping.cache.texture.sizeTaille du cache de textures pour les tuiles de carte. La taille par défaut du cache est de 6 Mio lorsque « bytesize » est la stratégie de coût pour ce cache, ou de 30 tuiles lorsque « unitary » est la stratégie de coût. Notez que le cache de textures a une taille minimale fixe qui dépend de la taille de la fenêtre d’affichage de la carte (il doit contenir suffisamment de données pour afficher les tuiles actuellement visibles à l’écran). Cette valeur correspond à la quantité de cache à utiliser en plus du strict minimum.
osm.mapping.custom.datacopyrightLa chaîne de texte de copyright des données personnalisées est utilisée lorsque l’ Map::activeMapType est définie sur MapType.CustomMap via le paramètre urlprefix. Ce copyright ne sera utilisé que lors de l’utilisation de la CustomMap mentionnée ci-dessus. Si ce champ est vide, aucun copyright ne sera affiché pour la carte personnalisée.
osm.mapping.custom.hostChaîne URL d'un serveur de tuiles personnalisé. Ce paramètre doit être défini sur une URL de serveur valide proposant l'API OSM appropriée. Le suffixe « %z/%x/%y.png » sera ajouté à l'URL. Depuis la version 6.5, ce suffixe n'est plus ajouté si l'URL se termine par « .png ». Si le serveur nécessite une clé API, celle-ci doit être ajoutée à la chaîne d’URL. Pour utiliser ce serveur, le paramètre ` Map::activeMapType ` de ` Map ` doit être défini sur le type de carte pris en charge dont le type est ` MapType.CustomMap`. Ce type de carte n’est disponible que si ce paramètre du plugin est défini, auquel cas il correspond toujours à ` Map::supportedMapTypes[supportedMapTypes.length - 1]`.

Remarque : la configuration du paramètre `mapping.custom.host` sur un nouveau serveur rend le cache des tuiles de carte inutilisable pour l'ancien style de carte personnalisée.

osm.mapping.custom.mapcopyrightLa chaîne de copyright de la carte personnalisée est utilisée lorsque l’ Map::activeMapType est défini sur MapType.CustomMap via le paramètre urlprefix. Ce copyright ne sera utilisé que lors de l’utilisation de la carte personnalisée mentionnée ci-dessus. Si ce champ est vide, aucun copyright ne sera affiché pour la carte personnalisée.
osm.mapping.highdpi_tilesIndique s’il faut ou non demander des tuiles haute résolution (high dpi). Les valeurs valides sont « true » et « false ». La valeur par défaut est « false ». Veuillez noter que tous les types de cartes ne sont pas disponibles en haute résolution. Définir ce paramètre sur « true » peut même ne produire aucun effet si aucun type de carte n’est disponible en haute résolution pour le moment. Les fichiers d’informations des fournisseurs pour les tuiles haute résolution sont nommés street-hires, satellite-hires, cycle-hires, transit-hires, night-transit-hires, terrain-hires et hiking-hires. Ceux-ci sont récupérés à partir du même emplacement que celui utilisé pour leurs équivalents en basse résolution.
osm.mapping.offline.directoryChemin absolu vers un répertoire contenant les tuiles cartographiques utilisées comme stockage hors ligne. Si cette propriété est spécifiée, elle fonctionnera conjointement avec le cache sur disque réseau, mais les tuiles ne seront pas automatiquement ajoutées, supprimées ou mises à jour. Le format des tuiles est le même que celui utilisé par le cache du disque réseau. Il n’y a pas de valeur par défaut, et si cette propriété n’est pas définie, aucun répertoire ne sera indexé et seul le cache du disque réseau sera utilisé pour réduire l’utilisation du réseau ou pour servir de stockage hors ligne aux tuiles actuellement mises en cache.
osm.mapping.prefetching_styleCe paramètre permet de fournir une indication sur la manière dont le moteur doit effectuer la prélecture des tuiles. La valeur par défaut, ` TwoNeighbourLayers`, fait en sorte que le moteur prélecte les tuiles de la couche située au-dessus et de celle située en dessous de la couche de tuiles actuelle, fournissant ainsi des tuiles prêtes à l’emploi lors d’un zoom avant ou arrière par rapport au niveau de zoom actuel. ` OneNeighbourLayer ` ne prélecte que la couche la plus proche du niveau de zoom actuel. Enfin, NoPrefetching permet de désactiver la prélecture, de sorte que seules les tuiles visibles seront récupérées. Notez que, selon le type de carte actif, cette indication peut être ignorée.
osm.mapping.providersrepository.addressLe plugin OpenStreetMap récupère les informations du fournisseur à partir d’un référentiel distant. Cela permet d’éviter d’utiliser par défaut des serveurs codés en dur, qui pourraient devenir indisponibles. Par défaut, ces informations sont récupérées depuis maps-redirect.qt.io. La configuration de ce paramètre permet de remplacer l’adresse du référentiel du fournisseur par une adresse spécifiée par l’utilisateur, qui doit contenir les fichiers street, satellite, cycle, transit, night-transit, terrain et hiking, chacun devant contenir des informations valides sur le fournisseur.
osm.mapping.providersrepository.disabledPar défaut, le plugin OpenStreetMap récupère les informations du fournisseur à partir d’un référentiel distant afin d’éviter toute interruption de service due à l’indisponibilité des services codés en dur. Le plugin contient toutefois toujours des données de secours codées en dur, au cas où le référentiel du fournisseur deviendrait inaccessible. En définissant ce paramètre sur « true », le plugin utilise uniquement les URL codées en dur et ne récupère donc plus les données du fournisseur à partir du référentiel distant.
osm.places.debug_queryDéfinissez ce paramètre sur « true » pour que chaque résultat comporte un attribut étendu nommé « requestUrl », contenant l'URL utilisée pour la requête. La valeur par défaut est « false ».
osm.places.hostChaîne d’URL définie lors de l’envoi de requêtes réseau au serveur Places. Ce paramètre doit être défini sur une URL de serveur valide utilisant l’API OSM appropriée. S’il n’est pas spécifié, l’URL par défaut sera utilisée.

Remarque : la documentation de l'API est disponible sur Project OSM Nominatim.

osm.places.page_sizeNombre de résultats par page. Notez que cette valeur peut être limitée côté serveur. Le maximum habituel dans les instances Nominatim standard est de 50.
osm.routing.apiversionChaîne de caractères définissant la version de l'API du serveur OSRM (personnalisé). Les valeurs valides sont v4 et v5. La valeur par défaut est v5. Ce paramètre ne doit être défini que si osm.routing.host est activé et qu'il s'agit d'un serveur OSRM v4.
osm.routing.hostChaîne URL à utiliser lors des requêtes réseau vers le serveur de routage. Ce paramètre doit être défini sur une URL de serveur valide avec l’API OSRM appropriée. S’il n’est pas spécifié, l’URL par défaut sera utilisée.

Remarque : la documentation et les sources de l'API sont disponibles sur Project OSRM.

osm.useragentChaîne d'agent utilisateur définie lors de l'envoi de requêtes réseau. Ce paramètre doit être défini sur une valeur identifiant de manière unique l'application. Notez que certains fournisseurs peuvent bloquer les applications qui ne définissent pas ce paramètre, le laissant alors à la valeur par défaut de l'agent utilisateur du plugin (par exemple, Nominatim pour le géocodage).

Exemple d’utilisation des paramètres

L'exemple suivant montre comment créer une instance de plugin OSM avec les paramètres fournis pour un agent utilisateur et, si nécessaire, une URL de serveur personnalisée ainsi que les informations de droits d'auteur correspondantes pour le fournisseur de tuiles. De plus, il est possible de choisir un serveur de routage autre que le serveur public OSRM.

QML

Plugin {
    name: "osm"
    PluginParameter { name: "osm.useragent"; value: "My great Qt OSM application" }
    PluginParameter { name: "osm.mapping.host"; value: "http://osm.tile.server.address/" }
    PluginParameter { name: "osm.mapping.copyright"; value: "All mine" }
    PluginParameter { name: "osm.routing.host"; value: "http://osrm.server.address/viaroute" }
    PluginParameter { name: "osm.geocoding.host"; value: "http://geocoding.server.address" }
}

Autres informations spécifiques au plugin

Cache de tuiles

Les tuiles sont mises en cache dans le répertoire « QtLocation/osm » situé dans « QStandardPaths::writableLocation » (QStandardPaths::GenericCacheLocation). Sur les systèmes ne disposant pas de cache partagé, le répertoire spécifique à l’application « QStandardPaths::CacheLocation » est utilisé à la place.

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