Sur cette page

Qt Location Plugin Open Street Map

Vue d'ensemble

Ce plugin de géoservices permet aux applications d'accéder aux services de localisation d'Open Street Map à l'aide de l'API Qt Location.

Les données, l'imagerie et les informations cartographiques sont fournies par ThunderForest, OpenStreetMap et les contributeurs. Les données sont disponibles sous la licence Open Database License.

Le plugin Open Street Map geo services peut être chargé en utilisant la clé de plugin "osm".

Remarque : les types de cartes standard reposent sur des fournisseurs de données (partiellement) gratuits. Nous essayons de faire en sorte que la sélection soit utile à des fins d'évaluation et de développement, mais il est de votre responsabilité de sélectionner un fournisseur de données qui corresponde à vos besoins en production. Il est fortement recommandé de lire attentivement et d'adhérer aux conditions de service des fournisseurs respectifs. Une liste de fournisseurs de données alternatifs est disponible sur le wiki OpenStreetMap. Les types de cartes proposés par ce plugin peuvent changer (ou être supprimés) sans préavis en fonction de la disponibilité réelle d'un fournisseur viable et librement accessible pour chaque type. Cela implique également que les fournisseurs servant 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 le support SSL n'est pas intégré par défaut dans Qt. Pour éviter ces changements, soit un plugin de service géographique différent doit être utilisé, soit le paramètre du plugin osm.mapping.providersrepository.address doit être défini sur un référentiel spécifié par l'utilisateur, afin de prendre le contrôle total sur la sélection 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, est également passé à HTTPS uniquement.

Paramètres

Paramètres optionnels

Le tableau suivant liste les paramètres optionnels qui peuvent être passés au plugin Open Street Map.

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

ParamètreDescription du paramètre
osm.geocoding.hostChaîne d'URL définie lors des requêtes réseau adressées au serveur de géocodage. Ce paramètre doit être défini sur une url de serveur valide avec l'API OSM correcte. S'il n'est pas spécifié, l'url par défaut sera utilisée.

Note : La documentation de l'API est disponible sur le site Project OSM Nominatim.

osm.geocoding.debug_queryIndique au plugin d'injecter l'url de la requête vers nominatim dans la réponse du géocodage, à des fins de débogage.
osm.geocoding.include_extended_dataIndique au plugin d'inclure des informations spécifiques au nominatim (telles que la géométrie et la classe) dans les objets Location renvoyés, exposés en tant qu'extendedAttributes.
osm.mapping.cache.directoryChemin absolu vers le répertoire de cache des tuiles de la carte utilisé comme cache du disque réseau.

L'emplacement par défaut du cache est le sous-répertoire QtLocation/osm dans l'emplacement renvoyé par QStandardPaths::writableLocation(), appelé avec QStandardPaths::GenericCacheLocation comme paramètre. Sur les systèmes qui n'ont pas de concept de cache partagé, le répertoire QStandardPaths::CacheLocation, spécifique à l'application, est utilisé à la place.

osm.mapping.cache.disk.cost_strategyStratégie de coût à utiliser pour mettre en cache les tuiles de la carte sur le disque. Les valeurs valides sont bytesize et unitary. En utilisant bytesize, le paramètre de taille associé(osm.mapping.cache.disk.size) sera interprété comme des octets. En utilisant unitary, ils seront interprétés comme un 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 la carte. La taille par défaut du cache est de 50 MiB lorsque bytesize est la stratégie de coût pour ce cache, ou 1000 tuiles, lorsque unitary est la stratégie de coût.
osm.mapping.cache.memory.cost_strategyStratégie de coût à utiliser pour mettre en cache les tuiles de la carte en mémoire. Les valeurs valides sont bytesize et unitary. En utilisant bytesize, le paramètre de taille associé(osm.mapping.cache.memory.size) sera interprété comme des octets. En utilisant unitary, ils seront interprétés comme un 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 la carte. La taille par défaut du cache est de 3 MiB lorsque bytesize est la stratégie de coût pour ce cache, ou 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 décompressées de la carte en mémoire. Les valeurs valides sont bytesize et unitary. En utilisant bytesize, le paramètre de taille associé(osm.mapping.cache.texture.size) sera interprété comme des octets. En utilisant unitary, ils seront interprétés comme un nombre de tuiles. La valeur par défaut de ce paramètre est bytesize.
osm.mapping.cache.texture.sizeTaille du cache de texture pour les tuiles de la carte. La taille par défaut du cache est de 6 MiB 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 texture a une taille minimale qui dépend de la taille de la fenêtre de visualisation de la carte (il doit contenir suffisamment de données pour afficher les tuiles actuellement visibles sur l'écran). Cette valeur est la quantité de cache à utiliser en plus du strict minimum.
osm.mapping.custom.datacopyrightLa chaîne de droits d'auteur des données personnalisées est utilisée lors de la définition de Map::activeMapType à MapType.CustomMap via le paramètre urlprefix. Ce copyright ne sera utilisé que lors de l'utilisation du CustomMap ci-dessus. S'il est vide, aucun copyright de données ne sera affiché pour la carte personnalisée.
osm.mapping.custom.hostLa chaîne d'url d'un serveur de tuiles personnalisé. Ce paramètre doit être défini sur une url de serveur valide offrant l'API OSM correcte. Le postfixe "%z/%x/%y.png" sera ajouté à l'url. Depuis la version 6.5, le postfixe ne sera pas ajouté si l'url se termine par ".png". Si le serveur nécessite une clé d'accès, celle-ci doit être ajoutée à la chaîne d'url. Pour utiliser ce serveur, le paramètre Map::activeMapType de la commande 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 s'agit toujours de Map::supportedMapTypes[supportedMapTypes.length - 1].

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

osm.mapping.custom.mapcopyrightLa chaîne de droits d'auteur de la carte personnalisée est utilisée lors de la définition de Map::activeMapType à MapType.CustomMap via le paramètre urlprefix. Ce copyright ne sera utilisé que lors de l'utilisation de la carte personnalisée ci-dessus. S'il est vide, aucun copyright ne sera affiché pour la carte personnalisée.
osm.mapping.highdpi_tilesDemande ou non des tuiles à haute résolution. 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. La définition de ce paramètre à true peut même n'avoir aucun effet si aucun type de carte n'est disponible en haute résolution pour le moment. Les fichiers d'informations sur les 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. Ils sont récupérés au même endroit que ceux utilisés pour les tuiles à faible résolution.
osm.mapping.offline.directoryChemin absolu vers un répertoire contenant des tuiles de cartes utilisées comme stockage hors ligne. S'il est spécifié, il fonctionnera avec le cache disque du réseau, mais les tuiles ne seront pas automatiquement inséré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 pour les tuiles actuellement mises en cache.
osm.mapping.prefetching_styleCe paramètre permet de fournir une indication sur la manière dont le moteur de cartographie doit procéder à l'extraction préalable des tuiles. La valeur par défaut, TwoNeighbourLayers, permet au moteur de prélever les tuiles de la couche supérieure et de la couche inférieure à la couche de tuiles actuelle, ce qui permet de disposer de tuiles prêtes à l'emploi lorsque l'on effectue un zoom avant ou arrière à partir du niveau de zoom actuel. OneNeighbourLayer ne prélève que la couche la plus proche du niveau de zoom actuel. Enfin, NoPrefetching permet de désactiver la recherche préalable, de sorte que seules les tuiles visibles seront recherché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 dépôt distant. Cela permet d'éviter d'utiliser des serveurs codés en dur par défaut, qui pourraient devenir indisponibles. Par défaut, ces informations sont récupérées à partir de maps-redirect.qt.io. En définissant ce paramètre, l'adresse du référentiel des fournisseurs est remplacée par une adresse spécifiée par l'utilisateur, qui doit contenir les fichiers street, satellite, cycle, transit, night-transit, terrain et hiking, chacun d'entre eux 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 dépôt distant afin d'éviter une perte de service due à l'indisponibilité des services codés en dur. Cependant, le plugin contient toujours des données de fournisseur codées en dur, au cas où le référentiel du fournisseur deviendrait inaccessible. En définissant ce paramètre à true, le plugin n'utilise que les urls codées en dur et empêche donc le plugin d'aller chercher les données des fournisseurs dans le référentiel distant.
osm.places.debug_queryMettre ce paramètre à true pour avoir un attribut étendu dans chaque résultat nommé "requestUrl", et 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 requêtes réseau vers le serveur de lieux. Ce paramètre doit correspondre à une url de serveur valide avec l'API OSM correcte. S'il n'est pas spécifié, l'url par défaut sera utilisée.

Note : La documentation de l'API est disponible sur le site Project OSM Nominatim.

osm.places.page_sizeLe nombre de résultats dans une page. Notez que cette valeur peut être limitée côté serveur. Le maximum typique dans les instances standard de nominatim est de 50.
osm.routing.apiversionChaîne 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 défini et qu'il s'agit d'un serveur OSRM v4.
osm.routing.hostChaîne d'URL définie lors des requêtes réseau adressées au serveur de routage. Ce paramètre doit être défini sur une url de serveur valide avec l'API OSRM correcte. 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 le site Project OSRM.

osm.useragentChaîne de l'agent utilisateur définie lors des requêtes réseau. Ce paramètre doit être défini sur une valeur qui identifie l'application de manière unique. Il convient de noter que les fournisseurs peuvent bloquer les applications qui ne définissent pas ce paramètre, laissant cette tâche à l'agent utilisateur du plugin stock (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 des paramètres fournis pour un agent utilisateur et, si nécessaire, une url de serveur personnalisée ainsi que les informations de copyright correspondantes pour le fournisseur de tuiles. En outre, il est possible de choisir un autre serveur de routage 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 des tuiles

Les tuiles sont mises en cache dans un répertoire QtLocation/osm dans QStandardPaths::writableLocation (QStandardPaths::GenericCacheLocation). Sur les systèmes qui n'ont pas de concept de cache partagé, l'application spécifique QStandardPaths::CacheLocation est utilisée à 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.