Intégrer un service WMTS de tuiles raster dans QGis 3 et Felt

WMTS c’est quoi? Un bon exemple de service WMTS est OpenStreetMap. Il consiste en une adresse à laquelle les programmes clients peuvent demander des images géolocalisées. Quand vous chargez OSM dans QGis, le programme se connecte au serveur OSM et lui demande les images nécessaires pour remplir votre fenêtre cartographique.

Il en existe deux types de services d’images géolocalisées: le WMS et le WMTS.

  • Les Web Map Service (WMS) : il s’agit d’un standard OGC de service web qui permet de produire dynamiquement des cartes à partir de images géoréférencées ; le serveur est alors sollicité à chaque requête d’un client pour générer une image correspondante à la fenêtre demandée,
  • Les Web Map Tiled Service (WMTS) : il s’agit d’un standard décrivant la manière de diffuser des données cartographiques sous forme de tuiles prédéfinies. Le client spécifie un niveau standard de zoom et les tuiles disponibles pour remplir la fenêtre demandée sont envoyées. Par rapport au WMS, le WMTS a pour avantage principal d’offrir de meilleures performances dans la diffusion de données cartographiques, les tuiles étant stockées en cache lors de la première génération.

Il en existe de plus en plus de services WMTS disponibles pour le grand public. Si OpenStreetMap est l’un des plus utilisés car disponible par défaut dans l’interface de QGis, si vous chargez le plugin Quick Map services, vous aurez une longue liste de services disponibles directement sur QGis. En ce qui concerne Felt, vous aurez par défaut seulement Mapbox et Stamen.

Mais que se soit Qgis ou Felt, vous pouvez intégrer le service WMTS de votre choix , à condition qu’il respecte un certain format de communication dénommé {xyz}.

Le format {XYZ}

Les services xyz obéissent à une norme sur la façon dont les tuiles doivent être demandées en fonction de 2 concepts : niveaux de zoom et coordonnées des tuiles.

Les niveaux de zoom définissent l’échelle de la carte. Au niveau de zoom 0, une projection Mercator entière de la terre est contenue dans une tuile de 256px par 256px:

À chaque niveau de zoom supplémentaire, le nombre de tuiles augmente d’un facteur de quatre et la résolution spatiale (mètres au sol par pixel) de chaque tuile double environ.

Le niveau de zoom (Z) le plus élevé dépend de l’application, au niveau de zoom 15 il y a plus d’un milliard de tuiles chacune avec une résolution spatiale de 4,77 mètres par pixel. Voici un exemple de tuile Z15 de Open Street Map.

À n’importe quel niveau de zoom donné, une tuile spécifique peut être identifiée par des coordonnées cartésiennes (XY) avec 0,0 commençant en haut à gauche de la carte.

Format de la demande

La structure d’une demande de tuile {XYZ} typique ressemble à ceci :

url/niveau-zoom/coordonnée-x/coordonnéé-y.png

Et voici un exemple qu’on suivra dans cet article

{z}/{x}/{y}.png

C’est cette ligne qu’il faut rentrer dans QGis ou Felt pour ajouter le service WMTS d’EDMOnet.

{Z}, le niveau de zoom, {x} et {y} les coordonnées des tuiles demandées, sont des variables que le logiciel demandeur (QGis ou Felt ) rempliront en fonction de la carte affichée. Tout le reste (tiles.emodnet-bathymetry.eu/2020/baselayer/web_mercator/) constitue l’URL d’accès aux tuiles.

Où trouver l’URL d’un serveur de tuiles?

Pour certains serveurs, c’est simple. Pour OpenStreetMap, sur la page https://wiki.openstreetmap.org/wiki/Raster_tile_providers vous trouvez les urls à utiliser pour les différentes cartes disponibles

Faites attention d’enlever le signe $ devant x,y, et z quand vous renseignerez l’url dans un logiciel.

Mais, souvent hélas, c’est un peu plus compliqué. Prenons notre bathymétrie mondiale d’EDMOnet. Quand vous accédez à la page avec les produits WMTS vous avez une liste:

Vous avez un lien URL correspondant au GetCapabilities du serveur. Cette page XML est obligatoire pour tout serveur WMTS, et liste toutes les caractéristiques du service ainsi que la ou les URL disponibles pour les tuiles. Malheureusement, c’est en langage XML et non une langue courante. Il va falloir le décrypter pour trouver notre URL recherchée.

Décrypter le Getcapabilities d’un serveur WMTS

On commence par copier coller l’url du getcapabilities sur notre navigateur. Pour la bathymétrie c’est

https://tiles.emodnet-bathymetry.eu/wmts/1.0.0/WMTSCapabilities.xml

On obtient alors la page XML demandée

La page fait des centaines de lignes. Mais voyons ce qui nous intéresse.Recherchez dans la page le texte ResourceURL format

Vous avez là le modèle de url à utiliser:

tiles.emodnet-bathymetry.eu/2020/baselayer/{TileMatrixSet}/{TileMatrix}/{TileCol}/{TileRow}.png

Pour ce qui est de {TileMatrix}/{TileCol}/{TileRow}, pas de souci, vous allez simplement les remplacer par {z}/{x}/{y}. Mais il y a une autre variable, {TileMatrixSet}, que vous devrez renseigner en dur dans votre URL. Pour savoir quelles sont les valeurs possibles, dans la fenêtre de recherche de texte sur la page, entrez <TileMatrixSet> et recherchez l’occurrence précédente (^). Vous trouverez les différentes valeurs que cette variable peut prendre:

Ce sont les différents systèmes de projection qui sont disponibles. Mis à par inspire_quad qui est une invention de lUE, les autres systèmes sont tous gérés par Qis et Felt. Vous pouvez choisir n’importe lequel, mais si vous voulez rester dans le classique, web_mercator fera bien l’affaire. On a donc notre URL constituée comme suit:

tiles.emodnet-bathymetry.eu/2020/baselayer/web_mercator/{z}/{x}/{y}.png

Si vous trouvez d’autres variables sur le modèle d’URL, suivez la même démarche pour trouver les valeurs acceptées. Il faudra remplacer toutes les variables autres que {z}/{x}/{y} par une valeur de votre choix.

Ajouter le serveur de tuiles dans QGis

Dans le panneau Explorateur cliquez droit sur XYZ Tiles -> Nouvelle connexion

Donnez un nom à votre connexion et dans Détails de la connexion entrez l’url

Vous aurez EMODNet sur la liste des serveurs de tuiles et vous pourrez le charger directement dans votre projet.

Ajouter le serveur de tuiles dans Felt

Dans Felt vous pouvez charger le serveur de tuiles en tant que fond de carte (background).

Cliquez sur le bouton Change Background en bas de la carte, puis sur le signe + (Add Background)

Sélectionnez l’onglet From URL, donnez un nom à votre connexion (Title) et rentrez l’URL dans le champ Tile URL

Dès que vous rentrez l’URL, vous devez voir, dans le carré Preview, un extrait de la couche. Si ce n’est pas le cas, votre URL comporte une erreur.

Cliquez sur Add Background et vous aurez le nouveau fond de carte sur votre carte.

Si cet article vous a intéressé et que vous pensez qu'il pourrait bénéficier à d'autres personnes, n'hésitez pas à le partager sur vos réseaux sociaux en utilisant les boutons ci-dessous. Votre partage est apprécié !

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *