Geoserver avancé: le tuilage (mise en œuvre)

Dans l’article précédent (Geoserver avancé : le tuilage (principes) )nous avons vu les différents concepts concernant le tuilage de cartes.

Dans cet article nous verrons comment mettre en œuvre ces fonctions dans Geoserver.

Pour gérer le tuilage, Geoserver utilise un module externe nommé GeoWebCache.

Qu’est-ce que c’est GeoWebCache?

Les cartes sont souvent statiques. Comme la plupart des serveurs de cartes fournissent des données WMS (Web Map Service) chaque fois qu’ils sont interrogés, cela peut entraîner un traitement inutile et des temps d’attente accrus. GeoWebCache optimise cette procédure en enregistrant (en cache) des images de carte (des tuiles), au fur et à mesure qu’elles sont  demandées, agissant en tant que proxy entre le client (comme OpenLayers ou Google Maps) et le serveur (tel que GeoServer ou tout autre serveur compatible WMS) . Au fur et à mesure que de nouvelles cartes et tuiles sont demandées, GeoWebCache intercepte ces appels et renvoie des tuiles pré-rendues si elles sont stockées dans le cache, ou appelle le serveur pour fabriquer de nouvelles tuiles si nécessaire. Ainsi, une fois que les tuiles sont stockées, la vitesse de rendu de la carte augmente considérablement et l’expérience utilisateur est nettement améliorée.

Dans l’image ci-dessus, la  machine GeoWebCache représente le stockage des tuiles. Idéalement, la plupart des demandes sont traitées à partir de ce stockage sans consulter le (s) serveur (s) WMS. D’où une flèche vers les clients beaucoup plus grande, car GeoWebCache peut répondre à des centaines ou des milliers de demandes par seconde.

GeoWebCache peut même être utilisé dans le cas où les cartes ne sont pas complètement statiques, car elle permet la gestion de l’expiration sélective des tuiles, de sorte que les données soient toujours à jour. À cet égard, GeoWebCache agit comme un accélérateur polyvalent pour le rendu de la carte.

Intégration dans Geoserver

Le module GeoWebCache est livré avec l’installation de Geoserver. Il est installé et activé par défaut. Vous pouvez le vérifier en allant à Etat du service->Modules

Par contre, le tuilage vecteur n’est pas installé par défaut. Pour le vérifier, sélectionnez Couches cachées dans le menu de gauche. Puis ouvrez une couche de type vecteur. Vous en avez quelques unes installées par défaut dans Geoserver (tiger:poi, sf:archsites, sf:bugsites, topp:tasmania_cities)

Allez à l’onglet Cache des tuiles

Si vous ne voyez pas les formats vecteur (geojson,topojson,mapbox-vector) parmi les options disponibles, l’extension n’est pas installée.

Pour l’installer:

Allez à l’adresse http://geoserver.org/release/stable/

Dans Extensions -> Output formats, cliquez sur Vector Tiles pour télécharger les fichiers à installer.

Copiez les quatre fichiers téléchargés dans le répertoire Geoserver/webapps /geoserver/WEB-INF/lib.

C’est tout. L’extension est installée.

Redémarrez Gesoserver (si non l’extension ne sera pas active): Si vous êtes sous Windows vous avez deux possibilités.

  • Si vous avez configuré le démarrage manuel de Geoserver: Ouvrez le panneau de démarrage des programmes et cliquez sur Stop Geoserver, puis sur Start Geoserver
  • si vous avez configuré Geoserver comme un service: Ouvrez le panneau Gestion de l’ordinateur -> Services; recherchez le service Geoserver et ouvrez le menu contextuel; cliquez sur Redémarrer

Pour vérifier la bonne installation, refaites la manipulation précédente (Couches cachées-> une couche vectorielle -> onglet Cache des tuiles)

Vous verrez maintenant les formats de tuiles vecteur disponibles.

Paramétrage de GeoWebCache

Pratiquement tout est déjà paramétré dans GeoWebCache et Geoserver. La seule chose qui vous reste à paramétrer est le suivi de l’espace disque utilisé par le cache.

Par défaut, cette surveillance est désactivée. Cela veut dire qu’il n’y a pas de limite d’espace pour le cache de tuiles. Selon votre configuration , ceci peut être acceptable. Mais dans la plupart des cas, vous courrez des sérieux risques de chutes de performance ou même de plantage du serveur.

Si vous allez sur la page Couches cachées, vous verrez deux colonnes : Limite d’espace et Quota utilisé. Les deux contiennent des N/A. Ceci indique que le quota de disque n’est pas activé.

Pour l’activer:

Sélectionnez Espace disque dans le menu, puis cochez la case Activer les limites d’espace en disque.

Indiquez la taille maximale dédiée et le type d’action à entreprendre quand cette taille est atteinte.

Vous avez l’option de demander de retirer du cache les images appelées le moins souvent, ou celles qui n’ont pas été appelées depuis plus longtemps.

Par défaut Geoserver configure GeoWebCache pour utiliser une base de données H2 située dans le répertoire de cache.

Si vous n’avez pas besoin de gérer les informations de fonctionnement du cache, cette option est parfaite.

Par contre si vous voulez garder l’historique de fonctionnement, de l’utilisation des tuiles, etc., vous pouvez indiquer la base de données externe de votre choix.

Dernier élément qui peut vous intéresser: la colonne Limite d’espace qui est sur la page Couches cachées. Si vous recherchez dans la documentation Geoserver, vous trouverez que cette colonne indique la limite d’espace de cache spécifique pour la couche. En effet, la version indépendante de GeoWebCache permet de définir des quotas par couche. Mais ce n’est pas le cas de la version intégrée dans Geoserver.Vous n’avez de moyen de définir des quotas spécifiques. Cette colonne restera désespérément avec N/A.

N’essayez pas non plus de faire ces définitions directement dans le fichier geowebcache-diskquota.xml, ça ne fonctionnera pas.

Une fois activé le suivi, vous pourrez voir l’espace de chaque couche dans le cache:

Configuration du cache d’une couche

Vous trouverez l’onglet Cache des tuiles dans la page Editer la couche.

Les deux premières cases à cocher déterminent si le cache est activé pour cette couche et si le tuilage est activé.

Vous devez cocher les formats de tuile souhaités. Seulement quand le serveur recevra des demandes concernant ce format (output), GeoWebCache utilisera les tuiles en cache.

En bas de la page vous pouvez sélectionner les niveaux de zoom à mettre en cache.

Vous pouvez ainsi ne mettre en cache que les niveaux de zoom les plus fréquemment utilisés.

Pour savoir quels zooms utiliser, voici une table qui peut vous être utile:

Vous pouvez voir pour chaque niveau de zoom (première colonne) l’échelle géographique correspondante.

Il ne suffit pas d’activer le tuilage d’une couche pour que GeoWebCache produise les tuiles.
Les tuiles seront générées au fur et à mesure des demandes des clients du serveur. Si non, dans la page des Couches cachées, vous pouvez demander un, aperçu des tuiles. Le menu déroulant vous permet de choisir le format souhaité de sortie.

Cet aperçu étant une demande effectué au serveur, les tuiles correspondantes seront générés.

Dernier moyen de les générer, sélectionnez Générer dans la liste des Actions de la couche (dernière colonne du tableau).

Vous aurez une page qui vous permet de définir les paramètres de génération des tuiles.

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é !

3 thoughts on “Geoserver avancé: le tuilage (mise en œuvre)

  1. Bonjour,
    Très bon tutoriel! Nous sommes d’accord que les plugins ajoutés servent à augmenter le nombre de formats de sortie du tuilage et non au tuilage spécifique des vecteurs? Par ailleurs, avez-vous créer de nouvelles grilles de zoom pour le tuilage?
    Merci pour vos retours.

  2. Bonjour,

    Quand je cache une couche dans plusieurs projections, manuellement
    Est-il possible de savoir quelles sont les projections et les différents niveaux de zoom que j’ai utilisé?
    Merci

    1. Bonjour
      Dans le menu général de geoserver (à gauche) vous avez un panneau « Cache des tuiles »
      L’item « Grille de tuilage » permet d’afficher la liste des couches en cache, avec les informations de projection et de zoom

Répondre à Geomatick Annuler la réponse

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